 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Overview ¶
Example (ExecuteScript) ¶
ctx := context.TODO()
db, err := ydb.Open(ctx, "grpc://localhost:2136/local")
if err != nil {
	panic(err)
}
defer db.Close(ctx)                      // cleanup resources
op, err := db.Query().ExecuteScript(ctx, // context manage exiting from Do
	`SELECT CAST($id AS Uint64) AS id, CAST($myStr AS Text) AS myStr`,
	time.Hour,
	query.WithParameters(
		ydb.ParamsBuilder().
			Param("$id").Uint64(123).
			Param("$myStr").Text("123").
			Build(),
	),
	query.WithIdempotent(),
)
if err != nil {
	panic(err)
}
for {
	status, err := db.Operation().Get(ctx, op.ID)
	if err != nil {
		panic(err)
	}
	if status.Ready {
		break
	}
	time.Sleep(time.Second)
}
var nextToken string
for {
	result, err := db.Query().FetchScriptResults(ctx, op.ID,
		query.WithResultSetIndex(0),
		query.WithRowsLimit(1000),
		query.WithFetchToken(nextToken),
	)
	if err != nil {
		panic(err)
	}
	nextToken = result.NextToken
	for row, err := range result.ResultSet.Rows(ctx) {
		if err != nil {
			panic(err)
		}
		var (
			id    int64
			myStr string
		)
		err = row.Scan(&id, &myStr)
		if err != nil {
			panic(err)
		}
		fmt.Printf("id=%v, myStr='%s'\n", id, myStr)
	}
	if result.NextToken == "" {
		break
	}
}
Example (Explain) ¶
ctx := context.TODO()
db, err := ydb.Open(ctx, "grpc://localhost:2136/local")
if err != nil {
	panic(err)
}
defer db.Close(ctx) // cleanup resources
var (
	ast  string
	plan string
)
err = db.Query().Exec(ctx,
	`SELECT CAST(42 AS Uint32);`,
	query.WithExecMode(query.ExecModeExplain),
	query.WithStatsMode(query.StatsModeNone, func(stats query.Stats) {
		ast = stats.QueryAST()
		plan = stats.QueryPlan()
	}),
	query.WithIdempotent(),
)
if err != nil {
	panic(err)
}
fmt.Println(plan)
fmt.Println(ast)
Example (QueryRow) ¶
ctx := context.TODO()
db, err := ydb.Open(ctx, "grpc://localhost:2136/local")
if err != nil {
	panic(err)
}
defer db.Close(ctx) // cleanup resources
var (
	id    int32  // required value
	myStr string // optional value
)
// Do retry operation on errors with best effort
row, err := db.Query().QueryRow(ctx, // context manage exiting from Do
	`SELECT 42 as id, "my string" as myStr`,
	query.WithIdempotent(),
)
if err != nil {
	panic(err)
}
err = row.ScanNamed(
	query.Named("id", &id),
	query.Named("myStr", &myStr),
)
if err != nil {
	panic(err)
}
fmt.Printf("id=%v, myStr='%s'\n", id, myStr)
Example (QueryWithMaterializedResult) ¶
ctx := context.TODO()
db, err := ydb.Open(ctx, "grpc://localhost:2136/local")
if err != nil {
	panic(err)
}
defer db.Close(ctx) // cleanup resources
var (
	id    int32  // required value
	myStr string // optional value
)
// Do retry operation on errors with best effort
materilizedResult, err := db.Query().Query(ctx, // context manage exiting from Do
	`SELECT 42 as id, "my string" as myStr`,
	query.WithIdempotent(),
)
if err != nil {
	panic(err)
}
defer func() {
	_ = materilizedResult.Close(ctx)
}()
for rs, err := range materilizedResult.ResultSets(ctx) {
	if err != nil {
		panic(err)
	}
	for row, err := range rs.Rows(ctx) {
		if err != nil {
			panic(err)
		}
		err = row.ScanNamed(
			query.Named("id", &id),
			query.Named("myStr", &myStr),
		)
		if err != nil {
			panic(err)
		}
	}
}
fmt.Printf("id=%v, myStr='%s'\n", id, myStr)
Example (QueryWithMaterializedResultSet) ¶
ctx := context.TODO()
db, err := ydb.Open(ctx, "grpc://localhost:2136/local")
if err != nil {
	panic(err)
}
defer db.Close(ctx) // cleanup resources
var (
	id    int32  // required value
	myStr string // optional value
)
// Do retry operation on errors with best effort
materilizedResultSet, err := db.Query().QueryResultSet(ctx, // context manage exiting from Do
	`SELECT 42 as id, "my string" as myStr`,
	query.WithIdempotent(),
)
if err != nil {
	panic(err)
}
for row, err := range materilizedResultSet.Rows(ctx) {
	if err != nil {
		panic(err)
	}
	err = row.ScanNamed(
		query.Named("id", &id),
		query.Named("myStr", &myStr),
	)
	if err != nil {
		panic(err)
	}
}
fmt.Printf("id=%v, myStr='%s'\n", id, myStr)
Example (ResultStats) ¶
ctx := context.TODO()
db, err := ydb.Open(ctx, "grpc://localhost:2136/local")
if err != nil {
	panic(err)
}
defer db.Close(ctx) // cleanup resources
var (
	id    int32  // required value
	myStr string // required value
)
var stats query.Stats
// Do retry operation on errors with best effort
row, err := db.Query().QueryRow(ctx, // context manage exiting from Do
	`SELECT CAST($id AS Uint64) AS id, CAST($myStr AS Text) AS myStr`,
	query.WithParameters(
		ydb.ParamsBuilder().
			Param("$id").Uint64(123).
			Param("$myStr").Text("123").
			Build(),
	),
	query.WithStatsMode(query.StatsModeFull, func(s query.Stats) {
		stats = s
	}),
	query.WithIdempotent(),
)
if err != nil {
	panic(err)
}
err = row.ScanNamed(
	query.Named("id", &id),
	query.Named("myStr", &myStr),
)
if err != nil {
	panic(err)
}
fmt.Printf("id=%v, myStr='%s'\n", id, myStr)
fmt.Println("Stats:")
fmt.Printf("- Compilation='%v'\n", stats.Compilation())
fmt.Printf("- TotalCPUTime='%v'\n", stats.TotalCPUTime())
fmt.Printf("- ProcessCPUTime='%v'\n", stats.ProcessCPUTime())
fmt.Printf("- QueryAST='%v'\n", stats.QueryAST())
fmt.Printf("- QueryPlan='%v'\n", stats.QueryPlan())
fmt.Println("- Phases:")
for {
	phase, ok := stats.NextPhase()
	if !ok {
		break
	}
	fmt.Printf("  - CPUTime='%v'\n", phase.CPUTime())
	fmt.Printf("  - Duration='%v'\n", phase.Duration())
	fmt.Printf("  - IsLiteralPhase='%v'\n", phase.IsLiteralPhase())
	fmt.Printf("  - AffectedShards='%v'\n", phase.AffectedShards())
	fmt.Println("  - TableAccesses:")
	for {
		tableAccess, ok := phase.NextTableAccess()
		if !ok {
			break
		}
		fmt.Printf("    - %v\n", tableAccess)
	}
}
Example (RetryWithLazyTx) ¶
ctx := context.TODO()
db, err := ydb.Open(ctx, "grpc://localhost:2136/local",
	ydb.WithLazyTx(true),
)
if err != nil {
	fmt.Printf("failed connect: %v", err)
	return
}
defer db.Close(ctx) // cleanup resources
var (
	id    int32  // required value
	myStr string // optional value
)
// Do retry operation on errors with best effort
err = db.Query().DoTx(ctx, // context manage exiting from Do
	func(ctx context.Context, tx query.TxActor) (err error) { // retry operation
		res, err := tx.Query(ctx,
			`SELECT 42 as id, "my string" as myStr`,
		)
		if err != nil {
			return err // for auto-retry with driver
		}
		fmt.Printf("txID: expected %q, actual %q", baseTx.LazyTxID, tx.ID())
		defer func() { _ = res.Close(ctx) }() // cleanup resources
		// for loop with ResultSets available with Go version 1.23+
		for rs, err := range res.ResultSets(ctx) {
			if err != nil {
				return err
			}
			// for loop with ResultSets available with Go version 1.23+
			for row, err := range rs.Rows(ctx) {
				if err != nil {
					return err
				}
				if err = row.ScanNamed(
					query.Named("id", &id),
					query.Named("myStr", &myStr),
				); err != nil {
					return err // generally scan error not retryable, return it for driver check error
				}
			}
		}
		return nil
	},
	query.WithIdempotent(),
	query.WithTxSettings(query.TxSettings(
		query.WithSnapshotReadOnly(),
	)),
)
if err != nil {
	fmt.Printf("unexpected error: %v", err)
}
fmt.Printf("id=%v, myStr='%s'\n", id, myStr)
Example (RetryWithSessions) ¶
ctx := context.TODO()
db, err := ydb.Open(ctx, "grpc://localhost:2136/local")
if err != nil {
	panic(err)
}
defer db.Close(ctx) // cleanup resources
var (
	id    int32  // required value
	myStr string // required value
)
// Do retry operation on errors with best effort
err = db.Query().Do(ctx, func(ctx context.Context, s query.Session) error {
	streamResult, err := s.Query(ctx, // context manage exiting from Do
		`SELECT CAST($id AS Uint64) AS id, CAST($myStr AS Text) AS myStr`,
		query.WithParameters(
			ydb.ParamsBuilder().
				Param("$id").Uint64(123).
				Param("$myStr").Text("123").
				Build(),
		),
	)
	if err != nil {
		panic(err)
	}
	defer func() {
		_ = streamResult.Close(ctx)
	}()
	for rs, err := range streamResult.ResultSets(ctx) {
		if err != nil {
			return err
		}
		for row, err := range rs.Rows(ctx) {
			if err != nil {
				return err
			}
			err = row.ScanNamed(
				query.Named("id", &id),
				query.Named("myStr", &myStr),
			)
			if err != nil {
				panic(err)
			}
		}
	}
	return nil
}, query.WithIdempotent())
if err != nil {
	panic(err)
}
fmt.Printf("id=%v, myStr='%s'\n", id, myStr)
Example (RetryWithTx) ¶
ctx := context.TODO()
db, err := ydb.Open(ctx, "grpc://localhost:2136/local")
if err != nil {
	fmt.Printf("failed connect: %v", err)
	return
}
defer db.Close(ctx) // cleanup resources
var (
	id    int32  // required value
	myStr string // optional value
)
// Do retry operation on errors with best effort
err = db.Query().DoTx(ctx, // context manage exiting from Do
	func(ctx context.Context, tx query.TxActor) (err error) { // retry operation
		res, err := tx.Query(ctx,
			`SELECT 42 as id, "my string" as myStr`,
		)
		if err != nil {
			return err // for auto-retry with driver
		}
		defer func() { _ = res.Close(ctx) }() // cleanup resources
		// for loop with ResultSets available with Go version 1.23+
		for rs, err := range res.ResultSets(ctx) {
			if err != nil {
				return err
			}
			// for loop with ResultSets available with Go version 1.23+
			for row, err := range rs.Rows(ctx) {
				if err != nil {
					return err
				}
				if err = row.ScanNamed(
					query.Named("id", &id),
					query.Named("myStr", &myStr),
				); err != nil {
					return err // generally scan error not retryable, return it for driver check error
				}
			}
		}
		return nil
	},
	query.WithIdempotent(),
	query.WithTxSettings(query.TxSettings(
		query.WithSnapshotReadOnly(),
	)),
)
if err != nil {
	fmt.Printf("unexpected error: %v", err)
}
fmt.Printf("id=%v, myStr='%s'\n", id, myStr)
Example (SelectWithParameters) ¶
ctx := context.TODO()
db, err := ydb.Open(ctx, "grpc://localhost:2136/local")
if err != nil {
	panic(err)
}
defer db.Close(ctx) // cleanup resources
var (
	id    int32  // required value
	myStr string // required value
)
// Do retry operation on errors with best effort
row, err := db.Query().QueryRow(ctx, // context manage exiting from Do
	`SELECT CAST($id AS Uint64) AS id, CAST($myStr AS Text) AS myStr`,
	query.WithParameters(
		ydb.ParamsBuilder().
			Param("$id").Uint64(123).
			Param("$myStr").Text("123").
			Build(),
	),
	query.WithIdempotent(),
)
if err != nil {
	panic(err)
}
err = row.ScanNamed(
	query.Named("id", &id),
	query.Named("myStr", &myStr),
)
if err != nil {
	panic(err)
}
fmt.Printf("id=%v, myStr='%s'\n", id, myStr)
Example (WithoutRangeIterators) ¶
ctx := context.TODO()
db, err := ydb.Open(ctx, "grpc://localhost:2136/local")
if err != nil {
	panic(err)
}
defer db.Close(ctx) // cleanup resources
var (
	id    int32  // required value
	myStr string // optional value
)
materializedResult, err := db.Query().Query(ctx, `SELECT 42 as id, "my string" as myStr`,
	query.WithIdempotent(),
)
if err != nil {
	panic(err)
}
for {
	rs, err := materializedResult.NextResultSet(ctx)
	if err != nil {
		if errors.Is(err, io.EOF) {
			break
		}
		panic(err)
	}
	for {
		row, err := rs.NextRow(ctx)
		if err != nil {
			if errors.Is(err, io.EOF) {
				break
			}
			panic(err)
		}
		err = row.ScanNamed(
			query.Named("id", &id),
			query.Named("myStr", &myStr),
		)
		if err != nil {
			panic(err)
		}
		fmt.Printf("id=%v, myStr='%s'\n", id, myStr)
	}
}
Index ¶
- Constants
- func AllowImplicitSessions() config.Option
- func BeginTx(opts ...TransactionOption) tx.ControlOption
- func CommitTx() tx.ControlOption
- func WithFetchToken(fetchToken string) options.FetchScriptOption
- func WithIdempotent() options.RetryOptionsOption
- func WithInconsistentReads() tx.OnlineReadOnlyOption
- func WithLabel(lbl string) options.LabelOption
- func WithResultSetIndex(resultSetIndex int64) options.FetchScriptOption
- func WithRetryBudget(b budget.Budget) options.RetryOptionsOption
- func WithRowsLimit(rowsLimit int64) options.FetchScriptOption
- func WithTrace(t *trace.Query) options.TraceOption
- func WithTx(t tx.Identifier) tx.ControlOption
- func WithTxID(txID string) tx.ControlOption
- func WithTxSettings(txSettings tx.Settings) options.DoTxOption
- type ArrowExecutor
- type ArrowResult
- type Client
- type ClosableResultSet
- type ClosableSession
- type DoOption
- type DoTxOption
- type ExecuteOption
- func WithCallOptions(opts ...grpc.CallOption) ExecuteOption
- func WithCommit() ExecuteOption
- func WithExecMode(mode options.ExecMode) ExecuteOption
- func WithParameters(parameters params.Parameters) ExecuteOption
- func WithResourcePool(id string) ExecuteOption
- func WithResponsePartLimitSizeBytes(size int64) ExecuteOption
- func WithStatsMode(mode options.StatsMode, callback func(Stats)) ExecuteOption
- func WithSyntax(syntax options.Syntax) ExecuteOption
- func WithTxControl(txControl *tx.Control) ExecuteOption
 
