
Denis
24.04.2017
00:02:02
ох, если кратко - то во славу медицине) а если серьезно, то тут история про геораспределенную систему заказов медицинских услуг в которой при потери связи откалывающиеся куски системы могут в немного урезанном варианте существовать изолированно от основной системы. и адекватно присоединяться назад без конфликтов

Fike
24.04.2017
00:08:01
вы не думали взять решение, изначально знающее о возможности распределенного сетапа?

Denis
24.04.2017
00:12:58

/dev/null
24.04.2017
00:27:21
Утра всем

Google

/dev/null
24.04.2017
00:29:05
Такая ситуация, нужно выполнить SELECT в результате которого, может вывестись 0 записей (не вывестись)
Можно ли вернуть последний id с таблицы в которую делается этот SELECT?

Fike
24.04.2017
00:29:13
вы хотите и единый мастер оставить, и конфликты разрешать

Denis
24.04.2017
00:30:10

Fike
24.04.2017
00:30:32

/dev/null
24.04.2017
00:31:01

Fike
24.04.2017
00:31:14
зачем вам тогда знать этот айдишник?

/dev/null
24.04.2017
00:32:05
Это нужно на Фронте, для "подмены" данных в таблице...
Там я делаю items.pust([{id:"11"}])

Denis
24.04.2017
00:32:19

Fike
24.04.2017
00:32:44
я говорю вам про то, что используя несуществующий айдишник вы стреляете себе в ногу
зачем еще может быть нужно доставать последний - я не знаю

/dev/null
24.04.2017
00:34:07
зачем вам тогда знать этот айдишник?
То есть, что-бы пользователю показать что данные "вставлены"... это нужно для того, что если пользователь начнет обновлять данные в таблице (на фронте) для последующего UPDATE данных нужен его id... а он в свою очередь до перезагрузки страницы неизвестен.

Google

Fike
24.04.2017
00:34:19
так они не вставлены

/dev/null
24.04.2017
00:34:24
сложно объяснить, но id последний записи нужно узнать)

Fike
24.04.2017
00:34:42
скорее всего у вас просто на фронте левая логика
из-за который вы теперь хотите напрягать бэкенд

/dev/null
24.04.2017
00:35:00

Fike
24.04.2017
00:35:06
то есть не вставлены

/dev/null
24.04.2017
00:35:38
Тогда пойдет insert а за ним уже UPDATE

Fike
24.04.2017
00:36:05
тогда нужно делать один инсерт

/dev/null
24.04.2017
00:36:12
все несколько не так работает, я это просто что-бы объяснить.
тогда нужно делать один инсерт
Такая ситуация, нужно выполнить SELECT в результате которого, может вывестись 0 записей (не вывестись)
Можно ли вернуть последний id с таблицы в которую делается этот SELECT?
вот это нужно)
это реально?

Fike
24.04.2017
00:37:12
вы понимаете, что последний айди не равен значению сиквенса?

/dev/null
24.04.2017
00:39:00
до insert я делаю select из таблицы
он выведет 0 rows

Fike
24.04.2017
00:39:50
вам нужно маркировать записи как "сохраненные" и "новые"
и новые вставлять, а сохраненные обновлять
вот и вся магия

Google

/dev/null
24.04.2017
00:40:15
?

Fike
24.04.2017
00:41:53
это канал про постгре. ваше решение задачи, которое вы придумали, выстрелит в ногу и вам, и другим людям, которые будут пользоваться системой. я не фронтенд и не знаю фреймворков, но говорю банальные вещи, которые вероятнее всего уже есть в документации.

/dev/null
24.04.2017
00:43:46

Fike
24.04.2017
00:44:48
https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem
вам нужно не за сиквенсами гоняться, а понять, когда вставлять запись, а когда обновлять

/dev/null
24.04.2017
00:45:28
Я вовсе не стреляю в ногу, при INSERT я вставляю в таблицу новый row но жду от сервера 200, если не прошел запрос то предупреждаю пользователя, сбои бывают крайне редки, а пользователю так работать комфортнее
спасибо)

raksita
24.04.2017
05:30:31

Denis
24.04.2017
05:37:17

raksita
24.04.2017
05:42:50


