@pgsql

Страница 965 из 1062
Eugen
03.09.2018
17:55:31
>И установка datestyle? по умолчанию

не знаю как поменять.

Yaroslav
03.09.2018
17:58:54
Eugen
03.09.2018
17:59:12
DateStyle ----------- ISO, MDY (1 row)

Google
Yaroslav
03.09.2018
17:59:25
не знаю как поменять.
SET datestyle = 'ISO, DMY';

DateStyle ----------- ISO, MDY (1 row)
Ну вот поэтому-то и не работает. Ваша дата воспринимается как: день 2018, месяц 8, год 14.

Eugen
03.09.2018
18:00:45
SET datestyle = 'ISO, DMY';
о! именно это я и искал

Ну вот поэтому-то и не работает. Ваша дата воспринимается как: день 2018, месяц 8, год 14.
я понимаю что не работало. не знал как задать этот формат.

спасибо большое

хм... найти бы возможные варианты значений для datestyle

Yaroslav
03.09.2018
18:07:36
я понимаю что не работало. не знал как задать этот формат.
Вообще, кстати, протокол PostgreSQL позволяет задавать клиентские параметры сессии прямо при соединении... но это надо смотреть, поддерживается ли это используемым Вами API. Но если не поддерживается, можно использовать "SET datestyle" (или просто установить на сервере / для пользователя / для базы... как хотите).

хм... найти бы возможные варианты значений для datestyle
https://www.postgresql.org/docs/current/static/runtime-config-client.html#GUC-DATESTYLE

Eugen
03.09.2018
18:09:43
? супер. А то меня всё ведёт на документацию для SET

жаль, что нельзя сказать: set datestyle to 'DD -- MM -- YYYY';

Terminator
03.09.2018
18:57:15
@verrchu будет жить. Поприветствуем!

Yauheni
03.09.2018
18:58:06
Добрый день друзья Подскажите пожалуйста как установить максимальный лиминт на селект

имеется в виду ограничить максимальное количество выдаваемых записей на селект

Google
Denis
03.09.2018
19:00:24
вы не поверите, LIMIT N

Yauheni
03.09.2018
19:01:49
я имею в виду на стороне базы ограничить это а не в самом запросе

Denis
03.09.2018
19:02:03
а, понял

думаю, такого параметра нет

Yauheni
03.09.2018
19:03:18
может у когонибудь есть идея как этого достичь?

Denis
03.09.2018
19:04:17
зависит от того, какую проблему вы решаете. может быть, вам подойдет вариант создать View с лимитом?

тогда на этот View можно будет делать селект без указания лимита

Yauheni
03.09.2018
19:05:51
хмм можно поробовать

спасибо

Yauheni
03.09.2018
19:08:19
не опнимаю вашего удивления

есть требование по которому база не должна возвращать по селекту больше определенного количетсва записей вот и все

Denis
03.09.2018
19:09:46
на самом деле, это "требование" уже звучит как решение какой-то другой проблемы

Yauheni
03.09.2018
19:11:20
это не продакшн а просто тренировка

на вход мы получаем строку с произвольным селект запросом

и на уровне базы нужно както ограничить максимальный лимит

с вью видимо так не получится

Denis
03.09.2018
19:12:55
вроде может получиться

(если я правильно себе представляю, как работает VIEW + LIMIT)

Yaroslav
03.09.2018
19:13:53
есть требование по которому база не должна возвращать по селекту больше определенного количетсва записей вот и все
А требования иногда возвращать данные из /dev/random у Вас нет? ;) А то оно примерно такое же "нормальное" для реальных систем.

Google
Yaroslav
03.09.2018
19:14:10
Yauheni
03.09.2018
19:14:12
это не реальная система я уже упомниал об этом выше

Denis
03.09.2018
19:16:44
я тут проверил. да, если делать запрос из VIEW с лимитом, то возвращается не больше строк, чем задано в лимите на VIEW.

Yauheni
03.09.2018
19:16:46
вроде может получиться
может я чегото не понимаю но если мы сделаем лимит на вью то потерям данные для селекта не так ли

Denis
03.09.2018
19:17:37
что значит потеряем? не очень понял

а, понял

да, потеряем

Yauheni
03.09.2018
19:18:53
вот в этом то и проблема

Denis
03.09.2018
19:19:06
так что да, не подходит

Yaroslav
03.09.2018
19:24:29
вот в этом то и проблема
Ну а почему в приложении это не решать?

Yauheni
03.09.2018
19:25:15
не очень бы хотелось парсить запрос и проверять лимит

мне кажется за это баща должна отвечать

Yaroslav
03.09.2018
19:28:04
не очень бы хотелось парсить запрос и проверять лимит
Зачем для этого что-то парсить? Можно же использовать курсоры.

Yauheni
03.09.2018
19:30:51
видимо придется разобраться таки с курсорами

Yaroslav
03.09.2018
19:35:00
видимо придется разобраться таки с курсорами
Для Вашей задачи, по идее, просто. Что-то вроде: CREATE TABLE t(n) AS SELECT n FROM generate_series(1, 100) AS g(n); -- BEGIN; DECLARE cursor1 NO SCROLL CURSOR FOR SELECT * FROM t; FETCH 10 FROM cursor1; -- сколько нужно COMMIT;

Yauheni
03.09.2018
19:38:58
спасибо

буду разбираться