- type Executor
- type NamedDestination
- type Operation
- type Result
- type ResultSet
- type Row
- type ScanStructOption
- type Session
- type SessionInfo
- type Stats
- type Transaction
- type TransactionActor
- type TransactionControl
- func DefaultTxControl() *TransactionControl
- func EmptyTxControl() *TransactionControl
- func NoTx() *TransactionControl
- func OnlineReadOnlyTxControl(opts ...tx.OnlineReadOnlyOption) *TransactionControl
- func SerializableReadWriteTxControl(opts ...tx.ControlOption) *TransactionControl
- func SnapshotReadOnlyTxControl() *TransactionControl
- func StaleReadOnlyTxControl() *TransactionControl
- func TxControl(opts ...tx.ControlOption) *TransactionControl
 
- type TransactionOption
- type TransactionSettings
- type TxActor
- type TxOperation
- type Type
Examples ¶
- Package (ExecuteScript)
- Package (Explain)
- Package (QueryRow)
- Package (QueryWithMaterializedResult)
- Package (QueryWithMaterializedResultSet)
- Package (ResultStats)
- Package (RetryWithLazyTx)
- Package (RetryWithSessions)
- Package (RetryWithTx)
- Package (SelectWithParameters)
- Package (WithoutRangeIterators)
Constants ¶
const ( SyntaxYQL = options.SyntaxYQL SyntaxPostgreSQL = options.SyntaxPostgreSQL )
const ( ExecModeParse = options.ExecModeParse ExecModeValidate = options.ExecModeValidate ExecModeExplain = options.ExecModeExplain ExecModeExecute = options.ExecModeExecute )
const ( StatsModeBasic = options.StatsModeBasic StatsModeNone = options.StatsModeNone StatsModeFull = options.StatsModeFull StatsModeProfile = options.StatsModeProfile )
Variables ¶
This section is empty.
Functions ¶
func AllowImplicitSessions ¶ added in v3.113.0
AllowImplicitSessions is an option to execute queries using an implicit session which allows the queries to be executed without explicitly creating a session. Please note that requests with this option use a separate session pool.
Working with `query.Client.{Exec,Query,QueryResultSet,QueryRow}`.
func BeginTx ¶
func BeginTx(opts ...TransactionOption) tx.ControlOption
BeginTx returns selector transaction control option
func WithFetchToken ¶ added in v3.77.0
func WithFetchToken(fetchToken string) options.FetchScriptOption
func WithIdempotent ¶
func WithIdempotent() options.RetryOptionsOption
func WithInconsistentReads ¶
func WithInconsistentReads() tx.OnlineReadOnlyOption
func WithLabel ¶ added in v3.57.1
func WithLabel(lbl string) options.LabelOption
func WithResultSetIndex ¶ added in v3.77.0
func WithResultSetIndex(resultSetIndex int64) options.FetchScriptOption
func WithRetryBudget ¶ added in v3.66.0
func WithRetryBudget(b budget.Budget) options.RetryOptionsOption
WithRetryBudget creates option with external budget
func WithRowsLimit ¶ added in v3.77.0
func WithRowsLimit(rowsLimit int64) options.FetchScriptOption
func WithTx ¶
func WithTx(t tx.Identifier) tx.ControlOption
func WithTxID ¶
func WithTxID(txID string) tx.ControlOption
func WithTxSettings ¶
func WithTxSettings(txSettings tx.Settings) options.DoTxOption
Types ¶
type ArrowExecutor ¶ added in v3.116.0
type ArrowExecutor interface {
	// QueryArrow like [Executor.Query] but returns results in [Apache Arrow] format.
	// Each part of the result implements io.Reader and contains the data in Arrow IPC format.
	//
	// Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
	//
	// [Apache Arrow]: https://arrow.apache.org/
	QueryArrow(ctx context.Context, sql string, opts ...ExecuteOption) (ArrowResult, error)
}
    ArrowExecutor is an interface for execute queries with results in `Apache Arrow` format.
