-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
in v 1.2.1 while performing a NamedExec with a slice of interface
INSERT INTO foo (foo_nm, ins_user) VALUES (:foo_nm, :ins_user) ON DUPLICATE KEY UPDATE foo_nm = values(foo_nm),upd_user = values(ins_user)
data := []interface{}
_, err := sqlx.NamedExec(db, query, data)`
would produce via bindNamedMapper
(assume data had 2 values)
INSERT INTO foo (foo_nm, ins_user) VALUES (?, ?).(?,?) ON DUPLICATE KEY UPDATE foo_nm = values(foo_nm),upd_user = values(ins_user)
However in 1.3.1
This becomes
INSERT INTO foo (foo_nm, ins_user) VALUES (?, ?) ON DUPLICATE KEY UPDATE foo_nm = values(foo_nm),upd_user = values(ins_user),(ins_user)
Notice the extra ins_user
instead of (?,?) after values
I suspect its due to
https://github.com/jmoiron/sqlx/blob/master/named.go#L227
which was regexp.MustCompile(
([^(]?+[^)]))