Skip to content

Commit 272fa95

Browse files
committed
added syntax option
1 parent 4dadfd3 commit 272fa95

File tree

4 files changed

+47
-15
lines changed

4 files changed

+47
-15
lines changed

internal/query/execute_query.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func executeQueryRequest(a *allocator.Allocator, sessionID, q string, settings e
3232
request.SessionId = sessionID
3333
request.ExecMode = Ydb_Query.ExecMode(settings.ExecMode())
3434
request.TxControl = settings.TxControl().ToYDB(a)
35-
request.Query = queryFromText(a, q, settings.Syntax())
35+
request.Query = queryFromText(a, q, Ydb_Query.Syntax(settings.Syntax()))
3636
request.Parameters = settings.Params().ToYDB(a)
3737
request.StatsMode = Ydb_Query.StatsMode(settings.StatsMode())
3838
request.ConcurrentResultSets = false

internal/query/transaction_test.go

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ func TestFromTxOptions(t *testing.T) {
152152
execMode: query.ExecModeExecute,
153153
statsMode: query.StatsModeNone,
154154
txControl: query.TxControl(query.WithTxID("test")),
155-
syntax: Ydb_Query.Syntax_SYNTAX_YQL_V1,
155+
syntax: query.SyntaxYQL,
156156
},
157157
},
158158
{
@@ -164,7 +164,7 @@ func TestFromTxOptions(t *testing.T) {
164164
execMode: query.ExecModeExecute,
165165
statsMode: query.StatsModeFull,
166166
txControl: query.TxControl(query.WithTxID("")),
167-
syntax: Ydb_Query.Syntax_SYNTAX_YQL_V1,
167+
syntax: query.SyntaxYQL,
168168
},
169169
},
170170
{
@@ -176,7 +176,19 @@ func TestFromTxOptions(t *testing.T) {
176176
execMode: query.ExecModeExplain,
177177
statsMode: query.StatsModeNone,
178178
txControl: query.TxControl(query.WithTxID("")),
179-
syntax: Ydb_Query.Syntax_SYNTAX_YQL_V1,
179+
syntax: query.SyntaxYQL,
180+
},
181+
},
182+
{
183+
name: "WithSyntax",
184+
txOpts: []query.TxExecuteOption{
185+
query.WithSyntax(query.SyntaxPostgreSQL),
186+
},
187+
settings: testExecuteSettings{
188+
execMode: query.ExecModeExecute,
189+
statsMode: query.StatsModeNone,
190+
txControl: query.TxControl(query.WithTxID("")),
191+
syntax: query.SyntaxPostgreSQL,
180192
},
181193
},
182194
{
@@ -188,7 +200,7 @@ func TestFromTxOptions(t *testing.T) {
188200
execMode: query.ExecModeExecute,
189201
statsMode: query.StatsModeNone,
190202
txControl: query.TxControl(query.WithTxID("")),
191-
syntax: Ydb_Query.Syntax_SYNTAX_YQL_V1,
203+
syntax: query.SyntaxYQL,
192204
callOptions: []grpc.CallOption{
193205
grpc.CallContentSubtype("test"),
194206
},
@@ -205,7 +217,7 @@ func TestFromTxOptions(t *testing.T) {
205217
execMode: query.ExecModeExecute,
206218
statsMode: query.StatsModeNone,
207219
txControl: query.TxControl(query.WithTxID("")),
208-
syntax: Ydb_Query.Syntax_SYNTAX_YQL_V1,
220+
syntax: query.SyntaxYQL,
209221
params: params.Builder{}.Param("$a").Text("A").Build(),
210222
},
211223
},

query/execute_options.go

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

1010
type (
11-
Syntax = Ydb_Query.Syntax
11+
Syntax Ydb_Query.Syntax
1212
ExecMode Ydb_Query.ExecMode
1313
StatsMode Ydb_Query.StatsMode
1414
callOptions []grpc.CallOption
@@ -36,6 +36,19 @@ type (
3636
parametersOption params.Parameters
3737
)
3838

39+
func (syntax Syntax) applyTxExecuteOption(s *txExecuteSettings) {
40+
s.syntax = syntax
41+
}
42+
43+
func (syntax Syntax) applyExecuteOption(s *executeSettings) {
44+
s.syntax = syntax
45+
}
46+
47+
const (
48+
SyntaxYQL = Syntax(Ydb_Query.Syntax_SYNTAX_YQL_V1)
49+
SyntaxPostgreSQL = Syntax(Ydb_Query.Syntax_SYNTAX_PG)
50+
)
51+
3952
func (params parametersOption) applyTxExecuteOption(s *txExecuteSettings) {
4053
s.params = append(s.params, params...)
4154
}
@@ -84,7 +97,7 @@ const (
8497

8598
func defaultCommonExecuteSettings() commonExecuteSettings {
8699
return commonExecuteSettings{
87-
syntax: Ydb_Query.Syntax_SYNTAX_YQL_V1,
100+
syntax: SyntaxYQL,
88101
execMode: ExecModeExecute,
89102
statsMode: StatsModeNone,
90103
}
@@ -161,6 +174,10 @@ func WithExecMode(mode ExecMode) ExecMode {
161174
return mode
162175
}
163176

177+
func WithSyntax(syntax Syntax) Syntax {
178+
return syntax
179+
}
180+
164181
func WithStatsMode(mode StatsMode) StatsMode {
165182
return mode
166183
}

tests/integration/query_execute_test.go

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,16 @@ func TestQueryExecute(t *testing.T) {
3535
p3 time.Duration
3636
)
3737
err = db.Query().Do(ctx, func(ctx context.Context, s query.Session) (err error) {
38-
_, res, err := s.Execute(ctx, "SELECT $p1, $p2, $p3", query.WithParameters(
39-
ydb.ParamsBuilder().
40-
Param("$p1").Text("test").
41-
Param("$p2").Uint64(100500000000).
42-
Param("$p3").Interval(time.Duration(100500000000)).
43-
Build(),
44-
))
38+
_, res, err := s.Execute(ctx, "SELECT $p1, $p2, $p3",
39+
query.WithParameters(
40+
ydb.ParamsBuilder().
41+
Param("$p1").Text("test").
42+
Param("$p2").Uint64(100500000000).
43+
Param("$p3").Interval(time.Duration(100500000000)).
44+
Build(),
45+
),
46+
query.WithSyntax(query.SyntaxYQL),
47+
)
4548
if err != nil {
4649
return err
4750
}

0 commit comments

Comments
 (0)