Skip to content

Commit

Permalink
refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
asmyasnikov committed Dec 11, 2024
1 parent 92aeba7 commit 6fc08be
Show file tree
Hide file tree
Showing 50 changed files with 238 additions and 340 deletions.
14 changes: 7 additions & 7 deletions dsn.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
"github.com/ydb-platform/ydb-go-sdk/v3/internal/dsn"
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql"
tableSql "github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/conn/table/conn"
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/conn/table"
)

const tablePathPrefixTransformer = "table_path_prefix"
Expand Down Expand Up @@ -60,22 +60,22 @@ func parseConnectionString(dataSourceName string) (opts []Option, _ error) {
opts = append(opts, WithBalancer(balancers.FromConfig(balancer)))
}
if queryMode := info.Params.Get("go_query_mode"); queryMode != "" {
mode := tableSql.QueryModeFromString(queryMode)
if mode == tableSql.UnknownQueryMode {
mode := table.QueryModeFromString(queryMode)
if mode == table.UnknownQueryMode {
return nil, xerrors.WithStackTrace(fmt.Errorf("unknown query mode: %s", queryMode))
}
opts = append(opts, withConnectorOptions(xsql.WithDefaultQueryMode(mode)))
} else if queryMode := info.Params.Get("query_mode"); queryMode != "" {
mode := tableSql.QueryModeFromString(queryMode)
if mode == tableSql.UnknownQueryMode {
mode := table.QueryModeFromString(queryMode)
if mode == table.UnknownQueryMode {
return nil, xerrors.WithStackTrace(fmt.Errorf("unknown query mode: %s", queryMode))
}
opts = append(opts, withConnectorOptions(xsql.WithDefaultQueryMode(mode)))
}
if fakeTx := info.Params.Get("go_fake_tx"); fakeTx != "" {
for _, queryMode := range strings.Split(fakeTx, ",") {
mode := tableSql.QueryModeFromString(queryMode)
if mode == tableSql.UnknownQueryMode {
mode := table.QueryModeFromString(queryMode)
if mode == table.UnknownQueryMode {
return nil, xerrors.WithStackTrace(fmt.Errorf("unknown query mode: %s", queryMode))
}
opts = append(opts, withConnectorOptions(xsql.WithFakeTx(mode)))
Expand Down
30 changes: 15 additions & 15 deletions dsn_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import (
"github.com/ydb-platform/ydb-go-sdk/v3/config"
"github.com/ydb-platform/ydb-go-sdk/v3/internal/bind"
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql"
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/conn/query/conn"
conn3 "github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/conn/table/conn"
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/conn/query"
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/conn/table"
)

func TestParse(t *testing.T) {
Expand All @@ -26,11 +26,11 @@ func TestParse(t *testing.T) {

return c
}
newTableConn := func(opts ...conn3.Option) *conn3.Conn {
return conn3.New(context.Background(), nil, nil, opts...)
newTableConn := func(opts ...table.Option) *table.Conn {
return table.New(context.Background(), nil, nil, opts...)
}
newQueryConn := func(opts ...conn.Option) *conn.Conn {
return conn.New(context.Background(), nil, nil, opts...)
newQueryConn := func(opts ...query.Option) *query.Conn {
return query.New(context.Background(), nil, nil, opts...)
}
compareConfigs := func(t *testing.T, lhs, rhs *config.Config) {
require.Equal(t, lhs.Secure(), rhs.Secure())
Expand Down Expand Up @@ -71,7 +71,7 @@ func TestParse(t *testing.T) {
config.WithDatabase("/local"),
},
connectorOpts: []xsql.Option{
xsql.WithDefaultQueryMode(conn3.ScriptingQueryMode),
xsql.WithDefaultQueryMode(table.ScriptingQueryMode),
},
err: nil,
},
Expand All @@ -83,7 +83,7 @@ func TestParse(t *testing.T) {
config.WithDatabase("/local"),
},
connectorOpts: []xsql.Option{
xsql.WithDefaultQueryMode(conn3.ScriptingQueryMode),
xsql.WithDefaultQueryMode(table.ScriptingQueryMode),
xsql.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
},
err: nil,
Expand All @@ -96,7 +96,7 @@ func TestParse(t *testing.T) {
config.WithDatabase("/local"),
},
connectorOpts: []xsql.Option{
xsql.WithDefaultQueryMode(conn3.ScriptingQueryMode),
xsql.WithDefaultQueryMode(table.ScriptingQueryMode),
xsql.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
xsql.WithQueryBind(bind.NumericArgs{}),
},
Expand All @@ -110,7 +110,7 @@ func TestParse(t *testing.T) {
config.WithDatabase("/local"),
},
connectorOpts: []xsql.Option{
xsql.WithDefaultQueryMode(conn3.ScriptingQueryMode),
xsql.WithDefaultQueryMode(table.ScriptingQueryMode),
xsql.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
xsql.WithQueryBind(bind.PositionalArgs{}),
},
Expand All @@ -124,7 +124,7 @@ func TestParse(t *testing.T) {
config.WithDatabase("/local"),
},
connectorOpts: []xsql.Option{
xsql.WithDefaultQueryMode(conn3.ScriptingQueryMode),
xsql.WithDefaultQueryMode(table.ScriptingQueryMode),
xsql.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
xsql.WithQueryBind(bind.AutoDeclare{}),
},
Expand All @@ -138,7 +138,7 @@ func TestParse(t *testing.T) {
config.WithDatabase("/local"),
},
connectorOpts: []xsql.Option{
xsql.WithDefaultQueryMode(conn3.ScriptingQueryMode),
xsql.WithDefaultQueryMode(table.ScriptingQueryMode),
xsql.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
},
err: nil,
Expand All @@ -151,7 +151,7 @@ func TestParse(t *testing.T) {
config.WithDatabase("/local"),
},
connectorOpts: []xsql.Option{
xsql.WithDefaultQueryMode(conn3.ScriptingQueryMode),
xsql.WithDefaultQueryMode(table.ScriptingQueryMode),
xsql.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
xsql.WithQueryBind(bind.PositionalArgs{}),
xsql.WithQueryBind(bind.AutoDeclare{}),
Expand All @@ -166,8 +166,8 @@ func TestParse(t *testing.T) {
config.WithDatabase("/local"),
},
connectorOpts: []xsql.Option{
xsql.WithFakeTx(conn3.ScriptingQueryMode),
xsql.WithFakeTx(conn3.SchemeQueryMode),
xsql.WithFakeTx(table.ScriptingQueryMode),
xsql.WithFakeTx(table.SchemeQueryMode),
},
err: nil,
},
Expand Down
4 changes: 2 additions & 2 deletions examples/ddl/ddl.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,10 @@ ALTER TABLE small_table3 SET (TTL = Interval("PT3H") ON d);
`
)

func executeQuery(ctx context.Context, c table.Client, prefix, query string) (err error) {
func executeQuery(ctx context.Context, c table.Client, prefix, sql string) (err error) {
err = c.Do(ctx,
func(ctx context.Context, s table.Session) error {
err = s.ExecuteSchemeQuery(ctx, fmt.Sprintf(query, prefix))
err = s.ExecuteSchemeQuery(ctx, fmt.Sprintf(sql, prefix))

return err
},
Expand Down
6 changes: 3 additions & 3 deletions internal/bind/auto_declare.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ func (m AutoDeclare) blockID() blockID {
return blockDeclare
}

func (m AutoDeclare) RewriteQuery(query string, args ...interface{}) (
func (m AutoDeclare) ToYdb(sql string, args ...interface{}) (
yql string, newArgs []interface{}, err error,
) {
params, err := Params(args...)
Expand All @@ -22,7 +22,7 @@ func (m AutoDeclare) RewriteQuery(query string, args ...interface{}) (
}

if len(params) == 0 {
return query, args, nil
return sql, args, nil
}

var (
Expand All @@ -46,7 +46,7 @@ func (m AutoDeclare) RewriteQuery(query string, args ...interface{}) (

buffer.WriteByte('\n')

buffer.WriteString(query)
buffer.WriteString(sql)

for _, param := range params {
newArgs = append(newArgs, param)
Expand Down
16 changes: 8 additions & 8 deletions internal/bind/bind.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const (
)

type Bind interface {
RewriteQuery(sql string, args ...interface{}) (
ToYdb(sql string, args ...interface{}) (
yql string, newArgs []interface{}, _ error,
)

Expand All @@ -26,35 +26,35 @@ type Bind interface {

type Bindings []Bind

func (bindings Bindings) RewriteQuery(query string, args ...interface{}) (
yql string, parameters []*params.Parameter, err error,
func (bindings Bindings) ToYdb(sql string, args ...interface{}) (
yql string, params params.Params, err error,
) {
if len(bindings) == 0 {
parameters, err = Params(args...)
params, err = Params(args...)
if err != nil {
return "", nil, xerrors.WithStackTrace(err)
}

return query, parameters, nil
return sql, params, nil
}

buffer := xstring.Buffer()
defer buffer.Free()

for i := range bindings {
var e error
query, args, e = bindings[len(bindings)-1-i].RewriteQuery(query, args...)
sql, args, e = bindings[len(bindings)-1-i].ToYdb(sql, args...)
if e != nil {
return "", nil, xerrors.WithStackTrace(e)
}
}

parameters, err = Params(args...)
params, err = Params(args...)
if err != nil {
return "", nil, xerrors.WithStackTrace(err)
}

return query, parameters, nil
return sql, params, nil
}

func Sort(bindings []Bind) []Bind {
Expand Down
2 changes: 1 addition & 1 deletion internal/bind/numeric_args.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func (m NumericArgs) blockID() blockID {
return blockYQL
}

func (m NumericArgs) RewriteQuery(sql string, args ...interface{}) (yql string, newArgs []interface{}, err error) {
func (m NumericArgs) ToYdb(sql string, args ...interface{}) (yql string, newArgs []interface{}, err error) {
l := &sqlLexer{
src: sql,
stateFn: numericArgsStateFn,
Expand Down
2 changes: 1 addition & 1 deletion internal/bind/numeric_args_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ SELECT $p0, $p1`,
},
} {
t.Run("", func(t *testing.T) {
yql, params, err := b.RewriteQuery(tt.sql, tt.args...)
yql, params, err := b.ToYdb(tt.sql, tt.args...)
if tt.err != nil {
require.Error(t, err)
require.ErrorIs(t, err, tt.err)
Expand Down
2 changes: 1 addition & 1 deletion internal/bind/positional_args.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ func (m PositionalArgs) blockID() blockID {
return blockYQL
}

func (m PositionalArgs) RewriteQuery(sql string, args ...interface{}) (
func (m PositionalArgs) ToYdb(sql string, args ...interface{}) (
yql string, newArgs []interface{}, err error,
) {
l := &sqlLexer{
Expand Down
2 changes: 1 addition & 1 deletion internal/bind/positional_args_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ SELECT $p0, $p1`,
},
} {
t.Run("", func(t *testing.T) {
yql, params, err := b.RewriteQuery(tt.sql, tt.args...)
yql, params, err := b.ToYdb(tt.sql, tt.args...)
if tt.err != nil {
require.Error(t, err)
require.ErrorIs(t, err, tt.err)
Expand Down
4 changes: 2 additions & 2 deletions internal/bind/table_path_prefix.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ func (tablePathPrefix TablePathPrefix) NormalizePath(folderOrTable string) strin
}
}

func (tablePathPrefix TablePathPrefix) RewriteQuery(query string, args ...interface{}) (
func (tablePathPrefix TablePathPrefix) ToYdb(sql string, args ...interface{}) (
yql string, newArgs []interface{}, err error,
) {
buffer := xstring.Buffer()
Expand All @@ -34,7 +34,7 @@ func (tablePathPrefix TablePathPrefix) RewriteQuery(query string, args ...interf
buffer.WriteString("PRAGMA TablePathPrefix(\"")
buffer.WriteString(string(tablePathPrefix))
buffer.WriteString("\");\n\n")
buffer.WriteString(query)
buffer.WriteString(sql)

return buffer.String(), args, nil
}
Loading

0 comments on commit 6fc08be

Please sign in to comment.