Skip to content

Commit b15b157

Browse files
committed
feat(go): clarify bind behavior
I noticed the drivers were inconsistent. This tries to be more explicit about what you are expected to do (bind, then release) and matches the behavior of the Snowflake driver.
1 parent fd73feb commit b15b157

1 file changed

Lines changed: 11 additions & 7 deletions

File tree

go/adbc/adbc.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -737,19 +737,23 @@ type Statement interface {
737737
// executed repeatedly, Prepare should be called first on the statement.
738738
SetSubstraitPlan(plan []byte) error
739739

740-
// Bind uses an arrow record batch to bind parameters to the query.
740+
// Bind uses an Arrow record batch to bind parameters to the query.
741741
//
742-
// This can be used for bulk inserts or for prepared statements.
743-
// The driver will call release on the passed in Record when it is done,
744-
// but it may not do this until the statement is closed or another
745-
// record is bound.
742+
// This can be used for bulk inserts or for prepared statements. The
743+
// driver will take ownership of (Retain) the given batch; the
744+
// application may Release the batch after binding. The driver will
745+
// Release the batch after processing, but this may not be until Close
746+
// is called. A nil batch will unbind values.
746747
Bind(ctx context.Context, values arrow.RecordBatch) error
747748

748749
// BindStream uses a record batch stream to bind parameters for this
749750
// query. This can be used for bulk inserts or prepared statements.
750751
//
751-
// The driver will call Release on the record reader, but may not do this
752-
// until Close is called.
752+
// This can be used for bulk inserts or for prepared statements. The
753+
// driver will take ownership of (Retain) the given reader; the
754+
// application may Release the reader after binding. The driver will
755+
// Release the reader after processing, but this may not be until Close
756+
// is called. A nil reader will unbind values.
753757
BindStream(ctx context.Context, stream array.RecordReader) error
754758

755759
// GetParameterSchema returns an Arrow schema representation of

0 commit comments

Comments
 (0)