aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorasmyasnikov <asmyasnikov@yandex-team.ru>2022-02-08 10:37:21 +0300
committerasmyasnikov <asmyasnikov@yandex-team.ru>2022-02-08 10:37:21 +0300
commit6a99be484670d42ac92362906cd2fdf2f670fc88 (patch)
tree25d7ba3bc773d676bdda421aa51090e0e9f245f5
parent8bebf8a653c586920c10da358b410e6ddde0ae18 (diff)
downloadydb-6a99be484670d42ac92362906cd2fdf2f670fc88.tar.gz
KIKIMR-13205 KIKIMR-14176 update ydb-go-sdk to v3.8.11
KIKIMR-13205 KIKIMR-14176 update ydb-go-sdk to v3.8.11 Release v3.8.11: * Changed connection secure to `true` by default * Renamed public package `balancer` to `balancers` (this package contains only constructors of balancers) * Moved interfaces from package `internal/balancer/ibalancer` to `internal/balancer` * Added `NextResultSetErr()` func for select next result set and return error * Added package `table/result/indexed` with interfaces `indexed.Required`, `indexed.Optional`, `indexed.RequiredOrOptional` * Replaced abstract `interface{}` in `Scan` to `indexed.RequiredOrOptional` * Replaced abstract `interface{}` in `ScanWithDefaults` to `indexed.Required` * Replaced `trace.Table.OnPoolRetry` callback to `trace.Table.OnPoolDo` and `trace.Table.OnPoolDoTx` callbacks * Supports server hint `session-close` for gracefully shutdown session ```go for res.NextResultSet(ctx, "col1", "col2") { for res.NextRow() { err = res.Scan(&col1, &col2) } } ``` ```go for res.NextResultSet(ctx) { for res.NextRow() { err = res.ScanNamed( named.Optional("col1", &col1), named.Required("col2", &col2) ) } } ``` ref:2e0a8b71c8c7aeeca9497d0e38abbc7f682b3e6f
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/example/_includes/example-go.md33
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/prefer_local/go.md12
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/prefer_location/go.md12
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/random_choice/go.md10
4 files changed, 39 insertions, 28 deletions
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/example/_includes/example-go.md b/ydb/docs/ru/core/reference/ydb-sdk/example/_includes/example-go.md
index e6d4e0d690..3ad8ac6053 100644
--- a/ydb/docs/ru/core/reference/ydb-sdk/example/_includes/example-go.md
+++ b/ydb/docs/ru/core/reference/ydb-sdk/example/_includes/example-go.md
@@ -18,6 +18,8 @@ import (
"github.com/ydb-platform/ydb-go-sdk/v3"
"github.com/ydb-platform/ydb-go-sdk/v3/table" // для работы с table-сервисом
"github.com/ydb-platform/ydb-go-sdk/v3/table/options" // для работы с table-сервисом
+ "github.com/ydb-platform/ydb-go-sdk/v3/table/result" // для работы с table-сервисом
+ "github.com/ydb-platform/ydb-go-sdk/v3/table/result/named" // для работы с table-сервисом
"github.com/ydb-platform/ydb-go-sdk-auth-environ" // для аутентификации с использованием перменных окружения
"github.com/ydb-platform/ydb-go-yc" // для работы с YDB в Яндекс Облаке
)
@@ -54,7 +56,7 @@ defer func() {
Объект `db` является входной точкой для работы с сервисами `YDB`.
Для работы сервисом таблиц следует использовать клиента table-сервиса `db.Table()`.
Клиент table-сервиса предоставляет `API` для выполнения запросов над таблицами.
-Наиболее востребован метод `db.Table().Do(ctx, op)`, который реализует фоновое создание сессий и повторные попытки выполнить пользовательскую операцию `op`, в которую пользовательскому коду отдается подготовленная сессия.
+Наиболее востребован метод `db.Table().Do(ctx, op)`, который реализует фоновое создание сессий и повторные попытки выполнить пользовательскую операцию `op`, в которую пользовательскому коду отдается подготовленная сессия.
Сессия имеет исчерпывающее `API`, позволяющее выполнять `DDL`, `DML`, `DQL` и `TCL` запросы.
## Создание таблиц с помощью CreateTable API {#create-table-api}
@@ -126,8 +128,8 @@ err := db.Table().Do(
date *time.Time // указатель - для опциональных результатов
)
_, res, err = s.Execute(
- ctx,
- readTx,
+ ctx,
+ readTx,
`
DECLARE $seriesID AS Uint64;
SELECT
@@ -153,11 +155,15 @@ err := db.Table().Do(
_ = res.Close() // закрытие result'а обязательно
}()
log.Printf("> select_simple_transaction:\n")
- // Имена колонок в NextResultSet устанавливают порядок чтения колонок в последующем Scan
- for res.NextResultSet(ctx, "series_id", "title", "release_date") {
+ for res.NextResultSet(ctx) {
for res.NextRow() {
- // в Scan передаем адреса (и типы данных), куда следует присвоить результаты запроса
- err = res.Scan(&id, &title, &date)
+ // в ScanNamed передаем имена колонок из строки сканирования,
+ // адреса (и типы данных), куда следует присвоить результаты запроса
+ err = res.ScanNamed(
+ named.Optional("series_id", &id),
+ named.Optional("title", &title),
+ named.Optional("release_date", &date),
+ )
if err != nil {
return err
}
@@ -215,14 +221,19 @@ err = c.Do(
date time.Time
)
log.Print("\n> scan_query_select:")
- // Имена колонок в NextResultSet устанавливают порядок чтения колонок в последующем ScanWithDefaults
- for res.NextResultSet(ctx, "series_id", "season_id", "title", "first_aired") {
+ for res.NextResultSet(ctx) {
if err = res.Err(); err != nil {
return err
}
for res.NextRow() {
- // ScanWithDefaults позволяет "развернуть" опциональные результаты или использовать дефолтное значение типа go
- err = res.ScanWithDefaults(&seriesID, &seasonID, &title, &date)
+ // named.OptionalOrDefault позволяет "развернуть" опциональные
+ // результаты или использовать дефолтное значение типа go
+ err = res.ScanNamed(
+ named.OptionalOrDefault("series_id", &seriesID),
+ named.OptionalOrDefault("season_id", &seasonID),
+ named.OptionalOrDefault("title", &title),
+ named.OptionalOrDefault("first_aired", &date),
+ )
if err != nil {
return err
}
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/prefer_local/go.md b/ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/prefer_local/go.md
index 1029058100..44b5676a1c 100644
--- a/ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/prefer_local/go.md
+++ b/ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/prefer_local/go.md
@@ -4,9 +4,9 @@ package main
import (
"context"
"os"
-
+
"github.com/ydb-platform/ydb-go-sdk/v3"
- "github.com/ydb-platform/ydb-go-sdk/v3/balancer"
+ "github.com/ydb-platform/ydb-go-sdk/v3/balancers"
)
func main() {
@@ -16,16 +16,16 @@ func main() {
ctx,
...
ydb.WithBalancer(
- balancer.PreferLocalDC(
- balancer.RandomChoice(),
+ balancers.PreferLocalDC(
+ balancers.RandomChoice(),
),
),
)
if err != nil {
panic(err)
}
- defer func() {
- _ = db.Close(ctx)
+ defer func() {
+ _ = db.Close(ctx)
}()
}
```
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/prefer_location/go.md b/ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/prefer_location/go.md
index bde00fbdee..440f9827af 100644
--- a/ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/prefer_location/go.md
+++ b/ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/prefer_location/go.md
@@ -4,9 +4,9 @@ package main
import (
"context"
"os"
-
+
"github.com/ydb-platform/ydb-go-sdk/v3"
- "github.com/ydb-platform/ydb-go-sdk/v3/balancer"
+ "github.com/ydb-platform/ydb-go-sdk/v3/balancers"
)
func main() {
@@ -16,8 +16,8 @@ func main() {
ctx,
...
ydb.WithBalancer(
- balancer.PreferLocations(
- balancer.RandomChoice(),
+ balancers.PreferLocations(
+ balancers.RandomChoice(),
"MAN",
"VLA",
),
@@ -26,8 +26,8 @@ func main() {
if err != nil {
panic(err)
}
- defer func() {
- _ = db.Close(ctx)
+ defer func() {
+ _ = db.Close(ctx)
}()
}
```
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/random_choice/go.md b/ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/random_choice/go.md
index 322f15c88c..b97c7ea77c 100644
--- a/ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/random_choice/go.md
+++ b/ydb/docs/ru/core/reference/ydb-sdk/recipes/balancing/_includes/random_choice/go.md
@@ -4,9 +4,9 @@ package main
import (
"context"
"os"
-
+
"github.com/ydb-platform/ydb-go-sdk/v3"
- "github.com/ydb-platform/ydb-go-sdk/v3/balancer"
+ "github.com/ydb-platform/ydb-go-sdk/v3/balancers"
)
func main() {
@@ -16,14 +16,14 @@ func main() {
ctx,
...
ydb.WithBalancer(
- balancer.RandomChoice(),
+ balancers.RandomChoice(),
),
)
if err != nil {
panic(err)
}
- defer func() {
- _ = db.Close(ctx)
+ defer func() {
+ _ = db.Close(ctx)
}()
}
```