Size: a a a

pgsql – PostgreSQL

2021 March 25

AL

Alexey Lesovsky in pgsql – PostgreSQL
Архивирование WAL это не про инкрементальный бэкап.
источник

SM

Setplus Mac in pgsql – PostgreSQL
Добрый день, коллеги. Подскажите, пожалуйста: хочу силами libpq-devel выполнить запрос

EXPLAIN (ANALYZE, VERBOSE, BUFFERS, SETTINGS) INSERT INTO table (<some columns>) VALUES (...), (...), ... ;

Делаю так:

PGresult *res = PQexec(conn, base_query_s); // в base_query_s — полностью строка запроса

if (PQresultStatus(res) != PGRES_COMMAND_OK) {
        printf("No data :(\n");
        PQclear(res);
        do_exit(conn);
   }

Возвращает 'no data'

А если без EXPLAIN выполнить, а просто INSERT, то код возвращается PGRES_COMMAND_OK

Подскажите, в чём проблема?
источник

DI

Dmitry Igrishin in pgsql – PostgreSQL
Setplus Mac
Добрый день, коллеги. Подскажите, пожалуйста: хочу силами libpq-devel выполнить запрос

EXPLAIN (ANALYZE, VERBOSE, BUFFERS, SETTINGS) INSERT INTO table (<some columns>) VALUES (...), (...), ... ;

Делаю так:

PGresult *res = PQexec(conn, base_query_s); // в base_query_s — полностью строка запроса

if (PQresultStatus(res) != PGRES_COMMAND_OK) {
        printf("No data :(\n");
        PQclear(res);
        do_exit(conn);
   }

Возвращает 'no data'

А если без EXPLAIN выполнить, а просто INSERT, то код возвращается PGRES_COMMAND_OK

Подскажите, в чём проблема?
Вы можете добавить в if вывод PQresultErrorMessage() и посмотреть.
источник

СК

Сергей Кравчук... in pgsql – PostgreSQL
Alexey Lesovsky
Архивирование WAL это не про инкрементальный бэкап.
Ну если очень натянуто)
В плане бреда )
источник

DI

Dmitry Igrishin in pgsql – PostgreSQL
Setplus Mac
Добрый день, коллеги. Подскажите, пожалуйста: хочу силами libpq-devel выполнить запрос

EXPLAIN (ANALYZE, VERBOSE, BUFFERS, SETTINGS) INSERT INTO table (<some columns>) VALUES (...), (...), ... ;

Делаю так:

PGresult *res = PQexec(conn, base_query_s); // в base_query_s — полностью строка запроса

if (PQresultStatus(res) != PGRES_COMMAND_OK) {
        printf("No data :(\n");
        PQclear(res);
        do_exit(conn);
   }

Возвращает 'no data'

А если без EXPLAIN выполнить, а просто INSERT, то код возвращается PGRES_COMMAND_OK

Подскажите, в чём проблема?
А, стоп. Скорее всего, возвращается PGRES_TUPLES_OK, а не PGRES_COMMAND_OK. Потому что explain возвращает 1 строку и 1 столбец.
источник

SM

Setplus Mac in pgsql – PostgreSQL
Да-да
источник

SM

Setplus Mac in pgsql – PostgreSQL
Вот только хотел написать
источник

SM

Setplus Mac in pgsql – PostgreSQL
PGresult *res = PQexec(conn, base_query_s);
   if (PQresultStatus(res) != PGRES_TUPLES_OK) {
        printf("No data :(\n");
        PQclear(res);
        do_exit(conn);
   }
   int rows = PQntuples(res);
   for (int i = 0; i < rows; i++){
       printf("%s\n", PQgetvalue(res,i,0));
   }
источник

SM

Setplus Mac in pgsql – PostgreSQL
Спасибо!
источник

СК

Саша Козлов... in pgsql – PostgreSQL
Добрый день.
нужно как-то реализовать перемещение секций между БД на разных серверах.
в худшем случае: перемещение данных из этих секций.

какой путь самый простой и надежный?
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
COPY ?
источник

СК

Саша Козлов... in pgsql – PostgreSQL
да. пока делаю через COPY...
но может можно как-то отцепить таблицу от одного сервера и прицепить к другому ?
источник

ДМ

Дмитрий Мачихелян... in pgsql – PostgreSQL
Михаил Шурутов
Сейчас у вас сферический запрос в вакууме. На который пока что напрашивается уточняющий вопрос в ответ: а по userd_id индекс есть?
Нет
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
отцепить и прицепить в смысле мгновенно? копировать байты то все равно придется
источник

СК

Саша Козлов... in pgsql – PostgreSQL
ну еще вот pg_dump - pg_restore советуют.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Саша Козлов
да. пока делаю через COPY...
но может можно как-то отцепить таблицу от одного сервера и прицепить к другому ?
как в ORACLE, Transportable TS? нет, такого нету.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Саша Козлов
ну еще вот pg_dump - pg_restore советуют.
это и есть COPY, по сути…
можно логической или тригеррной репликацией перетащить
источник

СК

Саша Козлов... in pgsql – PostgreSQL
Alexey Lesovsky
отцепить и прицепить в смысле мгновенно? копировать байты то все равно придется
это понятно, от этого не уйти. я в смысле чтоб не сопировать/дампить в промежуточные форматы.
источник

СК

Саша Козлов... in pgsql – PostgreSQL
Victor Yegorov
как в ORACLE, Transportable TS? нет, такого нету.
не знаю как в оракле ((

я думал что-то типо через промежуточный тэйблспэйс
перенести таблицу на промежуточный тэйблспэйс
там ее отцепить
потом прицепить на другой сервер
и забрать уже на правильный тэйблспэйс

ну вот "отцепить/прицепить" и не нашел
есть?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Саша Козлов
не знаю как в оракле ((

я думал что-то типо через промежуточный тэйблспэйс
перенести таблицу на промежуточный тэйблспэйс
там ее отцепить
потом прицепить на другой сервер
и забрать уже на правильный тэйблспэйс

ну вот "отцепить/прицепить" и не нашел
есть?
вот то, что вы написали — это Transportable Tablespaces в Oracle. нету такого
источник