Sergey
24.04.2017
06:24:11
postgres=# explain verbose select count(1) from public.dept where dept_id = 1;
--------------------------------------
Aggregate (cost=20002.50..20002.51 rows=1 width=8)
Output: count(1)
-> Foreign Scan on public.dept (cost=10000.00..20000.00 rows=1000 width
=0)
Output: dept_id, dept_type_id, ext_dept_id, org_id, deleted, voice, voice_ext
Oracle query: SELECT /*59aa942107e7f67494254d4f6536f42c*/ "DEPT_ID"
FROM "DEPT"."DEPT" WHERE ("DEPT_ID" = 1)
Oracle plan: SELECT STATEMENT
Oracle plan: INDEX RANGE SCAN P_DEPT (condition "DEPT_ID"=1)
(7 rows)
А есть способ push down любой кусок SQL'я, чтобы например оракловые функции через fdw вызывать? select NVL(a_field,b_field) from my_fwd_table;


Denis
24.04.2017
06:28:51
sandbox=# explain verbose select * from test_pgpro where quotaid = '44fafee8-64c1-4aa4-a91a-b195ccb15e54';
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------
Foreign Scan on public.test_pgpro (cost=100.00..131.50 rows=9 width=24)
Output: kdcid, periodid, quotaid
Remote SQL: SELECT kdcid, periodid, quotaid FROM public.test WHERE ((quotaid = '44fafee8-64c1-4aa4-a91a-b195ccb15e54'::uuid))
(3 rows)
и вот как понять, что она использовала на удаленной стороне....


Ildar
24.04.2017
06:31:35

Google

Sergey
24.04.2017
06:34:33
Ну и всякие фокусы с хранением локальной/использованием удаленной статистики https://postgrespro.ru/docs/postgrespro/9.6/postgres-fdw пункт F.45.1.3

Denis
24.04.2017
06:35:45

Andrey
24.04.2017
06:37:41

Сергей
24.04.2017
06:46:46
@/dev/null Вы действительно делаете что-то неправильное с этим последним id
вы напишите тесты, протестируете в однопоточном режиме и это будет работать. но сразу упадет как только 2 транзакции одновременно пойдут

Admin
ERROR: S client not available

Сергей
24.04.2017
06:48:50
и vue.js тут непричем. архитектура js не должна влиять на бэкэнд в такой степени, что приходится закладывать архитектурные ошибки

Denis
24.04.2017
06:50:58

Alex
24.04.2017
07:53:27
Друзья клиент у нас с базой работает через Jboss где настроен pooling,имеет смысл установить по pgbouncer-у бд ?

Philip
24.04.2017
08:50:54
bgbouncer только ради пуллинга того же клиента не имеет смысла!

Dmitry
24.04.2017
09:09:02
от pgbouncer есть смысл в statement или transaction моде, если готовы потерять prepared statement - то можно: с pgbouncer проще эксплуатировать

Павел
24.04.2017
12:12:21
добрый день
подскажите пожалуйста, есть тестовый сервер с внешним ip, на нем тестовая бд, мне нужно быстро и не безопасно подключить из приложения к нему
добавляю в pg_hba.conf строчку
host test_database postgres all trust
и все равно получаю ошибку аутентификации

Sergey
24.04.2017
12:14:20
может вместо trust - password?

Павел
24.04.2017
12:16:16
пробовал, тоже самое

Sergey
24.04.2017
12:17:58
а юзер точно postgres?

Павел
24.04.2017
12:22:44
ага

Pavel
24.04.2017
12:22:50
а listen_addresses = '*' прописан?
можно еще сделать SELECT pg_reload_conf(); чтобы перезагрузить конфигурацию

Google

Павел
24.04.2017
12:28:13
может его нужно через команды psql менять?, если есть такие

Pavel
24.04.2017
12:30:19
а если сделать sudo netstat -plunt | grep postgres

Павел
24.04.2017
12:32:40

ros
24.04.2017
12:47:01
sudo netstat -aplnt | grep postgres
u - UDP

nietzschebrod
24.04.2017
12:51:28
ss расово вернее

ros
24.04.2017
12:52:29
netstat в крови

nietzschebrod
24.04.2017
12:54:46
в арийской крови арийский ss

ros
24.04.2017
12:58:33
наши все равно победили

nietzschebrod
24.04.2017
13:01:16
у каждого свои "наши"
> ss was written by Alexey Kuznetosv
> netstat user interface was written by Fred Baumgarten

Denis
24.04.2017
13:06:01

Denis
24.04.2017
13:06:37
Ребят, пробовал кто ставить statement_timeout на группу? Через alter role set ...;
У меня у пользователей не появляется этот параметр отнаследованные от этой группы.

Павел
24.04.2017
13:11:38

Denis
24.04.2017
13:14:18
не помогает
А с локального компьютера вы подключиться можете? И вообще, постгрес жив?