Skip to content

Commit 1d8d9af

Browse files
committed
wip
1 parent 9aed43c commit 1d8d9af

File tree

19 files changed

+62
-68
lines changed

19 files changed

+62
-68
lines changed

internal/table/session.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func statsModeToStatsMode(src Ydb_Table.QueryStatsCollection_Mode) (dst Ydb_Quer
7777
}
7878
}
7979

80-
func txControlToTxControl(src *Ydb_Table.TransactionControl) (dst *Ydb_Query.TransactionControl) {
80+
func TableTxControlToQueryTxControl(src *Ydb_Table.TransactionControl) (dst *Ydb_Query.TransactionControl) {
8181
dst = &Ydb_Query.TransactionControl{
8282
CommitTx: src.GetCommitTx(),
8383
}
@@ -196,7 +196,7 @@ func (e queryClientExecutor) execute(
196196

197197
request.SessionId = executeDataQueryRequest.GetSessionId()
198198
request.ExecMode = Ydb_Query.ExecMode_EXEC_MODE_EXECUTE
199-
request.TxControl = txControlToTxControl(executeDataQueryRequest.GetTxControl())
199+
request.TxControl = TableTxControlToQueryTxControl(executeDataQueryRequest.GetTxControl())
200200
request.Query = &Ydb_Query.ExecuteQueryRequest_QueryContent{
201201
QueryContent: &Ydb_Query.QueryContent{
202202
Syntax: Ydb_Query.Syntax_SYNTAX_YQL_V1,

internal/value/any_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ func TestAny(t *testing.T) {
281281
t.Run("Optional", func(t *testing.T) {
282282
got, err := Any(OptionalValue(tt.src))
283283
require.NoError(t, err)
284-
require.Equal(t, &tt.exp, got)
284+
require.Equal(t, tt.exp, got)
285285
})
286286
t.Run("Null", func(t *testing.T) {
287287
got, err := Any(NullValue(tt.src.Type()))

internal/xsql/iface/conn.go renamed to internal/xsql/common/conn.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package iface
1+
package common
22

33
import (
44
"context"
Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,28 @@
1-
package legacy
1+
package common
22

33
import (
44
"context"
5-
6-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/iface"
75
"github.com/ydb-platform/ydb-go-sdk/v3/table"
8-
"github.com/ydb-platform/ydb-go-sdk/v3/table/options"
96
)
107

118
type (
9+
ctxPreparedStatementKey struct{}
1210
ctxTransactionControlKey struct{}
1311
ctxTxControlHookKey struct{}
1412

1513
txControlHook func(txControl *table.TransactionControl)
1614
)
1715

16+
func WithPreparedStatement(ctx context.Context) context.Context {
17+
return context.WithValue(ctx, ctxPreparedStatementKey{}, true)
18+
}
19+
20+
func IsPreparedStatement(ctx context.Context) bool {
21+
_, ok := ctx.Value(ctxPreparedStatementKey{}).(bool)
22+
23+
return ok
24+
}
25+
1826
func WithTxControlHook(ctx context.Context, hook txControlHook) context.Context {
1927
return context.WithValue(ctx, ctxTxControlHookKey{}, hook)
2028
}
@@ -23,7 +31,7 @@ func WithTxControl(ctx context.Context, txc *table.TransactionControl) context.C
2331
return context.WithValue(ctx, ctxTransactionControlKey{}, txc)
2432
}
2533

26-
func txControl(ctx context.Context, defaultTxControl *table.TransactionControl) (txControl *table.TransactionControl) {
34+
func TxControl(ctx context.Context, defaultTxControl *table.TransactionControl) (txControl *table.TransactionControl) {
2735
defer func() {
2836
if hook, has := ctx.Value(ctxTxControlHookKey{}).(txControlHook); has && hook != nil {
2937
hook(txControl)
@@ -35,11 +43,3 @@ func txControl(ctx context.Context, defaultTxControl *table.TransactionControl)
3543

3644
return defaultTxControl
3745
}
38-
39-
func (c *Conn) dataQueryOptions(ctx context.Context) []options.ExecuteDataQueryOption {
40-
if iface.IsPreparedStatement(ctx) {
41-
return append(c.dataOpts, options.WithKeepInCache(true))
42-
}
43-
44-
return c.dataOpts
45-
}

internal/xsql/iface/tx.go renamed to internal/xsql/common/tx.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package iface
1+
package common
22

33
import (
44
"context"

internal/xsql/conn.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ import (
77
"github.com/ydb-platform/ydb-go-sdk/v3/internal/stack"
88
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xcontext"
99
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
10-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/iface"
10+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/common"
1111
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsync"
1212
"github.com/ydb-platform/ydb-go-sdk/v3/trace"
1313
)
1414

1515
type Conn struct {
1616
processor Engine
1717

18-
cc iface.Conn
18+
cc common.Conn
1919
currentTx *Tx
2020
ctx context.Context //nolint:containedctx
2121

internal/xsql/errors.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ var (
1111
ErrUnsupported = driver.ErrSkip
1212
errDeprecated = driver.ErrSkip
1313
errWrongQueryProcessor = errors.New("wrong query processor")
14-
errNotReadyConn = xerrors.Retryable(errors.New("iface not ready"), xerrors.InvalidObject())
14+
errNotReadyConn = xerrors.Retryable(errors.New("conn not ready"), xerrors.InvalidObject())
1515
)

internal/xsql/iface/context.go

Lines changed: 0 additions & 15 deletions
This file was deleted.

internal/xsql/legacy/conn.go

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
"github.com/ydb-platform/ydb-go-sdk/v3/internal/params"
1313
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xcontext"
1414
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
15-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/iface"
15+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/common"
1616
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/legacy/badconn"
1717
"github.com/ydb-platform/ydb-go-sdk/v3/scripting"
1818
"github.com/ydb-platform/ydb-go-sdk/v3/table"
@@ -83,7 +83,7 @@ func (c *Conn) Query(ctx context.Context, sql string, params *params.Params) (
8383
case ScriptingQueryMode:
8484
return c.execScriptingQuery(ctx, sql, params)
8585
default:
86-
return nil, fmt.Errorf("unsupported query mode '%s' on iface query", queryMode)
86+
return nil, fmt.Errorf("unsupported query mode '%s' on conn query", queryMode)
8787
}
8888
}
8989

@@ -134,7 +134,7 @@ func (c *Conn) isReady() bool {
134134

135135
func (c *Conn) executeDataQuery(ctx context.Context, sql string, params *params.Params) (driver.Result, error) {
136136
_, res, err := c.session.Execute(ctx,
137-
txControl(ctx, c.defaultTxControl),
137+
common.TxControl(ctx, c.defaultTxControl),
138138
sql, params, c.dataQueryOptions(ctx)...,
139139
)
140140
if err != nil {
@@ -183,7 +183,7 @@ func (c *Conn) execDataQuery(ctx context.Context, sql string, params *params.Par
183183
driver.RowsNextResultSet, error,
184184
) {
185185
_, res, err := c.session.Execute(ctx,
186-
txControl(ctx, c.defaultTxControl),
186+
common.TxControl(ctx, c.defaultTxControl),
187187
sql, params, c.dataQueryOptions(ctx)...,
188188
)
189189
if err != nil {
@@ -269,7 +269,7 @@ func (c *Conn) ID() string {
269269
return c.session.ID()
270270
}
271271

272-
func (c *Conn) beginTx(ctx context.Context, txOptions driver.TxOptions) (tx iface.Tx, finalErr error) {
272+
func (c *Conn) beginTx(ctx context.Context, txOptions driver.TxOptions) (tx common.Tx, finalErr error) {
273273
m := queryModeFromContext(ctx, c.defaultQueryMode)
274274

275275
if slices.Contains(c.fakeTxModes, m) {
@@ -284,11 +284,19 @@ func (c *Conn) beginTx(ctx context.Context, txOptions driver.TxOptions) (tx ifac
284284
return tx, nil
285285
}
286286

287-
func (c *Conn) BeginTx(ctx context.Context, txOptions driver.TxOptions) (iface.Tx, error) {
287+
func (c *Conn) BeginTx(ctx context.Context, txOptions driver.TxOptions) (common.Tx, error) {
288288
tx, err := c.beginTx(ctx, txOptions)
289289
if err != nil {
290290
return nil, xerrors.WithStackTrace(err)
291291
}
292292

293293
return tx, nil
294294
}
295+
296+
func (c *Conn) dataQueryOptions(ctx context.Context) []options.ExecuteDataQueryOption {
297+
if common.IsPreparedStatement(ctx) {
298+
return append(c.dataOpts, options.WithKeepInCache(true))
299+
}
300+
301+
return c.dataOpts
302+
}

internal/xsql/legacy/errors.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99

1010
var (
1111
ErrUnsupported = driver.ErrSkip
12-
errConnClosedEarly = xerrors.Retryable(errors.New("iface closed early"), xerrors.InvalidObject())
13-
errNotReadyConn = xerrors.Retryable(errors.New("iface not ready"), xerrors.InvalidObject())
12+
errConnClosedEarly = xerrors.Retryable(errors.New("conn closed early"), xerrors.InvalidObject())
13+
errNotReadyConn = xerrors.Retryable(errors.New("conn not ready"), xerrors.InvalidObject())
1414
ErrWrongQueryMode = errors.New("wrong query mode")
1515
)

internal/xsql/legacy/tx.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ import (
77

88
"github.com/ydb-platform/ydb-go-sdk/v3/internal/params"
99
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
10-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/iface"
10+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/common"
1111
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/legacy/badconn"
1212
"github.com/ydb-platform/ydb-go-sdk/v3/table"
1313
)
1414

15-
var _ iface.Tx = (*transaction)(nil)
15+
var _ common.Tx = (*transaction)(nil)
1616

1717
type transaction struct {
1818
conn *Conn
@@ -73,7 +73,7 @@ func (tx *transaction) Rollback(ctx context.Context) error {
7373
return err
7474
}
7575

76-
func beginTx(ctx context.Context, c *Conn, txOptions driver.TxOptions) (iface.Tx, error) {
76+
func beginTx(ctx context.Context, c *Conn, txOptions driver.TxOptions) (common.Tx, error) {
7777
txc, err := toYDB(txOptions)
7878
if err != nil {
7979
return nil, xerrors.WithStackTrace(err)

internal/xsql/legacy/tx_fake.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"github.com/ydb-platform/ydb-go-sdk/v3/internal/params"
88
"github.com/ydb-platform/ydb-go-sdk/v3/internal/tx"
99
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
10-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/iface"
10+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/common"
1111
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/legacy/badconn"
1212
)
1313

@@ -38,7 +38,7 @@ func (t *txFake) ID() string {
3838
return tx.FakeTxID
3939
}
4040

41-
func beginTxFake(ctx context.Context, c *Conn) iface.Tx {
41+
func beginTxFake(ctx context.Context, c *Conn) common.Tx {
4242
return &txFake{
4343
conn: c,
4444
ctx: ctx,

internal/xsql/propose/conn.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"github.com/ydb-platform/ydb-go-sdk/v3/internal/stats"
1212
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xcontext"
1313
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
14-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/iface"
14+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/common"
1515
)
1616

1717
type resultNoRows struct{}
@@ -117,7 +117,7 @@ func (c *Conn) isReady() bool {
117117
return c.session.Status() == query.StatusIdle.String()
118118
}
119119

120-
func (c *Conn) beginTx(ctx context.Context, txOptions driver.TxOptions) (tx iface.Tx, finalErr error) {
120+
func (c *Conn) beginTx(ctx context.Context, txOptions driver.TxOptions) (tx common.Tx, finalErr error) {
121121
if c.fakeTx {
122122
return beginTxFake(ctx, c), nil
123123
}
@@ -152,7 +152,7 @@ func (c *Conn) Ping(ctx context.Context) (finalErr error) {
152152
return err
153153
}
154154

155-
func (c *Conn) BeginTx(ctx context.Context, txOptions driver.TxOptions) (iface.Tx, error) {
155+
func (c *Conn) BeginTx(ctx context.Context, txOptions driver.TxOptions) (common.Tx, error) {
156156
tx, err := c.beginTx(ctx, txOptions)
157157
if err != nil {
158158
return nil, xerrors.WithStackTrace(err)

internal/xsql/propose/errors.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ import (
1010
var (
1111
ErrUnsupported = driver.ErrSkip
1212
errDeprecated = driver.ErrSkip
13-
errConnClosedEarly = xerrors.Retryable(errors.New("iface closed early"), xerrors.InvalidObject())
14-
errNotReadyConn = xerrors.Retryable(errors.New("iface not ready"), xerrors.InvalidObject())
13+
errConnClosedEarly = xerrors.Retryable(errors.New("conn closed early"), xerrors.InvalidObject())
14+
errNotReadyConn = xerrors.Retryable(errors.New("conn not ready"), xerrors.InvalidObject())
1515
)

internal/xsql/propose/tx.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"github.com/ydb-platform/ydb-go-sdk/v3/internal/params"
88
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/options"
99
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
10-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/iface"
10+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/common"
1111
"github.com/ydb-platform/ydb-go-sdk/v3/query"
1212
)
1313

@@ -43,7 +43,7 @@ func (tx *transaction) Query(ctx context.Context, sql string, params *params.Par
4343
}, nil
4444
}
4545

46-
func beginTx(ctx context.Context, c *Conn, txOptions driver.TxOptions) (iface.Tx, error) {
46+
func beginTx(ctx context.Context, c *Conn, txOptions driver.TxOptions) (common.Tx, error) {
4747
txc, err := toYDB(txOptions)
4848
if err != nil {
4949
return nil, xerrors.WithStackTrace(err)

internal/xsql/propose/tx_fake.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"github.com/ydb-platform/ydb-go-sdk/v3/internal/params"
88
"github.com/ydb-platform/ydb-go-sdk/v3/internal/tx"
99
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
10-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/iface"
10+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/common"
1111
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/legacy/badconn"
1212
)
1313

@@ -38,7 +38,7 @@ func (t *txFake) ID() string {
3838
return tx.FakeTxID
3939
}
4040

41-
func beginTxFake(ctx context.Context, c *Conn) iface.Tx {
41+
func beginTxFake(ctx context.Context, c *Conn) common.Tx {
4242
return &txFake{
4343
conn: c,
4444
ctx: ctx,

internal/xsql/tx.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ import (
66

77
"github.com/ydb-platform/ydb-go-sdk/v3/internal/stack"
88
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
9-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/iface"
9+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/common"
1010
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/legacy/badconn"
1111
"github.com/ydb-platform/ydb-go-sdk/v3/trace"
1212
)
1313

1414
type Tx struct {
1515
conn *Conn
16-
tx iface.Tx
16+
tx common.Tx
1717
ctx context.Context //nolint:containedctx
1818
}
1919

sql.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"database/sql"
66
"database/sql/driver"
77
"fmt"
8+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/common"
89

910
"github.com/ydb-platform/ydb-go-sdk/v3/internal/bind"
1011
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
@@ -94,7 +95,7 @@ func WithQueryMode(ctx context.Context, mode QueryMode) context.Context {
9495
}
9596

9697
func WithTxControl(ctx context.Context, txc *table.TransactionControl) context.Context {
97-
return legacy.WithTxControl(ctx, txc)
98+
return common.WithTxControl(ctx, txc)
9899
}
99100

100101
type ConnectorOption = xsql.Option

0 commit comments

Comments
 (0)