Skip to content

Commit f381bfa

Browse files
authored
Merge pull request #23 from s0und0fs1lence/main
Add RowsAffected implementation
2 parents 408eb8e + d9aa7af commit f381bfa

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

chdb/driver/driver.go

+12-5
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ func (r *singleRow) Err() error {
108108
}
109109

110110
type execResult struct {
111-
err error
111+
localRes chdbpurego.ChdbResult
112+
err error
112113
}
113114

114115
func (e *execResult) LastInsertId() (int64, error) {
@@ -122,7 +123,8 @@ func (e *execResult) RowsAffected() (int64, error) {
122123
if e.err != nil {
123124
return 0, e.err
124125
}
125-
return -1, fmt.Errorf("does not support RowsAffected")
126+
// chdb return the number of rows inserted/updated/deleted trough rows_read
127+
return int64(e.localRes.RowsRead()), nil
126128
}
127129

128130
type queryHandle func(string, ...string) (chdbpurego.ChdbResult, error)
@@ -283,12 +285,17 @@ func (c *conn) Exec(query string, values []driver.Value) (sql.Result, error) {
283285
}
284286

285287
func (c *conn) ExecContext(ctx context.Context, query string, args []driver.NamedValue) (driver.Result, error) {
286-
_, err := c.QueryContext(ctx, query, args)
287-
if err != nil && err.Error() != "result is nil" {
288+
compiledQuery, err := c.compileArguments(query, args)
289+
if err != nil {
290+
return nil, err
291+
}
292+
result, err := c.QueryFun(compiledQuery, c.driverType.String(), c.udfPath)
293+
if err != nil {
288294
return nil, err
289295
}
290296
return &execResult{
291-
err: nil,
297+
err: nil,
298+
localRes: result,
292299
}, nil
293300
}
294301

0 commit comments

Comments
 (0)