File tree Expand file tree Collapse file tree 5 files changed +40
-12
lines changed Expand file tree Collapse file tree 5 files changed +40
-12
lines changed Original file line number Diff line number Diff line change 1+ package db
2+
3+ import (
4+ "database/sql/driver"
5+ )
6+
7+ // GlobalParameterConverter is a global valueConverter instance to convert parameters.
8+ var GlobalParameterConverter = & valueConverter {}
9+
10+ var _ driver.ValueConverter = (* valueConverter )(nil )
11+
12+ // valueConverter is a no-op value converter.
13+ type valueConverter struct {}
14+
15+ func (c * valueConverter ) ConvertValue (v any ) (driver.Value , error ) {
16+ return driver .Value (v ), nil
17+ }
Original file line number Diff line number Diff line change @@ -216,6 +216,9 @@ func toOutboundMysqlParameterValue(x any) C.outbound_mysql_parameter_value_t {
216216 case int64 :
217217 * (* C .int64_t )(unsafe .Pointer (& ret .val )) = int64 (v )
218218 ret .tag = paramValueInt64
219+ case int :
220+ * (* C .int64_t )(unsafe .Pointer (& ret .val )) = int64 (v )
221+ ret .tag = paramValueInt64
219222 case uint8 :
220223 * (* C .uint8_t )(unsafe .Pointer (& ret .val )) = uint8 (v )
221224 ret .tag = paramValueUint8
Original file line number Diff line number Diff line change 77 "errors"
88 "io"
99 "reflect"
10+
11+ spindb "github.com/fermyon/spin/sdk/go/internal/db"
1012)
1113
1214// Open returns a new connection to the database.
@@ -60,6 +62,7 @@ type stmt struct {
6062}
6163
6264var _ driver.Stmt = (* stmt )(nil )
65+ var _ driver.ColumnConverter = (* stmt )(nil )
6366
6467// Close closes the statement.
6568func (s * stmt ) Close () error {
@@ -92,6 +95,11 @@ func (s *stmt) Exec(args []driver.Value) (driver.Result, error) {
9295 return & result {}, err
9396}
9497
98+ // ColumnConverter returns GlobalParameterConverter to prevent using driver.DefaultParameterConverter.
99+ func (s * stmt ) ColumnConverter (_ int ) driver.ValueConverter {
100+ return spindb .GlobalParameterConverter
101+ }
102+
95103type result struct {}
96104
97105func (r result ) LastInsertId () (int64 , error ) {
Original file line number Diff line number Diff line change @@ -7,10 +7,9 @@ import (
77 "errors"
88 "io"
99 "reflect"
10- )
1110
12- // globalValueConv a valueConv instance
13- var globalValueConv = & valueConv {}
11+ spindb "github.com/fermyon/spin/sdk/go/internal/db"
12+ )
1413
1514// Open returns a new connection to the database.
1615func Open (address string ) * sql.DB {
@@ -96,16 +95,9 @@ func (s *stmt) Exec(args []driver.Value) (driver.Result, error) {
9695 return & result {rowsAffected : int64 (n )}, err
9796}
9897
99- // ColumnConverter return globalValueConv to don't use driver.DefaultParameterConverter
98+ // ColumnConverter returns GlobalParameterConverter to prevent using driver.DefaultParameterConverter.
10099func (s * stmt ) ColumnConverter (_ int ) driver.ValueConverter {
101- return globalValueConv
102- }
103-
104- // valueConv a convertor not convert value
105- type valueConv struct {}
106-
107- func (c * valueConv ) ConvertValue (v any ) (driver.Value , error ) {
108- return driver .Value (v ), nil
100+ return spindb .GlobalParameterConverter
109101}
110102
111103type result struct {
Original file line number Diff line number Diff line change 66 "database/sql/driver"
77 "errors"
88 "io"
9+
10+ spindb "github.com/fermyon/spin/sdk/go/internal/db"
911)
1012
1113// Open returns a new connection to the database.
@@ -135,6 +137,7 @@ type stmt struct {
135137}
136138
137139var _ driver.Stmt = (* stmt )(nil )
140+ var _ driver.ColumnConverter = (* stmt )(nil )
138141
139142// Close closes the statement.
140143func (s * stmt ) Close () error {
@@ -167,6 +170,11 @@ func (s *stmt) Exec(args []driver.Value) (driver.Result, error) {
167170 return & result {}, err
168171}
169172
173+ // ColumnConverter returns GlobalParameterConverter to prevent using driver.DefaultParameterConverter.
174+ func (s * stmt ) ColumnConverter (_ int ) driver.ValueConverter {
175+ return spindb .GlobalParameterConverter
176+ }
177+
170178type result struct {}
171179
172180func (r result ) LastInsertId () (int64 , error ) {
You can’t perform that action at this time.
0 commit comments