From 614b740c56d481e8470dd2f3aaf3e5bafd7f5347 Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Sat, 20 Sep 2025 22:46:47 +0300 Subject: [PATCH] split files Signed-off-by: Vasiliy Tolstov --- cluster/hasql/cluster.go | 27 --------------------------- cluster/hasql/db.go | 25 +++++++++++++++++++++++++ cluster/hasql/driver_test.go | 2 +- cluster/hasql/error.go | 10 ++++++++++ 4 files changed, 36 insertions(+), 28 deletions(-) create mode 100644 cluster/hasql/db.go create mode 100644 cluster/hasql/error.go diff --git a/cluster/hasql/cluster.go b/cluster/hasql/cluster.go index dba2e865..ab294351 100644 --- a/cluster/hasql/cluster.go +++ b/cluster/hasql/cluster.go @@ -3,20 +3,12 @@ package sql import ( "context" "database/sql" - "errors" "reflect" "unsafe" "golang.yandex/hasql/v2" ) -var ( - ErrClusterChecker = errors.New("cluster node checker required") - ErrClusterDiscoverer = errors.New("cluster node discoverer required") - ErrClusterPicker = errors.New("cluster node picker required") - ErrorNoAliveNodes = errors.New("cluster no alive nodes") -) - func newSQLRowError() *sql.Row { row := &sql.Row{} t := reflect.TypeOf(row).Elem() @@ -33,25 +25,6 @@ type ClusterQuerier interface { WaitForNodes(ctx context.Context, criterion ...hasql.NodeStateCriterion) error } -type Querier interface { - // Basic connection methods - PingContext(ctx context.Context) error - Close() error - - // Query methods with context - ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error) - QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error) - QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row - - // Prepared statements with context - PrepareContext(ctx context.Context, query string) (*sql.Stmt, error) - - // Transaction management with context - BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error) - - Conn(ctx context.Context) (*sql.Conn, error) -} - type Cluster struct { hasql *hasql.Cluster[Querier] options ClusterOptions diff --git a/cluster/hasql/db.go b/cluster/hasql/db.go new file mode 100644 index 00000000..575e8158 --- /dev/null +++ b/cluster/hasql/db.go @@ -0,0 +1,25 @@ +package sql + +import ( + "context" + "database/sql" +) + +type Querier interface { + // Basic connection methods + PingContext(ctx context.Context) error + Close() error + + // Query methods with context + ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error) + QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error) + QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row + + // Prepared statements with context + PrepareContext(ctx context.Context, query string) (*sql.Stmt, error) + + // Transaction management with context + BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error) + + Conn(ctx context.Context) (*sql.Conn, error) +} diff --git a/cluster/hasql/driver_test.go b/cluster/hasql/driver_test.go index 05c88992..17f357a4 100644 --- a/cluster/hasql/driver_test.go +++ b/cluster/hasql/driver_test.go @@ -119,7 +119,7 @@ func TestDriver(t *testing.T) { t.Fatal(err) } - db, err := OpenDBWithDriver(c) + db, err := OpenDBWithCluster(c) if err != nil { t.Fatal(err) } diff --git a/cluster/hasql/error.go b/cluster/hasql/error.go new file mode 100644 index 00000000..c92fd0ee --- /dev/null +++ b/cluster/hasql/error.go @@ -0,0 +1,10 @@ +package sql + +import "errors" + +var ( + ErrClusterChecker = errors.New("cluster node checker required") + ErrClusterDiscoverer = errors.New("cluster node discoverer required") + ErrClusterPicker = errors.New("cluster node picker required") + ErrorNoAliveNodes = errors.New("cluster no alive nodes") +)