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) { ...@@ -421,9 +421,27 @@ func (d *Pool) prepare(sql string, param map[string]any) (string, []any) {
default: default:
switch reflect.TypeOf(v).Kind() { switch reflect.TypeOf(v).Kind() {
case reflect.Slice, reflect.Array: 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++ idx++
sql = strings.ReplaceAll(sql, ":"+n+":", fmt.Sprintf("$%d", idx)) sql = strings.ReplaceAll(sql, ":"+n+":", fmt.Sprintf("$%d%s", idx, tail))
args = append(args, v) args = append(args, "{"+strings.Trim(strings.Join(strings.Split(fmt.Sprint(v), " "), ","), "[]")+"}")
default: default:
idx++ idx++
sql = strings.ReplaceAll(sql, ":"+n+":", fmt.Sprintf("$%d", 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) { ...@@ -434,20 +452,20 @@ func (d *Pool) prepare(sql string, param map[string]any) (string, []any) {
} }
if d.Debug { 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 { } else if v, ok := param["_debug"]; ok {
switch vv := v.(type) { switch vv := v.(type) {
case bool: case bool:
if vv { 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: case int, uint:
if vv == 1 { 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: case string:
if vv == "1" { 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