Skip to content
This repository was archived by the owner on Jul 21, 2025. It is now read-only.

Commit 5297b25

Browse files
committed
query: add query prepare method
1 parent bc34758 commit 5297b25

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

query.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,18 @@ type Query struct {
1919
retryPolicy transport.RetryPolicy
2020
}
2121

22+
func (q *Query) Prepare(ctx context.Context) error {
23+
p, err := q.session.prepareStatement(ctx, q.stmt)
24+
if err != nil {
25+
return err
26+
}
27+
28+
q.stmt = p.stmt
29+
q.exec = p.exec
30+
q.asyncExec = p.asyncExec
31+
return nil
32+
}
33+
2234
func (q *Query) Exec(ctx context.Context) (Result, error) {
2335
info, err := q.info()
2436
if err != nil {

session.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,10 @@ func (s *Session) Query(content string) Query {
161161

162162
func (s *Session) Prepare(ctx context.Context, content string) (Query, error) {
163163
stmt := transport.Statement{Content: content, Consistency: frame.ALL}
164+
return s.prepareStatement(ctx, stmt)
165+
}
164166

167+
func (s *Session) prepareStatement(ctx context.Context, stmt transport.Statement) (Query, error) {
165168
// Prepare on all nodes concurrently.
166169
nodes := s.cluster.Topology().Nodes
167170
resStmt := make([]transport.Statement, len(nodes))

0 commit comments

Comments
 (0)