Commit b91b9cf6 authored by Vladimir Barsukov's avatar Vladimir Barsukov
Browse files

fix

parent c730f5f1
......@@ -421,9 +421,27 @@ func (d *Pool) prepare(sql string, param map[string]any) (string, []any) {
default:
switch reflect.TypeOf(v).Kind() {
case reflect.Slice, reflect.Array:
//log.Printf("Kind: %v", fmt.Sprintf("%v", v))
//log.Printf("Kind2: %v", reflect.TypeOf(v).Elem().Kind())
//log.Printf("TAIL: %v", reflect.TypeOf(v).Elem().Kind().String())
tail := ""
if !strings.Contains(sql, ":"+n+":::") {
switch reflect.TypeOf(v).Elem().Kind().String() {
case "string":
tail = "::text[]"
case "bool":
tail = "::bool[]"
default:
tail = "::int[]"
}
}
idx++
sql = strings.ReplaceAll(sql, ":"+n+":", fmt.Sprintf("$%d", idx))
args = append(args, v)
sql = strings.ReplaceAll(sql, ":"+n+":", fmt.Sprintf("$%d%s", idx, tail))
args = append(args, "{"+strings.Trim(strings.Join(strings.Split(fmt.Sprint(v), " "), ","), "[]")+"}")
default:
idx++
sql = strings.ReplaceAll(sql, ":"+n+":", fmt.Sprintf("$%d", idx))
......@@ -434,20 +452,20 @@ func (d *Pool) prepare(sql string, param map[string]any) (string, []any) {
}
if d.Debug {
d.logger.Printf("--SQL\n%v\n--SQL;\n--ARG\n%+v\n--ARG;", sql, param)
d.logger.Printf("\n---SQL_START---\n%v\n--SQL_END---\n\n---ARGS_START---\n%+v\n---ARGS_END---", sql, args)
} else if v, ok := param["_debug"]; ok {
switch vv := v.(type) {
case bool:
if vv {
d.logger.Printf("--SQL\n%v\n--SQL;\n--ARG\n%+v\n--ARG;", sql, param)
d.logger.Printf("\n---SQL_START---\n%v\n--SQL_END---\n\n---ARGS_START---\n%+v\n---ARGS_END---", sql, args)
}
case int, uint:
if vv == 1 {
d.logger.Printf("--SQL\n%v\n--SQL;\n--ARG\n%+v\n--ARG;", sql, param)
d.logger.Printf("\n---SQL_START---\n%v\n--SQL_END---\n\n---ARGS_START---\n%+v\n---ARGS_END---", sql, args)
}
case string:
if vv == "1" {
d.logger.Printf("--SQL\n%v\n--SQL;\n--ARG\n%+v\n--ARG;", sql, param)
d.logger.Printf("\n---SQL_START---\n%v\n--SQL_END---\n\n---ARGS_START---\n%+v\n---ARGS_END---", sql, args)
}
}
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment