
Darafei
25.04.2018
14:02:32
а что такое "нужная"?

Ildar
25.04.2018
14:07:30
Привет! Тут коллеги запустили дайджест новостей про postgres, велкам https://t.me/postgresso

Fedor
25.04.2018
14:14:09


yurc
25.04.2018
15:13:07
вопрос почему функция first_value работает, а функция last_value нет!
пример:
--DROP TABLE test_table;
CREATE TABLE test_table
(
num integer,
date_from date
)
WITH (
OIDS=FALSE
);
ALTER TABLE test_table
OWNER TO postgres;
INSERT INTO test_table(
num, date_from)
VALUES (111, '2017-01-01'),(222,'2018-01-01'),(222,'2017-01-01')
получаем по каждому num первое значение date_from
select num , first_value(date_from) OVER (partition by num order by t.date_from )
from test_table t
111;"2017-01-01"
222;"2017-01-01"
222;"2017-01-01"
получаем по каждому num последнее значение date_from
select num , first_value(date_from) OVER (partition by num order by t.date_from desc )
from test_table t
111;"2017-01-01"
222;"2018-01-01"
222;"2018-01-01"
пытаемся получить по каждому num первое значение date_from
select num , last_value(date_from) OVER (partition by num order by t.date_from desc )
from test_table t
111;"2017-01-01"
222;"2018-01-01"
222;"2017-01-01"
пытаемся получить по каждому num последнее значение date_from
select num , last_value(date_from) OVER (partition by num order by t.date_from )
from test_table t
111;"2017-01-01"
222;"2017-01-01"
222;"2018-01-01"

Google

Mikhail
25.04.2018
15:14:18
Если не путаю
Недавно было на планете

yurc
25.04.2018
15:14:55
и в чем тут разгадка?

Yaroslav
25.04.2018
15:26:17
и в чем тут разгадка?
В том, что при наличии ORDER BY в оконной функции default frame:
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

Dmitry
25.04.2018
16:00:06
ребята, а как правильно мониторить что стриминговая репликация в процессе? вопрос отставания сейчас не рассматриваю.

Ruslan
25.04.2018
17:50:19

Dmitry
25.04.2018
17:50:55
спасибо.

Алексей
25.04.2018
18:15:53
у меня вопрос.
Наверное глупость спрошу,- прошу простить.
Имеем: я написал небольшое расширение функционала на питоне. Постгрес умеет ето делать. Вопрос в следующем в контексте селинукс как оно (расширение будет выглядет) и если оно с некоторыми внешними папками работает - какие права выставлять?

Иван
25.04.2018
18:38:39
Привет Алекс)

HipJoy
25.04.2018
18:39:22
доброго вечера
посоветуйте годные ресурсы по пг, где все разложено по полочкам
пользуюсь пг давно, но поверхностно и хочется навести порядок в голове

Иван
25.04.2018
18:40:27

HipJoy
25.04.2018
18:41:58

Stanislav
25.04.2018
20:29:41
вопрос на собеседование: что может течь в постгресовской сесиии доведя клиентский процесс до сжирания всей памяти и свопа, при том что роллбек и коммит не спасают ?

Google

Darafei
25.04.2018
20:32:33

dk
25.04.2018
20:32:46

Stanislav
25.04.2018
20:32:52
я не знаю что это и он не должен расти

Darafei
25.04.2018
20:33:42
Ctrl-C нажимал в запросах?

Stanislav
25.04.2018
20:33:50
расширеный вопрос - чем может гадить клиент таким ? если у него в доступе что угодно ? локи ?

Darafei
25.04.2018
20:34:59
А, в го текут горутины

Stanislav
25.04.2018
20:35:01
(вообще я нашел ответ и решил похвастаться)
но течет то не го а постгре процесс

Darafei
25.04.2018
20:36:03
Autoprepare?

Stanislav
25.04.2018
20:36:25
еее. да. клиент создавал prepared statements как не в себя

Darafei
25.04.2018
20:37:07
Кто-то не смог плейсхолдеры

dk
25.04.2018
20:38:09
Нормальные люди делают воркеры приложух с ограниченным количеством решаемых задач и временем жизни, ведь практически невозможно предусмотреть все возможные утечки в сложных прогах
Отработал N запросов и умер, мастер стартанул новый воркер

Stanislav
25.04.2018
20:39:26
я привык что ничего там не может течь. для меня это какаято фантастика что есть какой то ресурс который живет после коммита/роллбека

Darafei
25.04.2018
20:40:10
Например временные таблицы
Или кеш заготовок геометрий постгиса

Stanislav
25.04.2018
20:42:50
ну так то да наверное. ладно я не настоящий волшебник, просто очень в шоке )

Darafei
25.04.2018
20:43:20
Или флажок интеррапта в постгисе

dk
25.04.2018
20:44:12
А как все эти изыскания помогут клиентскому приложению не течь? :)

Google

Darafei
25.04.2018
20:45:59
Не течь помогает зажатый лимит памяти и заведение production issue на падение по oom