DiJey (Pavel)
04.09.2018
07:01:14
Бесплатные централизованные системы резервного копирования никто не подскажет, кто какие использует?

Google
alex
04.09.2018
07:41:46
Maxim
04.09.2018
07:44:26
Mike Chuguniy
04.09.2018
07:48:44
Эммм... А бакула уже умеет БД резервно копировать? По-моему, тут более уместно вспомнить barman и pgbackrest

DiJey (Pavel)
04.09.2018
08:02:04
Спасибо!

Alex
04.09.2018
08:31:36
Подскажите, пожалуйста. В расширении pg_stat_statements в каких единицах измерения представлено время выполнения запроса, в частности колонка - total_time

mio
04.09.2018
08:34:39
total_time double precision Total time spent in the statement, in milliseconds https://www.postgresql.org/docs/9.4/static/pgstatstatements.html

Set
04.09.2018
09:00:57
привет. Подскажите пожалуйста какое поле используют для хранения значения криптовалюты в бд?

Set
04.09.2018
09:02:57
сам счет

elfiki
04.09.2018
09:03:05
varchar

Fedor
04.09.2018
09:14:41
https://avitotech.timepad.ru/event/798808/

Andrei
04.09.2018
09:35:35
text
А почему так по-богатому?

Сергей
04.09.2018
09:36:44
А почему так по-богатому?
А как по-бедному?

Yaroslav
04.09.2018
09:36:49
А почему так по-богатому?
В смысле? Это же по сути текстовое поле, как я понял. Вот и советую соответствующий тип.

Andrei
04.09.2018
09:42:57
В текст, как и в варчар без указания длины, можно запихать 1гб мусора

Хорошей практикой считается делать ограничение длины полей, если оно известно

Yaroslav
04.09.2018
09:47:06
Хорошей практикой считается делать ограничение длины полей, если оно известно
Кем это считается хорошей практикой? ;) Например: https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don.27t_use_varchar.28n.29_by_default

Andrei
04.09.2018
09:55:38
сомнительное обоснование в wiki, ну да ладно)

Google
elfiki
04.09.2018
09:58:00
сомнительное обоснование в wiki, ну да ладно)
ну ничто не мешает ограничитиь длинну

и даже создать свой тип

ограничив правилами

Yaroslav
04.09.2018
10:00:07
сомнительное обоснование в wiki, ну да ладно)
Хмм... что в нём сомнительного? По-моему, вполне логично — если Вы хотите наложить какие-то ограничения на поле, так и используйте CHECK CONSTRAINT (или DOMAIN).

Andrei
04.09.2018
10:02:23
если при обьявлении типа можно ограничить его сверху (а в 99% случаев ограничения только по MAX длине), зачем дополнительный констрейт?

Сергей
04.09.2018
10:05:14
если при обьявлении типа можно ограничить его сверху (а в 99% случаев ограничения только по MAX длине), зачем дополнительный констрейт?
в постгресе text и varchar ничем не отличаются в реализации. и на памяти/скорости не сэкономите

а ограничение по длине удобней в коде делать, в валидаторах. потому что их можно поменять и передеплоить, а для базы надо миграцию схемы делать

Yaroslav
04.09.2018
10:14:04
если при обьявлении типа можно ограничить его сверху (а в 99% случаев ограничения только по MAX длине), зачем дополнительный констрейт?
> в 99% случаев ограничения только по MAX длине Ну, я бы не сказал — мне кажется, другие constraints бывают почаще, чем в 1% случаев. А так, затем, что (IMHO): . Логично использовать для всех ограничений полей одно средство. . У CONSTRAINT может быть название, которое может быть с пользой применено в приложении (ошибка про malformed_account_code как-то "веселее", чем "value too long for type character varying(x)" (тут ещё, кстати, и непонятно, про какое поле ошибка)). . Ну и CONSTRAINT — это "логическое" ограничение, оно выражает намерение, а varchar(x) — "физическое" (аналогичное PRIMARY KEY, UNIQUE/EXCLUSION CONSTRAINTS и т.п.). И это даже может быть полезно, если база следует правилу по возможности определять ограничения таким образом — легче делать их review и т.п.

в постгресе text и varchar ничем не отличаются в реализации. и на памяти/скорости не сэкономите
Это, как раз, не должно иметь существенного значения в проектировании. А то получается модель, основанная на преждевременной оптимизации. Обычно, результаты такого подхода просто "замечательны" (легче сразу выбросить). :(

Yaroslav
04.09.2018
10:21:36
а где тут оптимизация?
> на памяти/скорости не сэкономите Этот довод как-то связан с оптимизацией, Вам не кажется? ;)

Сергей
04.09.2018
10:22:27
ограничения удобно делать в валидаторах в коде, чтобы база хранила, а код логику обрабатывал

Yaroslav
04.09.2018
10:26:06
ограничения удобно делать в валидаторах в коде, чтобы база хранила, а код логику обрабатывал
Вы же знаете, что по этому поводу есть два "враждующих" лагеря, правда? Так вот, я из другого лагеря... ;)

Сергей
04.09.2018
10:26:50
понятно)

Andrey
04.09.2018
10:27:00
ограничения удобно делать в валидаторах в коде, чтобы база хранила, а код логику обрабатывал
В коде на стороне постоянно что-то забывают проверять, а вам потом с этим мусором разбираться.

Страница 965 из 1062