
Jim
22.01.2018
05:51:38
"устойчивая" модель шатаясь еле ползёт =)

Mike Chuguniy
22.01.2018
07:36:16

Аггей
22.01.2018
07:42:26

Mike Chuguniy
22.01.2018
07:43:43

Google

Аггей
22.01.2018
08:12:19
Тонкий диэлектрик

Mike Chuguniy
22.01.2018
08:14:46
Пинцет - это не для изоляции. Пинцет - это теплоотвод в первую очередь. И если просто провод держать пальцами - это только пальцам можно больно сделать, и/или покоцать этот самый лак, то держа пальцами что-нибудь более критичное к температуре, запросто это что-нибудь выводится из строя.

Alexander
22.01.2018
10:53:47
Всем привет! Кто нибудь может объяснить значение терминов "Literal SQL" и "Bind SQL"?

Konstantin
22.01.2018
11:11:04
В "Literal SQL" в запроса напрямую подсталяются константочки, типа "select * from T where x=123", в "Bind SQL" используется binding параметров "select * from T where x=?"
Во втором случае можно использовать prepared statement-ы, что на простых запросах обеспечивает прирост скорости почтив два раза. В первом случае оптимизатор получает шанс соптимизировать запрос под конкретные значения (использяю статистику), что особенно важно при неоднородно распределённых данных.
В Посгресе при использовании prepared statement-ов проверяется насколько общий (generic) план проигрывает специализированному и и выбирается generic только если его стоимость меньше, чем у средняя стоимость специализированного плана.

Alexander
22.01.2018
11:25:08

Lucky
22.01.2018
12:13:26
Можно пример хранимой процедуры, которая возвращает селект по нескольким колонкам в одной таблице?
Причём возвращает так же полями с колонками

Denis
22.01.2018
12:17:15
http://www.postgresqltutorial.com/plpgsql-function-returns-a-table/
оно?

Vladimir
22.01.2018
12:17:45
https://www.postgresql.org/docs/current/static/sql-createfunction.html
returns table
Это?

Lucky
22.01.2018
12:29:54
сейчас проверю

Google

Lucky
22.01.2018
12:36:52
И да и нет. Хочется вызывать просто по SELECT hranimka, а не по SELECT * FROM hranimka
Но пока и так сойдёт, спасибо


andrey
22.01.2018
12:50:32
всем привет у меня есть глупый вопрос по sql запросу:
`WITH smart_grade AS
(
SELECT pmo.gradehistory.id AS id,
pmo.gradehistory.employee_id AS employee_id,
pmo.gradehistory.workprofile AS workprofile,
pmo.gradehistory.specialization AS specialization,
pmo.gradehistory.track AS track,
pmo.gradehistory.location AS location,
pmo.gradehistory.DATE::DATE AS start,
Min (Coalesce (g2.DATE::DATE, '2099-12-31 00:00:00'::DATE)) AS finish
FROM pmo.gradehistory
full outer join pmo.gradehistory g2
ON pmo.gradehistory.employee_id = g2.employee_id
AND pmo.gradehistory.DATE::DATE < g2.DATE::DATE
WHERE pmo.gradehistory.id IS NOT NULL
GROUP BY pmo.gradehistory.id,
pmo.gradehistory.employee_id,
pmo.gradehistory.workprofile,
pmo.gradehistory.location,
pmo.gradehistory.DATE )
,
bench_assignments as (SELECT employee_id,
pmo.assignment.startdate :: DATE as startdate,
Coalesce (pmo.assignment.finishdate :: DATE, Now() :: DATE) as finishdate
FROM pmo.assignment
WHERE pmo.assignment.billable_status_id IN ( 2, 4 ) )
, BAD_table as (
SELECT month_d as date,
AVG (extract(day from pmo._days.month_d::timestamp - bench_assignments.startdate::timestamp )) as "BAD",
COUNT(bench_assignments.employee_id) as "Employee Counts"
FROM pmo._days
join bench_assignments
ON bench_assignments.startdate <= pmo._days.month_d
AND ( bench_assignments.finishdate IS NULL
OR bench_assignments.finishdate >= pmo._days.month_d )
JOIN smart_grade ON smart_grade.employee_id = bench_assignments.employee_id
JOIN pmo._profile_mapping ON pmo._profile_mapping.workprofile = COALESCE (TRIM ( smart_grade.workprofile),'') and pmo._profile_mapping.specialization = COALESCE (TRIM( smart_grade.specialization),'')
JOIN pmo.gradehistory ON smart_grade.id = pmo.gradehistory.id
WHERE 1=1
[[AND {{profile}} ]]
[[AND {{dates}} ]]
[[AND {{grades}}]]
[[AND {{locaiton}}]]
[[AND {{grades_letter}}]]
GROUP BY month_d
ORDER BY month_d DESC )
SELECT date, "BAD",
AVG("BAD")
OVER(ORDER BY date ROWS BETWEEN 31 PRECEDING AND CURRENT ROW) AS "Sliding Avg",
"Employee Counts"
from BAD_table `
выводит Bench - Assignment Duration (BAD) и avg по дате
в `SELECT month_d as date,
AVG (extract(day from pmo._days.month_d::timestamp - bench_assignments.startdate::timestamp )) as "BAD"`
я добавил:
COUNT(bench_assignments.employee_id) as "Employee Counts"
но данные не коректны, не подскажите как правильно добавить количество сотрудников ?