type ArrowResult ¶ added in v3.116.0
type Client ¶
type Client interface {
	Executor
	// Do provide the best effort for execute operation.
	//
	// Do implements internal busy loop until one of the following conditions is met:
	// - deadline was canceled or deadlined
	// - retry operation returned nil as error
	//
	// Warning: if context without deadline or cancellation func than Do can run indefinitely.
	Do(ctx context.Context, op Operation, opts ...DoOption) error
	// DoTx provide the best effort for execute transaction.
	//
	// DoTx implements internal busy loop until one of the following conditions is met:
	//  - deadline was canceled or deadlined
	//  - retry operation returned nil as error
	//
	// DoTx makes auto selector (with TransactionSettings, by default - SerializableReadWrite), commit and
	// rollback (on error) of transaction.
	//
	// If op TxOperation returns nil - transaction will be committed
	// If op TxOperation return non nil - transaction will be rollback
	// Warning: if context without deadline or cancellation func than DoTx can run indefinitely
	DoTx(ctx context.Context, op TxOperation, opts ...DoTxOption) error
	// Exec execute query without result
	//
	// Exec used by default:
	// - DefaultTxControl
	Exec(ctx context.Context, sql string, opts ...ExecuteOption) error
	// Query execute query with materialized result
	//
	// Warning: the large result from query will be materialized and can happened to "OOM killed" problem
	//
	// Exec used by default:
	// - DefaultTxControl
	Query(ctx context.Context, sql string, opts ...ExecuteOption) (Result, error)
	// QueryResultSet is a helper which read all rows from first result set in result
	//
	// Warning: the large result set from query will be materialized and can happened to "OOM killed" problem
	QueryResultSet(ctx context.Context, sql string, opts ...ExecuteOption) (ClosableResultSet, error)
	// QueryRow is a helper which read only one row from first result set in result
	//
	// ReadRow returns error if result contains more than one result set or more than one row
	QueryRow(ctx context.Context, sql string, opts ...ExecuteOption) (Row, error)
	// ExecuteScript starts long executing script with polling results later
	//
	// Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
	ExecuteScript(
		ctx context.Context, sql string, ttl time.Duration, ops ...ExecuteOption,
	) (*options.ExecuteScriptOperation, error)
	// FetchScriptResults fetching the script results
	//
	// Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
	FetchScriptResults(
		ctx context.Context, opID string, opts ...options.FetchScriptOption,
	) (*options.FetchScriptResult, error)
}
    Client defines API of query client
