Skip to content

Устаревший пример в документации (метод Execute — deprecated) #1078

@Belaruso4ka

Description

@Belaruso4ka

Add a description

В разделе с базовым примером использования PostgreSQL приводится вызов:

auto res = dep.pg().Execute(
storages::postgres::ClusterHostType::kSlave,
"SELECT value FROM key_value_table WHERE key=$1", key
);

Но в актуальной версии userver метод Execute помечен как deprecated, о чём написано в changelog.

Проблема

Документация вводит в заблуждение новых пользователей - показан устаревший интерфейс.
Из-за этого пример:

вызывает предупреждения компилятора,

не соответствует стилю userver,

расходится с официальными рекомендациями.

Предлагаемое исправление

Использовать:

auto res = dep.pg().ExecuteOptional(
storages::postgres::ClusterHostType::kSlave,
"SELECT value FROM key_value_table WHERE key=$1", key
);

if (!res) {
throw std::runtime_error("Key not found");
}

Либо заменить пример на актуальный в документации.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions