package sugar

import "github.com/ydb-platform/ydb-go-sdk/v3/sugar"

Example (UnmarshallResultSet)

Code:

{
	ctx := context.TODO()
	db, err := ydb.Open(ctx, "grpc://localhost:2136/local")
	if err != nil {
		panic(err)
	}
	defer db.Close(ctx) // cleanup resources

	type myStruct struct {
		ID  int32  `sql:"id"`
		Str string `sql:"myStr"`
	}

	rows, err := db.Query().QueryResultSet(ctx, `
		SELECT 42 as id, "myStr42" as myStr
		UNION
		SELECT 43 as id, "myStr43" as myStr
		ORDER BY id
	`)
	if err != nil {
		panic(err)
	}

	many, err := sugar.UnmarshallResultSet[myStruct](rows)
	if err != nil {
		panic(err)
	}

	fmt.Print("many = [")
	for i, s := range many {
		if i > 0 {
			fmt.Print(",")
		}
		fmt.Printf("\n\t%+v", s)
	}
	fmt.Println("\n]")
	// many = [
	//	&{ID:42 Str:myStr42},
	//	&{ID:43 Str:myStr43}
	//]
}
Example (UnmarshallRow)

Code:

{
	ctx := context.TODO()
	db, err := ydb.Open(ctx, "grpc://localhost:2136/local")
	if err != nil {
		panic(err)
	}
	defer db.Close(ctx) // cleanup resources

	type myStruct struct {
		ID  int32  `sql:"id"`
		Str string `sql:"myStr"`
	}

	row, err := db.Query().QueryRow(ctx, `SELECT 42 as id, "my string" as myStr`)
	if err != nil {
		panic(err)
	}

	one, err := sugar.UnmarshallRow[*myStruct](row)
	if err != nil {
		panic(err)
	}

	fmt.Printf("one = %+v\n", one)
	// one = &{ID:42 Str:my string}
}

Index

Examples

Functions

func DSN

func DSN(endpoint, database string, opts ...dsnOption) (s string)

DSN makes connection string (data source name) by endpoint, database and secure

func GenerateDeclareSection

func GenerateDeclareSection[T constraint](parameters T) (string, error)

GenerateDeclareSection generates DECLARE section text in YQL query by params

Deprecated: use testutil.QueryBind(ydb.WithAutoDeclare()) helper. In YDB since version 24.1 declare sections not requires. Will be removed after Oct 2024. Read about versioning policy: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#deprecated

func IsColumnTableExists

func IsColumnTableExists(ctx context.Context, c scheme.Client, absTablePath string) (exists bool, _ error)

func IsDirectoryExists

func IsDirectoryExists(ctx context.Context, c scheme.Client, absTablePath string) (exists bool, _ error)

func IsEntryExists

func IsEntryExists(ctx context.Context, c scheme.Client, absPath string, entryTypes ...scheme.EntryType) (
	exists bool, _ error,
)

func IsTableExists

func IsTableExists(ctx context.Context, c scheme.Client, absTablePath string) (exists bool, _ error)

func LoadCertificatesFromFile

func LoadCertificatesFromFile(caFile string) ([]*x509.Certificate, error)

LoadCertificatesFromFile read and parse caFile and returns certificates

func LoadCertificatesFromPem

func LoadCertificatesFromPem(bytes []byte) (certs []*x509.Certificate)

LoadCertificatesFromPem parse bytes and returns certificates

func MakeRecursive

func MakeRecursive(ctx context.Context, db dbForMakeRecursive, pathToCreate string) error

MakeRecursive creates path inside database pathToCreate is a database root relative path MakeRecursive method equal bash command `mkdir -p ~/path/to/create` where `~` - is a root of database

func RemoveRecursive

func RemoveRecursive(ctx context.Context, db dbFoRemoveRecursive, pathToRemove string) error

RemoveRecursive removes selected directory or table names in the database. pathToRemove is a database root relative path. All database entities in the prefix path will be removed if the names list is empty. An empty prefix means using the root of the database. RemoveRecursive method is equivalent to the bash command `rm -rf ~/path/to/remove` where `~` is the root of the database.

func Result

func Result(r query.Result) *result

Result converts query.Result to iterable result for compatibility with table/result.Result usage

Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental

func StackRecord

func StackRecord(depth int) string

func ToYdbParam

func ToYdbParam(param sql.NamedArg) (*params.Parameter, error)

ToYdbParam converts

Internals: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#internals

func UnmarshalRows

func UnmarshalRows[T any](seq xiter.Seq2[query.Row, error], opts ...scanner.ScanStructOption) xiter.Seq2[T, error]

UnmarshalRows returns typed object iterator from query.Row iterator

Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental

func UnmarshallResultSet

func UnmarshallResultSet[T any](resultSet query.ResultSet) (values []*T, _ error)

UnmarshallResultSet returns slice of typed objects from given query.ResultSet

Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental

func UnmarshallRow

func UnmarshallRow[T any](row query.Row) (*T, error)

UnmarshallRow returns typed object from query.Row

Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental

func WithSecure

func WithSecure(secure bool) dsnOption

func WithUserPassword

func WithUserPassword(user string, password string) dsnOption

Source Files

certificates.go check_exists.go dsn.go params.go path.go query.go result.go stack.go

Version
v3.108.0 (latest)
Published
Apr 21, 2025
Platform
js/wasm
Imports
27 packages
Last checked
17 minutes ago

Tools for package owners.