Vladimir
22.01.2018
12:53:58

andrey
22.01.2018
12:55:27
?

Yaroslav
22.01.2018
13:17:01
?
Разобрались бы Вы с этим запросом по частям, т.е. отладили BAD_table... откуда мы можем знать, что значат все эти таблицы? ;(

andrey
22.01.2018
13:22:20
Да вы правы, моя задача отрисовывается графики в Metabase к базе ещё доступ не получил, отладить пока что сложно

Mike Chuguniy
22.01.2018
15:03:14
есть желание сделать из g?vim-а замену для pgadmin3 (с ограничениями в визуализации при работе в консоле без фреймбуфера)
риторический вопрос: доктор, это лечится?!

Alexey
22.01.2018
15:03:39
зачем?

Darafei
22.01.2018
15:04:40

Mike Chuguniy
22.01.2018
15:04:50
ручонки чешутся. Да и у пгадмин3, насколько я могу судить, проблемы уже при работе с 9.6.

Alexey
22.01.2018
15:05:18

Mike Chuguniy
22.01.2018
15:07:55
а поподробнее? мы скоро апаемся
Народ много жаловался. Причём и здесь в чатике. С 10-й точно проблемы будут, потому что разработка переключилась на пгадмин4.
насчёт 9.6 - это вот на уровне жалоб. А в 10-ке конкретно изменились имена некоторых системных ф-ий.
И тут же были ссылки и материалы, что нужно попатчить, чтобы 3-й пгадмин работал с 10-й.

Anton [Mgn, az09@osm]
22.01.2018
15:09:10
Вот такие функции нужно создать, чтобы pgadmin3 смог спокойно соединиться к PostgreSQL 10:
create function pg_last_xlog_receive_location() returns text as $$ select pg_last_wal_receive_lsn()::text $$ language sql;
create function pg_last_xlog_replay_location() returns text as $$ select pg_last_wal_replay_lsn()::text $$ language sql;
create function pg_is_xlog_replay_paused() returns bool as $$ select pg_is_wal_replay_paused() $$ language sql;

Mike Chuguniy
22.01.2018
15:09:41

Anton [Mgn, az09@osm]
22.01.2018
15:10:23

Alexey
22.01.2018
15:10:49
понятно
спасибо

Yaroslav
22.01.2018
15:32:18

Google

Mike Chuguniy
22.01.2018
15:33:56
Yaroslav это только коннектор. А надо - несколько окон, дерево баз, в некоторых окнах - по несколько табов, ну и всё такое прочее

Илья
22.01.2018
15:39:51
А чем sublime/vscode/atom с плагином для вима не устраивает ?

Mike Chuguniy
22.01.2018
15:42:26

Andrey
22.01.2018
15:42:32

Darafei
22.01.2018
15:42:50
а gvim в консоли?

Mike Chuguniy
22.01.2018
15:43:21

Yaroslav
22.01.2018
15:53:27

Alex
22.01.2018
15:54:32
зачем vim когда есть emacs с sql-mode ? ) в evil режиме конечно

Quet
22.01.2018
15:59:10

Alexey
22.01.2018
16:01:27
emacs always does things correctly! (c)

Aleksandr
22.01.2018
16:17:11

Darafei
22.01.2018
16:18:52
пишешь собаку, выпадает автокомплит, автокомплитишь тычком мыши

Aleksandr
22.01.2018
16:20:22

Anton [Mgn, az09@osm]
22.01.2018
16:23:04
@space1flash с телефона пооффтоплю
просто если у человека нет ника, то по собаке только имя высвечивается

Aleksandr
22.01.2018
16:25:21

Anton [Mgn, az09@osm]
22.01.2018
16:25:59
а еще бывает интересно когда человек пытается некое инкогнито в телеге соблюсти с помощью только ника, а потом к нему обращается тот у кого он в контактах записан полным именем и это полное имя отображается вместо ника ))

Ghost
22.01.2018
17:49:56
Здравствуйте! Только начал знакомство с базами данных. Скачал клиент pgAdmin и как мне с помощью него создать базу данных? И этот клиент нормальный? Или есть лучше?

Александр
22.01.2018
17:53:09
Datagrip
Мне намного удобнее им пользоваться

Google

Александр
22.01.2018
17:54:00
Если работать с самими данными, а не администрирование

Ghost
22.01.2018
17:54:42
Что могли бы посоветовать?

Mykyta
22.01.2018
17:55:08
Выше же сказали датагрип

Vadim
22.01.2018
17:56:33
https://www.pgmodeler.com.br

Alex
22.01.2018
17:57:11
а pgModeler уже не сырой ?

Vadim
22.01.2018
17:57:32
Не идеал но работать можно

Александр
22.01.2018
18:00:11
https://tableplus.io вот еще, на первый взгляд удобно, но я его только устанавливал и минут 10 игрался

