
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

Eugen
03.09.2018
18:00:45
спасибо большое
хм... найти бы возможные варианты значений для datestyle

Yaroslav
03.09.2018
18:07:36
я понимаю что не работало. не знал как задать этот формат.
Вообще, кстати, протокол PostgreSQL позволяет задавать клиентские параметры сессии прямо при соединении... но это надо смотреть, поддерживается ли это используемым Вами API.
Но если не поддерживается, можно использовать "SET 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
хмм можно поробовать
спасибо

Yaroslav
03.09.2018
19:07:58

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

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
спасибо
буду разбираться

Yukari
04.09.2018
04:22:13
Вопрос по терминологии. Кто-нибудь помнит, как называется паттерн, когда помимо свойства какого-либо объекта в одной таблице хранят еще и интервал, когда оно было актуально? Т.е. типа такого:
tariff_id, project_id, date_start, date_finish
1, 100, '2018-01-01', '2018-05-01'
2, 100, '2018-05-01', null
Справочник с поддержкой историчности

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

Антон
04.09.2018
07:40:15

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
привет. Подскажите пожалуйста какое поле используют для хранения значения криптовалюты в бд?

elfiki
04.09.2018
09:02:25

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

elfiki
04.09.2018
09:03:05
varchar

Yaroslav
04.09.2018
09:07:32

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

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

Google

elfiki
04.09.2018
09:58:00
и даже создать свой тип
ограничив правилами

Yaroslav
04.09.2018
10:00:07

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

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

Andrei
04.09.2018
10:05:57


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 и т.п.


Сергей
04.09.2018
10:19:46

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