Documentation ¶
Overview ¶
Example (DatabaseSQL) ¶
package main import ( "context" "database/sql" "log" "time" "github.com/ydb-platform/ydb-go-sdk/v3/retry" ) func main() { db, err := sql.Open("ydb", "grpc://localhost:2136/local") if err != nil { log.Fatal(err) } defer func() { _ = db.Close() }() // cleanup resources db.SetMaxOpenConns(100) db.SetMaxIdleConns(100) db.SetConnMaxIdleTime(time.Second) // workaround for background keep-aliving of YDB sessions var ( id int32 // required value myStr string // optional value ) // retry transaction err = retry.DoTx(context.TODO(), db, func(ctx context.Context, tx *sql.Tx) error { row := tx.QueryRowContext(ctx, `SELECT 42 as id, "my string" as myStr`) if err = row.Scan(&id, &myStr); err != nil { return err } log.Printf("id=%v, myStr='%s'\n", id, myStr) return nil }, retry.WithIdempotent(true)) if err != nil { log.Printf("query failed: %v", err) } }
Output:
Example (DatabaseSQLBindAutoDeclare) ¶
package main import ( "context" "database/sql" "log" "github.com/ydb-platform/ydb-go-sdk/v3/table" "github.com/ydb-platform/ydb-go-sdk/v3/table/types" ) func main() { db, err := sql.Open("ydb", "grpc://localhost:2136/local?go_query_bind=declare", ) if err != nil { log.Fatal(err) } defer func() { _ = db.Close() }() // cleanup resources var ( id int32 // required value title string // optional value ) row := db.QueryRowContext(context.TODO(), "SELECT $id, $title", table.ValueParam("$id", types.Uint64Value(42)), table.ValueParam("$title", types.TextValue("title")), ) if err = row.Scan(&id, &title); err != nil { log.Printf("query failed: %v", err) } else { log.Printf("id=%v, title='%s'\n", id, title) } }
Output:
Example (DatabaseSQLBindAutoDeclareOverConnector) ¶
var ( ctx = context.TODO() nativeDriver = ydb.MustOpen(ctx, "grpc://localhost:2136/local") db = sql.OpenDB(ydb.MustConnector(nativeDriver, ydb.WithAutoDeclare(), )) ) row := db.QueryRowContext(context.TODO(), "SELECT $id, $title", table.ValueParam("$id", types.Uint64Value(42)), table.ValueParam("$title", types.TextValue("title")), ) var ( id int32 // required value title string // optional value ) if err := row.Scan(&id, &title); err != nil { log.Printf("query failed: %v", err) } else { log.Printf("id=%v, title='%s'\n", id, title) }
Output:
Example (DatabaseSQLBindNumericArgs) ¶
package main import ( "context" "database/sql" "log" ) func main() { db, err := sql.Open("ydb", "grpc://localhost:2136/local?go_query_bind=declare,numeric", ) if err != nil { log.Fatal(err) } defer func() { _ = db.Close() }() // cleanup resources var ( id int32 // required value myStr string // optional value ) // numeric args row := db.QueryRowContext(context.TODO(), "SELECT $2, $1", 42, "my string") if err = row.Scan(&myStr, &id); err != nil { log.Printf("query failed: %v", err) } else { log.Printf("id=%v, myStr='%s'\n", id, myStr) } }
Output:
Example (DatabaseSQLBindNumericArgsOverConnector) ¶
var ( ctx = context.TODO() nativeDriver = ydb.MustOpen(ctx, "grpc://localhost:2136/local") db = sql.OpenDB( ydb.MustConnector(nativeDriver, ydb.WithAutoDeclare(), ydb.WithNumericArgs(), ), ) ) defer nativeDriver.Close(ctx) // cleanup resources defer db.Close() // numeric args row := db.QueryRowContext(context.TODO(), "SELECT $2, $1", 42, "my string", ) var ( id int32 // required value myStr string // optional value ) if err := row.Scan(&myStr, &id); err != nil { log.Printf("query failed: %v", err) } else { log.Printf("id=%v, myStr='%s'\n", id, myStr) }
Output:
Example (DatabaseSQLBindPositionalArgs) ¶
package main import ( "context" "database/sql" "log" ) func main() { db, err := sql.Open("ydb", "grpc://localhost:2136/local?go_query_bind=declare,positional", ) if err != nil { log.Fatal(err) } defer func() { _ = db.Close() }() // cleanup resources var ( id int32 // required value myStr string // optional value ) // positional args row := db.QueryRowContext(context.TODO(), "SELECT ?, ?", 42, "my string") if err = row.Scan(&id, &myStr); err != nil { log.Printf("query failed: %v", err) } else { log.Printf("id=%v, myStr='%s'\n", id, myStr) } }
Output:
Example (DatabaseSQLBindPositionalArgsOverConnector) ¶
var ( ctx = context.TODO() nativeDriver = ydb.MustOpen(ctx, "grpc://localhost:2136/local") db = sql.OpenDB( ydb.MustConnector(nativeDriver, ydb.WithAutoDeclare(), ydb.WithNumericArgs(), ), ) ) defer nativeDriver.Close(ctx) // cleanup resources defer db.Close() // positional args row := db.QueryRowContext(context.TODO(), "SELECT ?, ?", 42, "my string") var ( id int32 // required value myStr string // optional value ) if err := row.Scan(&id, &myStr); err != nil { log.Printf("query failed: %v", err) } else { log.Printf("id=%v, myStr='%s'\n", id, myStr) }
Output:
Example (DatabaseSQLBindTablePathPrefix) ¶
package main import ( "context" "database/sql" "log" ) func main() { db, err := sql.Open("ydb", "grpc://localhost:2136/local?go_query_bind=table_path_prefix(/local/path/to/tables)", ) if err != nil { log.Fatal(err) } defer func() { _ = db.Close() }() // cleanup resources var ( id int32 // required value title string // optional value ) // full table path is "/local/path/to/tables/series" row := db.QueryRowContext(context.TODO(), "SELECT id, title FROM series") if err = row.Scan(&id, &title); err != nil { log.Printf("query failed: %v", err) } else { log.Printf("id=%v, title='%s'\n", id, title) } }
Output:
Example (DatabaseSQLBindTablePathPrefixOverConnector) ¶
var ( ctx = context.TODO() nativeDriver = ydb.MustOpen(ctx, "grpc://localhost:2136/local") db = sql.OpenDB(ydb.MustConnector(nativeDriver, ydb.WithTablePathPrefix("/local/path/to/my/folder"), )) ) // full table path is "/local/path/to/tables/series" row := db.QueryRowContext(context.TODO(), "SELECT id, title FROM series") var ( id int32 // required value title string // optional value ) if err := row.Scan(&id, &title); err != nil { log.Printf("query failed: %v", err) } else { log.Printf("id=%v, title='%s'\n", id, title) }
Output:
Example (Discovery) ¶
ctx := context.TODO() db, err := ydb.Open(ctx, "grpc://localhost:2136/local") if err != nil { fmt.Printf("failed to connect: %v", err) return } defer db.Close(ctx) // cleanup resources endpoints, err := db.Discovery().Discover(ctx) if err != nil { fmt.Printf("discover failed: %v", err) return } fmt.Printf("%s endpoints:\n", db.Name()) for i, e := range endpoints { fmt.Printf("%d) %s\n", i, e.String()) }
Output:
Example (EnableGzipCompressionForAllRequests) ¶
ctx := context.TODO() db, err := ydb.Open( ctx, "grpc://localhost:2135/local", ydb.WithAnonymousCredentials(), ydb.With(config.WithGrpcOptions( grpc.WithDefaultCallOptions( grpc.UseCompressor(gzip.Name), ), )), ) if err != nil { fmt.Printf("Driver failed: %v", err) } defer db.Close(ctx) // cleanup resources fmt.Printf("connected to %s, database '%s'", db.Endpoint(), db.Name())
Output:
Example (Scripting) ¶
ctx := context.TODO() db, err := ydb.Open(ctx, "grpc://localhost:2136/local") if err != nil { fmt.Printf("failed to connect: %v", err) return } defer db.Close(ctx) // cleanup resources if err = retry.Retry(ctx, func(ctx context.Context) (err error) { //nolint:nonamedreturns res, err := db.Scripting().Execute( ctx, "SELECT 1+1", table.NewQueryParameters(), ) if err != nil { return err } defer res.Close() // cleanup resources if !res.NextResultSet(ctx) { return retry.RetryableError( fmt.Errorf("no result sets"), //nolint:goerr113 retry.WithBackoff(retry.TypeNoBackoff), ) } if !res.NextRow() { return retry.RetryableError( fmt.Errorf("no rows"), //nolint:goerr113 retry.WithBackoff(retry.TypeSlowBackoff), ) } var sum int32 if err = res.Scan(&sum); err != nil { return fmt.Errorf("scan failed: %w", err) } if sum != 2 { return fmt.Errorf("unexpected sum: %v", sum) //nolint:goerr113 } return res.Err() }, retry.WithIdempotent(true)); err != nil { fmt.Printf("Execute failed: %v", err) }
Output:
Example (Table) ¶
ctx := context.TODO() db, err := ydb.Open(ctx, "grpc://localhost:2136/local") if err != nil { log.Fatal(err) } defer db.Close(ctx) // cleanup resources var ( query = `SELECT 42 as id, "my string" as myStr` id int32 // required value myStr string // optional value ) err = db.Table().Do( // Do retry operation on errors with best effort ctx, // context manage exiting from Do func(ctx context.Context, s table.Session) (err error) { // retry operation _, res, err := s.Execute(ctx, table.DefaultTxControl(), query, nil) if err != nil { return err // for auto-retry with driver } defer res.Close() // cleanup resources if err = res.NextResultSetErr(ctx); err != nil { // check single result set and switch to it return err // for auto-retry with driver } for res.NextRow() { // iterate over rows err = res.ScanNamed( named.Required("id", &id), named.OptionalWithDefault("myStr", &myStr), ) if err != nil { return err // generally scan error not retryable, return it for driver check error } log.Printf("id=%v, myStr='%s'\n", id, myStr) } return res.Err() // return finally result error for auto-retry with driver }, table.WithIdempotent(), ) if err != nil { log.Printf("unexpected error: %v", err) }
Output:
Example (Topic) ¶
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 reader, err := db.Topic().StartReader("consumer", topicoptions.ReadTopic("/topic/path")) if err != nil { fmt.Printf("failed start reader: %v", err) return } for { mess, err := reader.ReadMessage(ctx) if err != nil { fmt.Printf("failed start reader: %v", err) return } content, err := io.ReadAll(mess) if err != nil { fmt.Printf("failed start reader: %v", err) return } fmt.Println(string(content)) }
Output:
Index ¶
- Constants
- func GRPCConn(cc *Driver) grpc.ClientConnInterface
- func IsOperationError(err error, codes ...Ydb.StatusIds_StatusCode) bool
- func IsOperationErrorAlreadyExistsError(err error) bool
- func IsOperationErrorNotFoundError(err error) bool
- func IsOperationErrorOverloaded(err error) bool
- func IsOperationErrorSchemeError(err error) bool
- func IsOperationErrorTransactionLocksInvalidated(err error) (isTLI bool)
- func IsOperationErrorUnavailable(err error) bool
- func IsRatelimiterAcquireError(err error) bool
- func IsTimeoutError(err error) bool
- func IsTransportError(err error, codes ...grpcCodes.Code) bool
- func IsYdbError(err error) bool
- func IterateByIssues(err error, ...)
- func ParamsBuilder() params.Builder
- func ToRatelimiterAcquireError(err error) ratelimiter.AcquireError
- func WithOperationCancelAfter(ctx context.Context, operationCancelAfter time.Duration) context.Context
- func WithOperationTimeout(ctx context.Context, operationTimeout time.Duration) context.Context
- func WithQueryMode(ctx context.Context, mode QueryMode) context.Context
- func WithRequestType(ctx context.Context, requestType string) context.Contextdeprecated
- func WithTraceID(ctx context.Context, traceID string) context.Contextdeprecated
- func WithTxControl(ctx context.Context, txc *table.TransactionControl) context.Context
- type Connectiondeprecated
- type ConnectorOption
- func WithDatabaseSQLTrace(t trace.DatabaseSQL, opts ...trace.DatabaseSQLComposeOption) ConnectorOption
- func WithDefaultDataQueryOptions(opts ...options.ExecuteDataQueryOption) ConnectorOption
- func WithDefaultQueryMode(mode QueryMode) ConnectorOption
- func WithDefaultScanQueryOptions(opts ...options.ExecuteScanQueryOption) ConnectorOption
- func WithDefaultTxControl(txControl *table.TransactionControl) ConnectorOption
- func WithDisableServerBalancer() ConnectorOption
- func WithFakeTx(mode QueryMode) ConnectorOption
- type Driver
- func (d *Driver) Close(ctx context.Context) (finalErr error)
- func (d *Driver) Coordination() coordination.Client
- func (d *Driver) Discovery() discovery.Client
- func (d *Driver) Endpoint() string
- func (d *Driver) Name() string
- func (d *Driver) Query() query.Client
- func (d *Driver) Ratelimiter() ratelimiter.Client
- func (d *Driver) Scheme() scheme.Client
- func (d *Driver) Scripting() scripting.Client
- func (d *Driver) Secure() bool
- func (d *Driver) String() string
- func (d *Driver) Table() table.Client
- func (d *Driver) Topic() topic.Client
- func (d *Driver) With(ctx context.Context, opts ...Option) (*Driver, error)
- type Error
- type Option
- func MergeOptions(opts ...Option) Option
- func With(options ...config.Option) Option
- func WithAccessTokenCredentials(accessToken string) Option
- func WithAnonymousCredentials() Option
- func WithApplicationName(applicationName string) Option
- func WithBalancer(balancer *balancerConfig.Config) Option
- func WithCertificate(cert *x509.Certificate) Option
- func WithCertificatesFromFile(caFile string, opts ...certificates.FromFileOption) Option
- func WithCertificatesFromPem(bytes []byte, opts ...certificates.FromPemOption) Option
- func WithConnectionString(connectionString string) Option
- func WithConnectionTTL(ttl time.Duration) Option
- func WithCreateCredentialsFunc(createCredentials func(ctx context.Context) (credentials.Credentials, error)) Option
- func WithCredentials(c credentials.Credentials) Option
- func WithDatabase(database string) Option
- func WithDialTimeout(timeout time.Duration) Option
- func WithDiscoveryInterval(discoveryInterval time.Duration) Option
- func WithEndpoint(endpoint string) Option
- func WithIgnoreTruncated() Option
- func WithInsecure() Option
- func WithLogger(l log.Logger, details trace.Detailer, opts ...log.Option) Option
- func WithMinTLSVersion(minVersion uint16) Option
- func WithPanicCallback(panicCallback func(e interface{})) Option
- func WithQueryConfigOption(option queryConfig.Option) Option
- func WithRatelimiterOptions(opts ...ratelimiterConfig.Option) Option
- func WithRequestsType(requestsType string) Option
- func WithSecure(secure bool) Option
- func WithSessionPoolCreateSessionTimeout(createSessionTimeout time.Duration) Option
- func WithSessionPoolDeleteTimeout(deleteTimeout time.Duration) Option
- func WithSessionPoolIdleThreshold(idleThreshold time.Duration) Option
- func WithSessionPoolKeepAliveMinSize(keepAliveMinSize int) Optiondeprecated
- func WithSessionPoolKeepAliveTimeout(keepAliveTimeout time.Duration) Option
- func WithSessionPoolSizeLimit(sizeLimit int) Option
- func WithStaticCredentials(user, password string) Option
- func WithTLSConfig(tlsConfig *tls.Config) Option
- func WithTLSSInsecureSkipVerify() Option
- func WithTableConfigOption(option tableConfig.Option) Option
- func WithTraceCoordination(t trace.Coordination, opts ...trace.CoordinationComposeOption) Option
- func WithTraceDatabaseSQL(t trace.DatabaseSQL, opts ...trace.DatabaseSQLComposeOption) Option
- func WithTraceDiscovery(t trace.Discovery, opts ...trace.DiscoveryComposeOption) Option
- func WithTraceDriver(t trace.Driver, opts ...trace.DriverComposeOption) Option
- func WithTraceQuery(t trace.Query, opts ...trace.QueryComposeOption) Option
- func WithTraceRatelimiter(t trace.Ratelimiter, opts ...trace.RatelimiterComposeOption) Option
- func WithTraceRetry(t trace.Retry, opts ...trace.RetryComposeOption) Option
- func WithTraceScheme(t trace.Scheme, opts ...trace.SchemeComposeOption) Option
- func WithTraceScripting(t trace.Scripting, opts ...trace.ScriptingComposeOption) Option
- func WithTraceTable(t trace.Table, opts ...trace.TableComposeOption) Option
- func WithTraceTopic(t trace.Topic, opts ...trace.TopicComposeOption) Option
- func WithUserAgent(userAgent string) Optiondeprecated
- type QueryBindConnectorOption
- type QueryMode
- type SQLConnector
Examples ¶
- Package (DatabaseSQL)
- Package (DatabaseSQLBindAutoDeclare)
- Package (DatabaseSQLBindAutoDeclareOverConnector)
- Package (DatabaseSQLBindNumericArgs)
- Package (DatabaseSQLBindNumericArgsOverConnector)
- Package (DatabaseSQLBindPositionalArgs)
- Package (DatabaseSQLBindPositionalArgsOverConnector)
- Package (DatabaseSQLBindTablePathPrefix)
- Package (DatabaseSQLBindTablePathPrefixOverConnector)
- Package (Discovery)
- Package (EnableGzipCompressionForAllRequests)
- Package (Scripting)
- Package (Table)
- Package (Topic)
- Open
- Open (Advanced)
Constants ¶
const ( DataQueryMode = xsql.DataQueryMode ExplainQueryMode = xsql.ExplainQueryMode ScanQueryMode = xsql.ScanQueryMode SchemeQueryMode = xsql.SchemeQueryMode ScriptingQueryMode = xsql.ScriptingQueryMode )
const Version = version.Version
Version reports current version of sdk
Variables ¶
This section is empty.
Functions ¶
func GRPCConn ¶ added in v3.25.0
func GRPCConn(cc *Driver) grpc.ClientConnInterface
GRPCConn casts *ydb.Driver to grpc.ClientConnInterface for executing unary and streaming RPC over internal driver balancer.
Warning: for connect to driver-unsupported YDB services
func IsOperationError ¶
func IsOperationError(err error, codes ...Ydb.StatusIds_StatusCode) bool
IsOperationError reports whether any error is an operation error with one of passed codes. If codes not defined IsOperationError returns true on error is an operation error.
func IsOperationErrorAlreadyExistsError ¶ added in v3.5.0
IsOperationErrorAlreadyExistsError checks whether given err is an operation error with code AlreadyExistsError
func IsOperationErrorNotFoundError ¶ added in v3.5.0
IsOperationErrorNotFoundError checks whether given err is an operation error with code NotFoundError
func IsOperationErrorOverloaded ¶ added in v3.5.0
IsOperationErrorOverloaded checks whether given err is an operation error with code Overloaded
func IsOperationErrorSchemeError ¶ added in v3.5.0
IsOperationErrorSchemeError checks whether given err is an operation error with code SchemeError
func IsOperationErrorTransactionLocksInvalidated ¶ added in v3.48.4
IsOperationErrorTransactionLocksInvalidated checks does err a TLI issue
func IsOperationErrorUnavailable ¶ added in v3.5.0
IsOperationErrorUnavailable checks whether given err is an operation error with code Unavailable
func IsRatelimiterAcquireError ¶ added in v3.11.0
IsRatelimiterAcquireError checks whether given err is an ratelimiter acquire error
func IsTimeoutError ¶
IsTimeoutError checks whether given err is a some timeout error (context, transport or operation).
func IsTransportError ¶
IsTransportError checks whether given err is a transport (grpc) error.
func IsYdbError ¶ added in v3.4.2
IsYdbError reports when given error is and ydb error (transport, operation or internal driver error)
func IterateByIssues ¶
func IterateByIssues(err error, it func(message string, code Ydb.StatusIds_StatusCode, severity uint32))
IterateByIssues helps to iterate over internal issues of operation error.
func ParamsBuilder ¶ added in v3.57.0
ParamsBuilder used for create query arguments instead of tons options.
Experimental ¶
Notice: This API is EXPERIMENTAL and may be changed or removed in a later release.
func ToRatelimiterAcquireError ¶ added in v3.11.0
func ToRatelimiterAcquireError(err error) ratelimiter.AcquireError
ToRatelimiterAcquireError casts given err to ratelimiter.AcquireError. If given err is not ratelimiter acquire error - returns nil
func WithOperationCancelAfter ¶ added in v3.18.0
func WithOperationCancelAfter(ctx context.Context, operationCancelAfter time.Duration) context.Context
WithOperationCancelAfter returns a copy of parent context in which YDB operation cancel after parameter is set to d. If parent context cancellation timeout is smaller than d, parent context is returned.
func WithOperationTimeout ¶ added in v3.18.0
WithOperationTimeout returns a copy of parent context in which YDB operation timeout parameter is set to d. If parent context timeout is smaller than d, parent context is returned.
func WithQueryMode ¶ added in v3.33.0
func WithTxControl ¶ added in v3.36.0
Types ¶
type Connection
deprecated
type Connection interface { // Endpoint returns initial endpoint Endpoint() string // Name returns database name Name() string // Secure returns true if database connection is secure Secure() bool // Close closes connection and clear resources Close(ctx context.Context) error // Table returns table client Table() table.Client // Query returns query client // // # Experimental // // Notice: This API is EXPERIMENTAL and may be changed or removed in a later release. Query() query.Client // Scheme returns scheme client Scheme() scheme.Client // Coordination returns coordination client Coordination() coordination.Client // Ratelimiter returns ratelimiter client Ratelimiter() ratelimiter.Client // Discovery returns discovery client Discovery() discovery.Client // Scripting returns scripting client Scripting() scripting.Client // Topic returns topic client Topic() topic.Client }
Connection interface provide access to YDB service clients Interface and list of clients may be changed in the future
Deprecated: use directly *Driver type from ydb.Open instead
type ConnectorOption ¶ added in v3.33.0
type ConnectorOption = xsql.ConnectorOption
func WithDatabaseSQLTrace ¶ added in v3.34.0
func WithDatabaseSQLTrace( t trace.DatabaseSQL, opts ...trace.DatabaseSQLComposeOption, ) ConnectorOption
func WithDefaultDataQueryOptions ¶ added in v3.33.0
func WithDefaultDataQueryOptions(opts ...options.ExecuteDataQueryOption) ConnectorOption
func WithDefaultQueryMode ¶ added in v3.33.0
func WithDefaultQueryMode(mode QueryMode) ConnectorOption
func WithDefaultScanQueryOptions ¶ added in v3.33.0
func WithDefaultScanQueryOptions(opts ...options.ExecuteScanQueryOption) ConnectorOption
func WithDefaultTxControl ¶ added in v3.33.0
func WithDefaultTxControl(txControl *table.TransactionControl) ConnectorOption
func WithDisableServerBalancer ¶ added in v3.42.4
func WithDisableServerBalancer() ConnectorOption
func WithFakeTx ¶ added in v3.44.0
func WithFakeTx(mode QueryMode) ConnectorOption
type Driver ¶ added in v3.43.0
type Driver struct {
// contains filtered or unexported fields
}
Driver type provide access to YDB service clients
func Open ¶ added in v3.21.0
Open connects to database by DSN and return driver runtime holder
DSN accept Driver string like
"grpc[s]://{endpoint}/{database}[?param=value]"
See sugar.DSN helper for make dsn from endpoint and database
Example ¶
ctx := context.TODO() db, err := ydb.Open(ctx, "grpc://localhost:2135/local") if err != nil { fmt.Printf("Driver failed: %v", err) } defer db.Close(ctx) // cleanup resources fmt.Printf("connected to %s, database '%s'", db.Endpoint(), db.Name())
Output:
Example (Advanced) ¶
ctx := context.TODO() db, err := ydb.Open( ctx, "grpc://localhost:2135/local", ydb.WithAnonymousCredentials(), ydb.WithBalancer( balancers.PreferLocationsWithFallback( balancers.RandomChoice(), "a", "b", ), ), ydb.WithSessionPoolSizeLimit(100), ) if err != nil { fmt.Printf("Driver failed: %v", err) } defer db.Close(ctx) // cleanup resources fmt.Printf("connected to %s, database '%s'", db.Endpoint(), db.Name())
Output:
func (*Driver) Coordination ¶ added in v3.43.0
func (d *Driver) Coordination() coordination.Client
Coordination returns coordination client
func (*Driver) Query ¶ added in v3.57.0
Query returns query client
Experimental ¶
Notice: This API is EXPERIMENTAL and may be changed or removed in a later release.
func (*Driver) Ratelimiter ¶ added in v3.43.0
func (d *Driver) Ratelimiter() ratelimiter.Client
Ratelimiter returns ratelimiter client
type Error ¶ added in v3.4.2
type Error interface { error // Code reports the error code Code() int32 // Name reports the short name of error Name() string }
Error is an interface of error which reports about error code and error name.
func OperationError ¶ added in v3.16.9
OperationError returns operation error description. If given err is not an operation error - returns nil.
func TransportError ¶ added in v3.16.9
TransportError checks when given error is a transport error and returns description of transport error.
type Option ¶
Option contains configuration values for Driver
func MergeOptions ¶ added in v3.5.1
MergeOptions concatentaes provided options to one cumulative value.
func With ¶
With collects additional configuration options.
This option does not replace collected option, instead it will append provided options.
func WithAnonymousCredentials ¶
func WithAnonymousCredentials() Option
WithAnonymousCredentials force to make requests withou authentication.
func WithApplicationName ¶ added in v3.57.4
WithApplicationName add provided application name to all api requests
func WithBalancer ¶ added in v3.6.0
func WithBalancer(balancer *balancerConfig.Config) Option
func WithCertificate ¶
func WithCertificate(cert *x509.Certificate) Option
WithCertificate appends certificate to TLS config root certificates
func WithCertificatesFromFile ¶
func WithCertificatesFromFile(caFile string, opts ...certificates.FromFileOption) Option
WithCertificatesFromFile appends certificates by filepath to TLS config root certificates
func WithCertificatesFromPem ¶
func WithCertificatesFromPem(bytes []byte, opts ...certificates.FromPemOption) Option
WithCertificatesFromPem appends certificates from pem-encoded data to TLS config root certificates
func WithConnectionString ¶
WithConnectionString accept Driver string like
grpc[s]://{endpoint}/{database}[?param=value]
Warning: WithConnectionString will be removed at next major release
(Driver string will be required string param of ydb.Open)
func WithConnectionTTL ¶ added in v3.7.0
WithConnectionTTL defines duration for parking idle connections
func WithCreateCredentialsFunc ¶
func WithCreateCredentialsFunc(createCredentials func(ctx context.Context) (credentials.Credentials, error)) Option
WithCreateCredentialsFunc add callback funcion to provide requests credentials
func WithCredentials ¶
func WithCredentials(c credentials.Credentials) Option
WithCredentials in conjunction with Driver.With function prohibit reuse of conn pool. Thus, Driver.With will effectively create totally separate Driver.
func WithDatabase ¶ added in v3.2.1
WithDatabase defines database option
Warning: use ydb.Open with required Driver string parameter instead
For making Driver string from endpoint+database+secure - use sugar.DSN()
func WithDialTimeout ¶
WithDialTimeout sets timeout for establishing new Driver to cluster
Default dial timeout is config.DefaultDialTimeout
func WithDiscoveryInterval ¶
WithDiscoveryInterval sets interval between cluster discovery calls.
func WithEndpoint ¶ added in v3.2.1
WithEndpoint defines endpoint option
Warning: use ydb.Open with required Driver string parameter instead
For making Driver string from endpoint+database+secure - use sugar.DSN()
func WithIgnoreTruncated ¶ added in v3.36.0
func WithIgnoreTruncated() Option
WithIgnoreTruncated disables errors on truncated flag
func WithInsecure ¶ added in v3.8.6
func WithInsecure() Option
WithInsecure defines secure option.
Warning: WithInsecure lost current TLS config.
func WithLogger ¶ added in v3.3.0
WithLogger add enables logging for selected tracing events.
See trace package documentation for details.
func WithMinTLSVersion ¶ added in v3.9.1
WithMinTLSVersion set minimum TLS version acceptable for connections
func WithPanicCallback ¶ added in v3.17.0
func WithPanicCallback(panicCallback func(e interface{})) Option
WithPanicCallback specified behavior on panic Warning: WithPanicCallback must be defined on start of all options (before `WithTrace{Driver,Table,Scheme,Scripting,Coordination,Ratelimiter}` and other options) If not defined - panic would not intercept with driver
func WithQueryConfigOption ¶ added in v3.57.0
func WithQueryConfigOption(option queryConfig.Option) Option
WithQueryConfigOption collects additional configuration options for query.Client. This option does not replace collected option, instead it will appen provided options.
func WithRatelimiterOptions ¶ added in v3.11.0
func WithRatelimiterOptions(opts ...ratelimiterConfig.Option) Option
WithRatelimiterOptions returns reatelimiter option
func WithRequestsType ¶ added in v3.13.0
func WithSecure ¶ added in v3.7.0
WithSecure defines secure option
Warning: use ydb.Open with required Driver string parameter instead
For making Driver string from endpoint+database+secure - use sugar.DSN()
func WithSessionPoolCreateSessionTimeout ¶
WithSessionPoolCreateSessionTimeout set timeout for new session creation process in table.Client
func WithSessionPoolDeleteTimeout ¶
WithSessionPoolDeleteTimeout set timeout to gracefully close deleting session in table.Client
func WithSessionPoolIdleThreshold ¶
WithSessionPoolIdleThreshold defines interval for idle sessions
func WithSessionPoolKeepAliveMinSize
deprecated
func WithSessionPoolKeepAliveTimeout ¶
WithSessionPoolKeepAliveTimeout set timeout of keep alive requests for session in table.Client
func WithSessionPoolSizeLimit ¶
WithSessionPoolSizeLimit set max size of internal sessions pool in table.Client
func WithStaticCredentials ¶ added in v3.34.0
func WithTLSConfig ¶ added in v3.23.0
WithTLSConfig replaces older TLS config
Warning: all early TLS config changes (such as WithCertificate, WithCertificatesFromFile, WithCertificatesFromPem, WithMinTLSVersion, WithTLSSInsecureSkipVerify) will be lost
func WithTLSSInsecureSkipVerify ¶ added in v3.11.0
func WithTLSSInsecureSkipVerify() Option
WithTLSSInsecureSkipVerify applies InsecureSkipVerify flag to TLS config
func WithTableConfigOption ¶
func WithTableConfigOption(option tableConfig.Option) Option
WithTableConfigOption collects additional configuration options for table.Client. This option does not replace collected option, instead it will appen provided options.
func WithTraceCoordination ¶ added in v3.10.0
func WithTraceCoordination(t trace.Coordination, opts ...trace.CoordinationComposeOption) Option
WithTraceCoordination returns coordination trace option
func WithTraceDatabaseSQL ¶ added in v3.34.0
func WithTraceDatabaseSQL(t trace.DatabaseSQL, opts ...trace.DatabaseSQLComposeOption) Option
WithTraceDatabaseSQL adds configured discovery tracer to Driver
func WithTraceDiscovery ¶ added in v3.10.0
func WithTraceDiscovery(t trace.Discovery, opts ...trace.DiscoveryComposeOption) Option
WithTraceDiscovery adds configured discovery tracer to Driver
func WithTraceDriver ¶
func WithTraceDriver(t trace.Driver, opts ...trace.DriverComposeOption) Option
WithTraceDriver appends trace.Driver into driver traces
func WithTraceQuery ¶ added in v3.57.1
func WithTraceQuery(t trace.Query, opts ...trace.QueryComposeOption) Option
WithTraceQuery appends trace.Query into query traces
func WithTraceRatelimiter ¶ added in v3.10.0
func WithTraceRatelimiter(t trace.Ratelimiter, opts ...trace.RatelimiterComposeOption) Option
WithTraceRatelimiter returns ratelimiter trace option
func WithTraceRetry ¶ added in v3.54.0
func WithTraceRetry(t trace.Retry, opts ...trace.RetryComposeOption) Option
WithTraceRetry appends trace.Retry into retry traces
func WithTraceScheme ¶ added in v3.10.0
func WithTraceScheme(t trace.Scheme, opts ...trace.SchemeComposeOption) Option
WithTraceScheme returns scheme trace option
func WithTraceScripting ¶ added in v3.10.0
func WithTraceScripting(t trace.Scripting, opts ...trace.ScriptingComposeOption) Option
WithTraceScripting scripting trace option
func WithTraceTable ¶
func WithTraceTable(t trace.Table, opts ...trace.TableComposeOption) Option
WithTraceTable appends trace.Table into table traces
func WithTraceTopic ¶ added in v3.32.0
func WithTraceTopic(t trace.Topic, opts ...trace.TopicComposeOption) Option
WithTraceTopic adds configured discovery tracer to Driver
func WithUserAgent
deprecated
added in
v3.7.0
type QueryBindConnectorOption ¶ added in v3.44.0
type QueryBindConnectorOption interface { ConnectorOption bind.Bind }
func WithAutoDeclare ¶ added in v3.44.0
func WithAutoDeclare() QueryBindConnectorOption
func WithNumericArgs ¶ added in v3.44.0
func WithNumericArgs() QueryBindConnectorOption
func WithPositionalArgs ¶ added in v3.44.0
func WithPositionalArgs() QueryBindConnectorOption
func WithTablePathPrefix ¶ added in v3.44.0
func WithTablePathPrefix(tablePathPrefix string) QueryBindConnectorOption
type SQLConnector ¶ added in v3.45.0
func Connector ¶ added in v3.33.0
func Connector(parent *Driver, opts ...ConnectorOption) (SQLConnector, error)
func MustConnector ¶ added in v3.44.0
func MustConnector(parent *Driver, opts ...ConnectorOption) SQLConnector
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
internal
|
|
topicreader
Package topicreader provide Reader to receive messages from YDB topics More examples in examples repository
|
Package topicreader provide Reader to receive messages from YDB topics More examples in examples repository |