Size: a a a

pgsql – PostgreSQL

2020 December 24

AL

Alexey Lesovsky in pgsql – PostgreSQL
пробники настроить агрессивнее
источник

cv

chentsov vyacheslav in pgsql – PostgreSQL
Коллеги, Ситуация - PGAdmin при запросе определенного поля выдает неполное значение поля (пример запроса:  SELECT file_content FROM local_files WHERE name_file like '50_43025_getLoanInfo';)

А при запросе всех полей - все отрабатывает нормально и я получаю данные целиком (пример запроса:  SELECT * FROM local_files WHERE name_file like '50_43025_getLoanInfo';).

Вопрос, Как гуглить данную проблему а лучше решить?  Никак не получается найти информацию. Заранее спасибо :)
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
есть вопрос по части разработки.
Коллеги осваивают  PARALLEL SAFE для функций, но

из документации:
цикл PL/pgSQL вида FOR x IN query LOOP .. END LOOP никогда не будет использовать параллельный план, так как система параллельных запросов не сможет определить, может ли безопасно выполняться код внутри цикла во время параллельного выполнения запроса.


есть ли альтернативы?  Например  рекурсивные sql в хранимке?
источник

JD

Jim Di in pgsql – PostgreSQL
chentsov vyacheslav
Коллеги, Ситуация - PGAdmin при запросе определенного поля выдает неполное значение поля (пример запроса:  SELECT file_content FROM local_files WHERE name_file like '50_43025_getLoanInfo';)

А при запросе всех полей - все отрабатывает нормально и я получаю данные целиком (пример запроса:  SELECT * FROM local_files WHERE name_file like '50_43025_getLoanInfo';).

Вопрос, Как гуглить данную проблему а лучше решить?  Никак не получается найти информацию. Заранее спасибо :)
в настройках query editor раньше было Max. characters per column.

для pgadmin3 было так: File -> Options -> Query Tool -> Max. char. per column -> -1
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Виталий Кухарик
есть вопрос по части разработки.
Коллеги осваивают  PARALLEL SAFE для функций, но

из документации:
цикл PL/pgSQL вида FOR x IN query LOOP .. END LOOP никогда не будет использовать параллельный план, так как система параллельных запросов не сможет определить, может ли безопасно выполняться код внутри цикла во время параллельного выполнения запроса.


есть ли альтернативы?  Например  рекурсивные sql в хранимке?
если это можно сделать рекурсивным запросом, то может и не нужна хранимка?
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
Victor Yegorov
если это можно сделать рекурсивным запросом, то может и не нужна хранимка?
я с таким же вопросом)
источник

JD

John Doe in pgsql – PostgreSQL
добрый день. подскажите пожалуйста как правильно сделать вот такой запрос?

INSERT ....  ON CONFLICT DO SET "type" = (case when EXCLUDED."type" is null then "type" else EXCLUDED."type" end)
источник

VY

Victor Yegorov in pgsql – PostgreSQL
John Doe
добрый день. подскажите пожалуйста как правильно сделать вот такой запрос?

INSERT ....  ON CONFLICT DO SET "type" = (case when EXCLUDED."type" is null then "type" else EXCLUDED."type" end)
DO что? NOTHING? UPDATE?
источник

JD

John Doe in pgsql – PostgreSQL
UPDATE
источник

JD

John Doe in pgsql – PostgreSQL
то есть если в обновляемом поле type пришел null нужно оставить предыдущее значение
источник

∀λ∃π(א) in pgsql – PostgreSQL
John Doe
добрый день. подскажите пожалуйста как правильно сделать вот такой запрос?

INSERT ....  ON CONFLICT DO SET "type" = (case when EXCLUDED."type" is null then "type" else EXCLUDED."type" end)
источник

VY

Victor Yegorov in pgsql – PostgreSQL
John Doe
UPDATE
ну вот и пишите DO UPDATE, подсматривать синтаксис в документации разрешается и приветствуется
источник

СК

Сергей Казаков... in pgsql – PostgreSQL
всем привет. Есть таблицы Заказ, Мойка, Опции мойки, Опции заказа. Заказ ссылается на Мойку. Опция мойки ссылается на мойку. В Опции заказа ссылка на заказ и на опцию мойки. Но никто не запретит в Опциях заказа указать id опции совсем другой мойки. Не той, что указана в заказе. Ограничение здесь никак не добавить? Хотелось бы, чтобы субд по рукам дала
источник

JD

Jim Di in pgsql – PostgreSQL
сделай хранимку и там все условия добавь, например
источник

JD

John Doe in pgsql – PostgreSQL
c простым DO UPDATE проблем не возникает. не ясно как быть если в базе колонка заполнена значением, а в запросе update значение выставляется в null
в этом случае нудно оставлять то значение, которое в базе. иначе обновлять
по наналогии в mysql это делается on duplicate key update type = case when type is null then type else values(type)
вопрос как в pg реализовать такое же поведение?
вот в таком виде выдает ошибку
DO UPDATE SET "type" = (case when EXCLUDED."type" is null then "type" else EXCLUDED."type" end)
источник

VY

Victor Yegorov in pgsql – PostgreSQL
John Doe
c простым DO UPDATE проблем не возникает. не ясно как быть если в базе колонка заполнена значением, а в запросе update значение выставляется в null
в этом случае нудно оставлять то значение, которое в базе. иначе обновлять
по наналогии в mysql это делается on duplicate key update type = case when type is null then type else values(type)
вопрос как в pg реализовать такое же поведение?
вот в таком виде выдает ошибку
DO UPDATE SET "type" = (case when EXCLUDED."type" is null then "type" else EXCLUDED."type" end)
какую ошибку?
источник

JD

John Doe in pgsql – PostgreSQL
ERROR:  column reference "type" is ambiguous
LINE 19: ... "type" = (case when EXCLUDED."type" is null then "type" els...
источник

EK

Evgeny Kuzin in pgsql – PostgreSQL
Можно вопрос? Читаю как постгрес стартует тут https://github.com/postgres/postgres/blob/master/src/backend/access/transam/xlog.c и пытаюсь понять что может ускорить старт если у меня была реплика которая отстала по replay_lag на пол терабайта и потом постгрес еще и рестартанул и пытается это все сначала проиграть.
источник

EK

Evgeny Kuzin in pgsql – PostgreSQL
если fsync отключить временно будет сильно быстрее?
источник

EK

Evgeny Kuzin in pgsql – PostgreSQL
Просто чтоюы проиграть эти пол терабайта
источник