dk
25.04.2018
20:46:04
Вообще, хорошая практика - если воркер хотя бы закрывает за собой соединение, а то бывает по 100500 таймвейтов...

Yaroslav
25.04.2018
21:00:47
Global state в procedural languages ещё может "течь", если есть ошибка работы с ним (в тех PL, где он есть).

Darafei
25.04.2018
21:01:37
Все, что делает malloc, короче

dk
25.04.2018
21:14:56
Логично
Память течет потому, что её выделяют :3

Алекс
26.04.2018
03:43:51
доброго всем утра. не подскажете можно уже где-нибудь взять исходники 11? очень хочется потестировать это https://habr.com/company/postgrespro/blog/353848/

Sergey
26.04.2018
05:17:59
только в бой ни ни...

Гаврилов
26.04.2018
05:20:46
слышал про фичу с count по индексам
если у меня будет вся таблица в индексах, то постгрес не будет обращатся к таблице при агрегациях?

Алекс
26.04.2018
05:29:17

Sergey
26.04.2018
05:34:12
ну оно же сыро сыро.... может и данные в тыкву превратить

Алекс
26.04.2018
05:46:04
вот и проверим :)
или не проверим, мастер не собирается

Айтуар
26.04.2018
05:53:48
Это и была проверка)

Алекс
26.04.2018
05:55:28
что за либа такая -lieee ?
/usr/sbin/ld: cannot find -lieee

Айтуар
26.04.2018
06:07:27
lol.so?

Google

Sergey
26.04.2018
06:40:53

Denis
26.04.2018
06:45:29
У вас такие данные в таблице, на которых постгрес решает не использовать этот индекс.

Sergey
26.04.2018
06:46:16
Это верно, там одна запись. Вы хотите сказать что в бою будет всё ок ?

Denis
26.04.2018
06:46:20
На других данных, с лучшей селективностью, вероятно, начнет использовать.

Sergey
26.04.2018
06:47:29
Спасибо огромное! А то я уже весь гугл перерыл в поисках.

Denis
26.04.2018
06:47:45
Да, планы сильно зависят от данных и статистики, собранной по ним базой.

Sergey
26.04.2018
06:56:37

Yaroslav
26.04.2018
07:00:04

Sergey
26.04.2018
07:01:15

Yaroslav
26.04.2018
07:02:02

Михаил
26.04.2018
07:03:56
зачем, если этого не требуется по постановке?

Sergey
26.04.2018
07:05:44
Задача такова: Вернуть всех пользователей у которох нету документа, с определённой датой начало договора.

Yaroslav
26.04.2018
07:08:20

Sergey
26.04.2018
07:08:59
по 500, это что -бы сервак память не кушал.
Берёт по 500, пишет потоком в файл. Потом, потоком отдаёт файл.

Darafei
26.04.2018
07:11:25

Михаил
26.04.2018
07:11:30

Yaroslav
26.04.2018
07:13:24

Sergey
26.04.2018
07:13:49

Google

Ibosh
26.04.2018
07:13:59
Здавствуйте! В жава коде даю такой запросик, проверяю в pgAdmin, а там нету таких Rows
statement = connection.createStatement();
String sql = "INSERT INTO transactions (title, date_of_creation, additional_params, cost_of_transaction, sender, reciever, system_of_creator) "
+ "VALUES ( '"+columns.getTitle()+"', '"+ columns.getDate_of_creation()+"', '"+ columns.getAdditional_params()+"', '"+ columns.getCost_of_transaction()+"', '"+ columns.getSender()+"', '"+ columns.getReciever()+"', '"+ columns.getSystem_of_creator()+ "' );";
statement.executeUpdate(sql);
В чем может быть ошибка?

Yaroslav
26.04.2018
07:15:58

Михаил
26.04.2018
07:16:11
это как предположение. Может не к той базе ещё подключаетесь :)

Yaroslav
26.04.2018
07:17:11
statement = connection.createStatement();
String sql = "INSERT INTO transactions (title, date_of_creation, additional_params, cost_of_transaction, sender, reciever, system_of_creator) "
+ "VALUES ( '"+columns.getTitle()+"', '"+ columns.getDate_of_creation()+"', '"+ columns.getAdditional_params()+"', '"+ columns.getCost_of_transaction()+"', '"+ columns.getSender()+"', '"+ columns.getReciever()+"', '"+ columns.getSystem_of_creator()+ "' );";
statement.executeUpdate(sql);
Может, она неявно делает "BEGIN TRANSACTION;"? А потом не commit-ит.
Кстати, используйте параметризованные запросы...

Ibosh
26.04.2018
07:18:11

Sergey
26.04.2018
07:21:07

Yaroslav
26.04.2018
07:31:51

Николай
26.04.2018
07:35:19
Всем привет.
Подскажите. Есть такая ситуация. Раз в 5 сек в базу кладётся запись с датой и IP адресом компьютера. В эту же таблицу могут класться записи с других компов (IP). Как вычленить в разрезе 1 IP его UPTIME, т.е. дату после длительного перерыва между записями (например, 1 минута)

Vladislav
26.04.2018
07:37:20