package ydb
import "github.com/ydb-platform/ydb-go-sdk/v3"
Example (DatabaseSQL)¶
Code:play
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.WithDoTxRetryOptions(retry.WithIdempotent(true))) if err != nil { log.Printf("query failed: %v", err) } }
Example (DatabaseSQLBindAutoDeclare)¶
Code:play
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) } }
Example (DatabaseSQLBindAutoDeclareOverConnector)¶
Code:
{ 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) } }
Example (DatabaseSQLBindNumericArgs)¶
Code:play
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) } }
Example (DatabaseSQLBindNumericArgsOverConnector)¶
Code:
{ 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) } }
Example (DatabaseSQLBindPositionalArgs)¶
Code:play
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) } }
Example (DatabaseSQLBindPositionalArgsOverConnector)¶
Code:
{ 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) } }
Example (DatabaseSQLBindTablePathPrefix)¶
Code:play
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) } }
Example (DatabaseSQLBindTablePathPrefixOverConnector)¶
Code:
{ 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) } }
Example (Discovery)¶
Code:
{
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())
}
}
Example (EnableGzipCompressionForAllRequests)¶
Code:
{
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())
}
Example (Scripting)¶
Code:
{ 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) { 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"), retry.WithBackoff(retry.TypeNoBackoff), ) } if !res.NextRow() { return retry.RetryableError( fmt.Errorf("no rows"), 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) } return res.Err() }, retry.WithIdempotent(true)); err != nil { fmt.Printf("Execute failed: %v", err) } }
Example (Table)¶
Code:
{ 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) } }
Example (Topic)¶
Code:
{
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))
}
}
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 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, it func(message string, code Ydb.StatusIds_StatusCode, severity uint32))
- 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.Context
- func WithTraceID(ctx context.Context, traceID string) context.Context
- func WithTxControl(ctx context.Context, txc *table.TransactionControl) context.Context
- type Connection
- 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 MustOpen(ctx context.Context, dsn string, opts ...Option) *Driver
- func New(ctx context.Context, opts ...Option) (_ *Driver, err error)
- func Open(ctx context.Context, dsn string, opts ...Option) (_ *Driver, err error)
- func Unwrap[T *sql.DB | *sql.Conn](v T) (*Driver, error)
- func (c *Driver) Close(ctx context.Context) error
- func (c *Driver) Coordination() coordination.Client
- func (c *Driver) Discovery() discovery.Client
- func (c *Driver) Endpoint() string
- func (c *Driver) Name() string
- func (c *Driver) Ratelimiter() ratelimiter.Client
- func (c *Driver) Scheme() scheme.Client
- func (c *Driver) Scripting() scripting.Client
- func (c *Driver) Secure() bool
- func (c *Driver) Table() table.Client
- func (c *Driver) Topic() topic.Client
- func (c *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 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 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) Option
- 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(trace trace.Driver, opts ...trace.DriverComposeOption) Option
- func WithTraceRatelimiter(t trace.Ratelimiter, opts ...trace.RatelimiterComposeOption) 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) Option
- type QueryBindConnectorOption
- func WithAutoDeclare() QueryBindConnectorOption
- func WithNumericArgs() QueryBindConnectorOption
- func WithPositionalArgs() QueryBindConnectorOption
- func WithTablePathPrefix(tablePathPrefix string) 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 )
Version reports current version of sdk
Functions ¶
func GRPCConn ¶
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 ¶
IsOperationErrorAlreadyExistsError checks whether given err is an operation error with code AlreadyExistsError
func IsOperationErrorNotFoundError ¶
IsOperationErrorNotFoundError checks whether given err is an operation error with code NotFoundError
func IsOperationErrorOverloaded ¶
IsOperationErrorOverloaded checks whether given err is an operation error with code Overloaded
func IsOperationErrorSchemeError ¶
IsOperationErrorSchemeError checks whether given err is an operation error with code SchemeError
func IsOperationErrorUnavailable ¶
IsOperationErrorUnavailable checks whether given err is an operation error with code Unavailable
func IsRatelimiterAcquireError ¶
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 ¶
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 ToRatelimiterAcquireError ¶
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 ¶
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 ¶
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 ¶
func WithRequestType ¶
WithRequestType returns a copy of parent context with custom request type
Deprecated: use meta.WithRequestType instead
func WithTraceID ¶
WithTraceID returns a copy of parent context with traceID
Deprecated: use meta.WithTraceID instead
func WithTxControl ¶
Types ¶
type Connection ¶
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 // 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 ¶
type ConnectorOption = xsql.ConnectorOption
func WithDatabaseSQLTrace ¶
func WithDatabaseSQLTrace( t trace.DatabaseSQL, opts ...trace.DatabaseSQLComposeOption, ) ConnectorOption
func WithDefaultDataQueryOptions ¶
func WithDefaultDataQueryOptions(opts ...options.ExecuteDataQueryOption) ConnectorOption
func WithDefaultQueryMode ¶
func WithDefaultQueryMode(mode QueryMode) ConnectorOption
func WithDefaultScanQueryOptions ¶
func WithDefaultScanQueryOptions(opts ...options.ExecuteScanQueryOption) ConnectorOption
func WithDefaultTxControl ¶
func WithDefaultTxControl(txControl *table.TransactionControl) ConnectorOption
func WithDisableServerBalancer ¶
func WithDisableServerBalancer() ConnectorOption
func WithFakeTx ¶
func WithFakeTx(mode QueryMode) ConnectorOption
type Driver ¶
type Driver struct {
// contains filtered or unexported fields
}
Driver type provide access to YDB service clients
func MustOpen ¶
func New ¶
New connects to database and return driver runtime holder
Deprecated: use Open with required param connectionString instead
func Open ¶
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
Code:
Code:
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())
}
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())
}
func Unwrap ¶
func (*Driver) Close ¶
Close closes Driver and clear resources
func (*Driver) Coordination ¶
func (c *Driver) Coordination() coordination.Client
Coordination returns coordination client
func (*Driver) Discovery ¶
Discovery returns discovery client
func (*Driver) Endpoint ¶
Endpoint returns initial endpoint
func (*Driver) Name ¶
Name returns database name
func (*Driver) Ratelimiter ¶
func (c *Driver) Ratelimiter() ratelimiter.Client
Ratelimiter returns ratelimiter client
func (*Driver) Scheme ¶
Scheme returns scheme client
func (*Driver) Scripting ¶
Scripting returns scripting client
func (*Driver) Secure ¶
Secure returns true if database Driver is secure
func (*Driver) Table ¶
Table returns table client
func (*Driver) Topic ¶
Topic returns topic client
func (*Driver) With ¶
With makes child Driver with the same options and another options
type Error ¶
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 ¶
OperationError returns operation error description. If given err is not an operation error - returns nil.
func TransportError ¶
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 ¶
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 WithAccessTokenCredentials ¶
func WithAnonymousCredentials ¶
func WithAnonymousCredentials() Option
WithAnonymousCredentials force to make requests withou authentication.
func WithBalancer ¶
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 ¶
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 ¶
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 ¶
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 ¶
func WithIgnoreTruncated() Option
WithIgnoreTruncated disables errors on truncated flag
func WithInsecure ¶
func WithInsecure() Option
WithInsecure defines secure option.
Warning: WithInsecure lost current TLS config.
func WithLogger ¶
WithLogger add enables logging for selected tracing events.
See trace package documentation for details.
func WithMinTLSVersion ¶
WithMinTLSVersion set minimum TLS version acceptable for connections
func WithPanicCallback ¶
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 WithRatelimiterOptions ¶
func WithRatelimiterOptions(opts ...ratelimiterConfig.Option) Option
WithRatelimiterOptions returns reatelimiter option
func WithRequestsType ¶
func WithSecure ¶
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 keep-alive interval for idle sessions
func WithSessionPoolKeepAliveMinSize ¶
WithSessionPoolKeepAliveMinSize set minimum sessions should be keeped alive in table.Client
Deprecated: table client do not supports background session keep-aliving now
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 ¶
func WithTLSConfig ¶
WithTLSConfig replaces older TLS config
Warning: all early TLS config changes (such as WithCertificate, WithCertificatesFromFile, WithCertificatesFromPem, WithMinTLSVersion, WithTLSSInsecureSkipVerify) will be lost
func WithTLSSInsecureSkipVerify ¶
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 ¶
func WithTraceCoordination(t trace.Coordination, opts ...trace.CoordinationComposeOption) Option
WithTraceCoordination returns coordination trace option
func WithTraceDatabaseSQL ¶
func WithTraceDatabaseSQL(t trace.DatabaseSQL, opts ...trace.DatabaseSQLComposeOption) Option
WithTraceDatabaseSQL adds configured discovery tracer to Driver
func WithTraceDiscovery ¶
func WithTraceDiscovery(t trace.Discovery, opts ...trace.DiscoveryComposeOption) Option
WithTraceDiscovery adds configured discovery tracer to Driver
func WithTraceDriver ¶
func WithTraceDriver(trace trace.Driver, opts ...trace.DriverComposeOption) Option
WithTraceDriver returns deadline which has associated Driver with it.
func WithTraceRatelimiter ¶
func WithTraceRatelimiter(t trace.Ratelimiter, opts ...trace.RatelimiterComposeOption) Option
WithTraceRatelimiter returns ratelimiter trace option
func WithTraceScheme ¶
func WithTraceScheme(t trace.Scheme, opts ...trace.SchemeComposeOption) Option
WithTraceScheme returns scheme trace option
func WithTraceScripting ¶
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 returns table trace option
func WithTraceTopic ¶
func WithTraceTopic(t trace.Topic, opts ...trace.TopicComposeOption) Option
WithTraceTopic adds configured discovery tracer to Driver
func WithUserAgent ¶
WithUserAgent add provided user agent value to all api requests
type QueryBindConnectorOption ¶
type QueryBindConnectorOption interface { ConnectorOption bind.Bind }
func WithAutoDeclare ¶
func WithAutoDeclare() QueryBindConnectorOption
func WithNumericArgs ¶
func WithNumericArgs() QueryBindConnectorOption
func WithPositionalArgs ¶
func WithPositionalArgs() QueryBindConnectorOption
func WithTablePathPrefix ¶
func WithTablePathPrefix(tablePathPrefix string) QueryBindConnectorOption
type QueryMode ¶
type SQLConnector ¶
func Connector ¶
func Connector(parent *Driver, opts ...ConnectorOption) (SQLConnector, error)
func MustConnector ¶
func MustConnector(parent *Driver, opts ...ConnectorOption) SQLConnector
Source Files ¶
connection.go context.go errors.go meta.go options.go sql.go sql_unwrap_go1.18.go version.go with.go
Directories ¶
Path | Synopsis |
---|---|
balancers | |
config | |
coordination | |
credentials | |
discovery | |
internal | |
log | |
meta | |
ratelimiter | |
retry | |
scheme | |
scripting | |
sugar | |
table | |
table/options | |
table/result | |
table/result/indexed | |
table/result/named | |
table/stats | |
table/types | |
testutil | |
topic | |
topic/topicoptions | |
topic/topicreader | Package topicreader provide Reader to receive messages from YDB topics More examples in examples repository |
topic/topicsugar | |
topic/topictypes | |
topic/topicwriter | |
trace |
- Version
- v3.48.3
- Published
- Jun 20, 2023
- Platform
- darwin/amd64
- Imports
- 56 packages
- Last checked
- now –
Tools for package owners.