Ghost
22.01.2018
18:00:28
Спасибо
А получается всё же, что базу данных я создать не смогу через datagrip? Только приконнектиться ?

Сергей
22.01.2018
18:28:11

Ghost
22.01.2018
18:28:49
Сможешь
А сервер только через консоль?

Сергей
22.01.2018
18:29:16
Что значит сервер
Ну сам инстанс руками

Mike Chuguniy
22.01.2018
18:38:05
Всё остальное в vim-е и так есть, не так ли? ;)
Ну это остальное: а) в плюгинах, которые надо ставить, а не в ядре, и, что меня удивило, sqlutilities, у меня в генту в портежах не было, пришлось быстро-быстро накидать ебилд; :) б) после установки таки надо позаниматься рукоблудием, чтобы получить интерфейс, который хочется.
SQLUtilities - это вот это вот: http://www.vim.org/scripts/script.php?script_id=492

Andrey
22.01.2018
20:11:33

Alex
22.01.2018
21:32:04
Ну это остальное: а) в плюгинах, которые надо ставить, а не в ядре, и, что меня удивило, sqlutilities, у меня в генту в портежах не было, пришлось быстро-быстро накидать ебилд; :) б) после установки таки надо позаниматься рукоблудием, чтобы получить интерфейс, который хочется.
Миша, спецом для тебя люди старались чтобы ты держал руки на парте - https://www.openscg.com/bigsql/pgadmin3/

Mike Chuguniy
23.01.2018
02:43:23
Лёша, держать руки на парте - скучно, грустно и непродуктивно. У соседки под юбкой шариться - куда интереснее. Ну если говорить про за партой :D Но это лирика. У меня вопрос непраздный пгадмин уже умеет в терминале без X-ов?

Алексей
23.01.2018
02:51:38
В терминале без иксов умеет psql

Google

Алексей
23.01.2018
02:51:50
и pgcli

Mike Chuguniy
23.01.2018
02:53:54
Я хочу в терминале дерево баз/объектов баз, несколько окон, в которых по несколько табов. Если кто-то считает, что я хочу странного - я с тем совершенно прав.

Алексей
23.01.2018
02:54:50
Дерево в терминале... Действительно, странно

Ryzhikov
23.01.2018
05:54:44
tmux for tabs
or use emacs or vim ;)

Baira
23.01.2018
06:00:38
#вакансия #Москва #mangotelecom #postgreSQL
Манго Телеком - лидер на рынке Виртуальных АТС, приглашает в свою команду разработчика баз данных Postgres.
Требования :
-высшее техническое образование
-опыт работы программистом баз данных под СУБД Postgres или Oracle от 2-х лет
-знание SQL, Pl/pgSQL, Pl/SQL
- участие в разработке высоконагруженных систем
Задачи:
- написание модификации и оптимизация бизнес логики на уровне БД
- оптимизация существующих программных модулей
Условия :
Белая заработная плата + премии( вилка до 220)
Гибкий график работы
Профессиональный и карьерный рост
Бесплатные завтраки, фрукты, чай, кофе
ДМС
Английский язык
Офис - м.Калужская, 5 мин ходьбы
За подробностями в личку либо присылайте резюме - b.blinova@mangotele.com

Alex
23.01.2018
06:07:01

loki
23.01.2018
06:37:30
o_O на дедики иксы ставить и цеплятся по vnc? порноолимпиада среди нешколоты

Kolunchik
23.01.2018
06:38:40
adminer вроде как умеет postgres, хотя он конечно сам по себе не шибко удобен.

Darafei
23.01.2018
07:47:40

loki
23.01.2018
07:48:57
iotop через sshfs o_O

Mike Chuguniy
23.01.2018
07:52:27
sshfs же
Я еще про ssh-туннели знаю. Что не отменят того факта, что на всякое хитрое отверстие найдётся кол с винтом. А на кол с винтом найдется отверстие с лабиринтом. А собранная на плюгинах vim-оболочка - её в куда угодно протащить можно. за исключением случаев, когда какое-нибудь нано является редактором по-умолчанию, а наличие других зарублено на корню службой безопасности

Kirill
23.01.2018
07:55:31
Проблема. Запрос "лезет" во все партиции, если обращаться к родительской таблице через JOIN:
https://wiki.postgresql.org/wiki/Join_optimization_for_inheritance_tables (не работает)
https://stackoverflow.com/questions/17805077/postgresql-partitioning-with-joined-table-partition-constraint-not-used-in-que
@funbringer, при разработке pg_pathman Вы не пробовали решать ее, есть ли обсуждения на эту тему?

Dmitry
23.01.2018
07:59:41

Kirill
23.01.2018
08:02:40

Dmitry
23.01.2018
08:05:24
Для join партицированной и обычной таблицы в pg_pathman есть специальный узел плана (RuntimeAppend), который для каждой строки из левой таблицы выбирает соответствующую партицию. Вообще говоря, работает это и для join двух партицированных таблиц, но какой-то специальной оптимизации для этого случая мы не делали.