Skip to content

Commit fdc79d4

Browse files
committed
feat(sqlgen): allow any type of value for prepared mode
1 parent 31d438d commit fdc79d4

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

sqlgen/expression_sql_generator.go

+7
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,13 @@ func (esg *expressionSQLGenerator) reflectSQL(b sb.SQLBuilder, val interface{})
153153
case util.IsBool(valKind):
154154
esg.Generate(b, v.Bool())
155155
default:
156+
// allow any type of value for prepared mode
157+
if b.IsPrepared() {
158+
esg.placeHolderSQL(b, val)
159+
160+
return
161+
}
162+
156163
b.SetError(errors.NewEncodeError(val))
157164
}
158165
}

sqlgen/expression_sql_generator_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -123,12 +123,12 @@ func (esgs *expressionSQLGeneratorSuite) TestGenerate_Invalid() {
123123
)
124124
}
125125

126-
func (esgs *expressionSQLGeneratorSuite) TestGenerate_UnsupportedType() {
126+
func (esgs *expressionSQLGeneratorSuite) TestGenerate_OtherType() {
127127
type strct struct{}
128128
esgs.assertCases(
129129
sqlgen.NewExpressionSQLGenerator("test", sqlgen.DefaultDialectOptions()),
130130
expressionTestCase{val: strct{}, err: "goqu_encode_error: Unable to encode value {}"},
131-
expressionTestCase{val: strct{}, err: "goqu_encode_error: Unable to encode value {}", isPrepared: true},
131+
expressionTestCase{val: strct{}, sql: "?", isPrepared: true, args: []interface{}{strct{}}},
132132
)
133133
}
134134

0 commit comments

Comments
 (0)