Skip to content
GitLab
Explore
Projects
Groups
Snippets
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Vladimir Barsukov
zGo
Commits
b91b9cf6
Commit
b91b9cf6
authored
3 months ago
by
Vladimir Barsukov
Browse files
Options
Download
Email Patches
Plain Diff
fix
parent
c730f5f1
master
v1.6.4
v1.6.3
v1.6.2
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
zdb/pool.go
+24
-6
zdb/pool.go
with
24 additions
and
6 deletions
+24
-6
zdb/pool.go
+
24
-
6
View file @
b91b9cf6
...
@@ -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
,
p
ar
am
)
d
.
logger
.
Printf
(
"
\n
-
--SQL
_START---
\n
%v
\n
--SQL
_END---
\n\n
---ARGS_START---
\n
%+v
\n
--
-
ARG
S_END---
"
,
sql
,
ar
gs
)
}
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
,
p
ar
am
)
d
.
logger
.
Printf
(
"
\n
-
--SQL
_START---
\n
%v
\n
--SQL
_END---
\n\n
---ARGS_START---
\n
%+v
\n
--
-
ARG
S_END---
"
,
sql
,
ar
gs
)
}
}
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
,
p
ar
am
)
d
.
logger
.
Printf
(
"
\n
-
--SQL
_START---
\n
%v
\n
--SQL
_END---
\n\n
---ARGS_START---
\n
%+v
\n
--
-
ARG
S_END---
"
,
sql
,
ar
gs
)
}
}
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
,
p
ar
am
)
d
.
logger
.
Printf
(
"
\n
-
--SQL
_START---
\n
%v
\n
--SQL
_END---
\n\n
---ARGS_START---
\n
%+v
\n
--
-
ARG
S_END---
"
,
sql
,
ar
gs
)
}
}
}
}
}
}
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Snippets