type ClosableResultSet ¶ added in v3.78.0
type ClosableResultSet = result.ClosableResultSet
type ClosableSession ¶
type DoTxOption ¶
type DoTxOption = options.DoTxOption
type ExecuteOption ¶
func WithCallOptions ¶
func WithCallOptions(opts ...grpc.CallOption) ExecuteOption
func WithCommit ¶
func WithCommit() ExecuteOption
func WithExecMode ¶
func WithExecMode(mode options.ExecMode) ExecuteOption
func WithParameters ¶
func WithParameters(parameters params.Parameters) ExecuteOption
func WithResourcePool ¶ added in v3.85.3
func WithResourcePool(id string) ExecuteOption
WithResourcePool is an option for define resource pool for execute query
Read more https://ydb.tech/docs/ru/dev/resource-consumption-management
func WithResponsePartLimitSizeBytes ¶ added in v3.92.3
func WithResponsePartLimitSizeBytes(size int64) ExecuteOption
WithResponsePartLimitSizeBytes limit size of each part (data portion) in stream for query service resoponse it isn't limit total size of answer
func WithStatsMode ¶
func WithStatsMode(mode options.StatsMode, callback func(Stats)) ExecuteOption
func WithSyntax ¶
func WithSyntax(syntax options.Syntax) ExecuteOption
func WithTxControl ¶
func WithTxControl(txControl *tx.Control) ExecuteOption
type Executor ¶ added in v3.77.0
type Executor interface {
	// Exec execute query without result
	//
	// Exec used by default:
	// - DefaultTxControl
	Exec(ctx context.Context, sql string, opts ...ExecuteOption) error
	// Query execute query with result
	//
	// Exec used by default:
	// - DefaultTxControl
	Query(ctx context.Context, sql string, opts ...ExecuteOption) (Result, error)
	// QueryResultSet execute query and take the exactly single materialized result set from result
	//
	// Exec used by default:
	// - DefaultTxControl
	QueryResultSet(ctx context.Context, sql string, opts ...ExecuteOption) (ClosableResultSet, error)
	// QueryRow execute query and take the exactly single row from exactly single result set from result
	//
	// Exec used by default:
	// - DefaultTxControl
	QueryRow(ctx context.Context, sql string, opts ...ExecuteOption) (Row, error)
}
    Executor is an interface for execute queries
type NamedDestination ¶ added in v3.73.0
type NamedDestination = scanner.NamedDestination
func Named ¶
func Named(columnName string, destinationValueReference interface{}) (dst NamedDestination)
type Operation ¶
Operation is the interface that holds an operation for retry. if Operation returns not nil - operation will retry if Operation returns nil - retry loop will break
type ScanStructOption ¶ added in v3.73.0
type ScanStructOption = scanner.ScanStructOption
func WithScanStructAllowMissingColumnsFromSelect ¶
func WithScanStructAllowMissingColumnsFromSelect() ScanStructOption
func WithScanStructAllowMissingFieldsInStruct ¶
func WithScanStructAllowMissingFieldsInStruct() ScanStructOption
func WithScanStructTagName ¶
func WithScanStructTagName(name string) ScanStructOption
type Session ¶
type Session interface {
	SessionInfo
	Executor
	ArrowExecutor
	Begin(ctx context.Context, txSettings TransactionSettings) (Transaction, error)
}
    type Stats ¶ added in v3.59.0
type Stats = stats.QueryStats
type Transaction ¶
type TransactionActor ¶ added in v3.101.3
type TransactionActor = TxActor
type TransactionControl ¶
func DefaultTxControl ¶
func DefaultTxControl() *TransactionControl
DefaultTxControl returns default transaction control for use default tx control on server-side
func EmptyTxControl ¶ added in v3.108.0
func EmptyTxControl() *TransactionControl
EmptyTxControl defines transaction control inference on server-side by query content
func NoTx ¶
func NoTx() *TransactionControl
NoTx defines nil transaction control This is wrong name for transaction control inference on server-side by query content Deprecated: Use EmptyTxControl instead. Will be removed after Oct 2025. Read about versioning policy: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#deprecated
func OnlineReadOnlyTxControl ¶
func OnlineReadOnlyTxControl(opts ...tx.OnlineReadOnlyOption) *TransactionControl
OnlineReadOnlyTxControl returns online read-only transaction control
func SerializableReadWriteTxControl ¶
func SerializableReadWriteTxControl(opts ...tx.ControlOption) *TransactionControl
SerializableReadWriteTxControl returns transaction control with serializable read-write isolation mode
func SnapshotReadOnlyTxControl ¶
func SnapshotReadOnlyTxControl() *TransactionControl
SnapshotReadOnlyTxControl returns snapshot read-only transaction control
func StaleReadOnlyTxControl ¶
func StaleReadOnlyTxControl() *TransactionControl
StaleReadOnlyTxControl returns stale read-only transaction control
func TxControl ¶
func TxControl(opts ...tx.ControlOption) *TransactionControl
TxControl makes transaction control from given options
type TransactionOption ¶ added in v3.74.0
type TransactionOption = tx.SettingsOption
func WithDefaultTxMode ¶
func WithDefaultTxMode() TransactionOption
func WithOnlineReadOnly ¶
func WithOnlineReadOnly(opts ...tx.OnlineReadOnlyOption) TransactionOption
func WithSerializableReadWrite ¶
func WithSerializableReadWrite() TransactionOption
func WithSnapshotReadOnly ¶
func WithSnapshotReadOnly() TransactionOption
func WithStaleReadOnly ¶
func WithStaleReadOnly() TransactionOption
type TransactionSettings ¶
func TxSettings ¶
func TxSettings(opts ...tx.SettingsOption) TransactionSettings
TxSettings returns transaction settings
type TxActor ¶
type TxActor interface {
	tx.Identifier
	Executor
}
    type TxOperation ¶
TxOperation is the interface that holds an operation for retry. if TxOperation returns not nil - operation will retry if TxOperation returns nil - retry loop will break