
Yaroslav
24.07.2018
19:00:38

Ketzal
24.07.2018
19:01:05
наверное только функцию заюзать
чувак хочет динамически указывать столбец с данными которые хочет выбрать я так понял

Alex
24.07.2018
19:01:52
В колонках вместо list_price взять значение list_price из таблицы list_prices тоесть 10 , и.т.д

Google

Alex
24.07.2018
19:02:24

Ketzal
24.07.2018
19:02:25
есть еще do, чтобы не создавать функции, но он вроде не умеет возвращать данные
а execute внутри?

Alex
24.07.2018
19:03:20

Yaroslav
24.07.2018
19:07:33

Alex
24.07.2018
19:08:05
спасибо сейчас разберусь как работает
Там есть но я думал сделать динамически ,но Ярослав предложил вариант получше

Yaroslav
24.07.2018
19:17:31
спасибо сейчас разберусь как работает
Но если вам нужен именно динамический SQL...
Как бы вы его генерировали, если бы были произвольные (неизвестные) поля?
(Т.е., например, сотни полей в list_price.)
Наверное, проишлось бы всё равно генерировать что-то вроде:
SELECT
CASE test.list_id
WHEN 'list_price' THEN list_prices.list_price
WHEN 'list_price2' THEN list_prices.list_price2
...
END
FROM test
JOIN list_prices
ON list_prices.id = test.list_id;
——
Интересный у вас архитектор, короче говоря. ;)

Alex
24.07.2018
19:20:31
Мы используем ERP Odoo там вот такая архитектура подсчета скидки цен на товары. Но там делается на стороне питона , а меня попросили сделать на стороне базы. Вот и мучаюсь пока програмисты изменят архитектуру подсчета

Yaroslav
24.07.2018
19:20:37
Т.е. вам просто повезло, что все эти поля одного базового типа (numeric), а то было бы "весело".

Alex
24.07.2018
19:23:02

Google

Alex
24.07.2018
19:24:45
я надеюсь в 9.2 он есть ))

Yaroslav
24.07.2018
19:24:52

Alex
24.07.2018
19:27:03
О. Нет. :(
Вроде есть https://www.postgresql.org/docs/9.2/static/functions-json.html

Yaroslav
24.07.2018
19:27:06
я надеюсь в 9.2 он есть ))
Вы, кстати, не говорили своим коллегам, что вы сидите на версии, которая уже EOL (мне даже помнится, что в ней есть critical bugs, и исправлять их уже никто не будет)?

Alex
24.07.2018
19:27:41
Говорил но у них принцип работает не трогай , я не раз говорил им
В основном все перевел на новые работают в кластере патрони. Этот ни как не могу

Yaroslav
24.07.2018
19:28:52
Т.е. я не вижу ->> в документации 9.2. Могу ошибаться, конечно.
Если действительно нет, всё-таки остаётся вариант с dynamic SQL... и, может быть, hstore (но это расширение).

Alex
24.07.2018
19:32:17
8 вариантов WHEN понадобится всего :D

Yaroslav
24.07.2018
19:33:48

Alex
24.07.2018
19:34:11

Yaroslav
24.07.2018
19:36:36
Да временное
Ну и "расписать" те поля, которые есть сейчас, типа:
SELECT t.*, CASE t.column_name
WHEN 'list_price' then lp.list_price
WHEN 'list_price2' then lp.list_price2
WHEN 'list_price3' then lp.list_price3
END AS some_price
FROM test AS t
JOIN list_prices AS lp
ON lp.id = t.list_id
Да и сойдёт... ;)

Alex
24.07.2018
19:37:06

Vladimir
24.07.2018
19:46:00

Yaroslav
24.07.2018
22:07:54
Я просто оставлю это здесь:
<RhodiumToad> I have code for inlining CTEs. I haven't posted it because it was part of someone else's project, but I could dust it off
:)

Anton
25.07.2018
01:57:04

Алексей
25.07.2018
05:14:25
navicat

Anton [Mgn, az09@osm]
25.07.2018
06:13:34

Google

Anton [Mgn, az09@osm]
25.07.2018
06:13:36
вот такого бы бота найти, который среднюю галку умеет "нажимать"

Vladimir
25.07.2018
07:11:13
Ребят, в функции notice иногда выдаёт перед собой Context.
Можно ли как то отключить вывод Context?

Mike Chuguniy
25.07.2018
08:00:41
DBeaver, DataGrip (но этот ещё молодой, со всеми вытекающими в плане функциональности), EMS...
navicat
Оно уже научилось в git?
ЗЫ. EMS тоже в гит не умеет...

Anton [Mgn, az09@osm]
25.07.2018
08:02:13
нет, просто с сайта пакет взял
а дальше оно уже само обновляется
хотя возможно версию с мтпрокси брал с гитхаба

Yaroslav
25.07.2018
08:08:00
psql

Vladimir
25.07.2018
08:15:22
Ребят, а plpgsql может взаимодействовать с ОС. Выполнять bash и тд?

Ildar
25.07.2018
08:27:42

Ilia
25.07.2018
08:27:50

Vladimir
25.07.2018
08:32:28
Главное , осознать, занафига.
Python понятно
Исследую возможности)
Copy например может создать /перезаписать или считать файл
Потенциально можно куда-то залезть
Вот и спрашиваю у гуру)

Yaroslav
25.07.2018
08:33:05

Anatoly
25.07.2018
08:36:40
мы примерно так делаем внутри процедуры
CREATE TEMPORARY TABLE copy_output_tt (tt_id serial PRIMARY KEY NOT NULL, command_output text );
COPY copy_output_tt (command_output) FROM PROGRAM 'echo 1111';

Admin
ERROR: S client not available

Anatoly
25.07.2018
08:37:21
нас не 1111 интересует, конечно же) и процедура от postgres выполняется по крону.

Ilia
25.07.2018
08:39:54

Vladimir
25.07.2018
08:48:17

Ivan
25.07.2018
09:46:02
Добрый день всем.
Такой вопрос - есть табличка и вьюшка на её основе. В одной транзакции
- insert строки в таблицу
- select из view - ничего
- select из таблицы - строчка видна
- select из view - строчка видна
это нормально?

Google

Yaroslav
25.07.2018
10:04:01

Ivan
25.07.2018
10:08:18
сейчас буду делать маленькое репро

Yaroslav
25.07.2018
10:13:07

Ivan
25.07.2018
10:23:10
там всё очень просто с точки зрения запросов - на минимальном примере не повторяется - пойду добавлять в пример ORM, но тогда это уже будет не сюда))

Yaroslav
25.07.2018
10:30:46

Ivan
25.07.2018
10:31:38
нашли причину - в ОРМе было дело (прошу не банить)) )
метод save не отправлял реально данные в базу, поэтому метод count() на ОРМ-классе для вьюшки ничего не возвращал, потом count() на ОРМ-классе для таблицы отправлял таки данные в базу (ну норм - чтобы посчитать сколько всего надо сначала надо записать то, что у нас в очереди) и после этого count() на ОМР-классе для вьюшки видел данные


Владислав
25.07.2018
15:17:16
Всем привет!
Подскажите пожалуйста по pgloader. Переношу с помощью него бд(mysql) одного древнего сайта и по ходу возникла проблема: значения поля blob(mysql) почему-то изменияется и в bytea(postgres) оказывается какой-то трэш, например - "Название" превращается в "\320\220\320\262\321\202\320\276\321\200".
Подскажите пожалуйста, что может быть не так?
Файл настроек:
"""
LOAD DATABASE
FROM mysql://***
INTO pgsql://***
WITH include drop, create tables, no truncate,
create indexes, reset sequences, foreign keys
CAST
type blob
TO bytea
drop typemod
using byte-vector-to-bytea;
"""
Пробовал с CAST и без - на результат не влияет
З.Ы.: сижу над этим уже несколько дней :/

Fedor
25.07.2018
15:21:58
Похоже на кодировку.
В блобе значения из русских букв ?

Gennady
25.07.2018
15:26:48
забавно
select e'\320\220\320\262\321\202\320\276\321\200'::text

Oleg
25.07.2018
15:28:38
print (b'\320\220\320\262\321\202\320\276\321\200'.decode('utf8'))

Владислав
25.07.2018
15:30:30

Gennady
25.07.2018
15:39:30
CAST
type blob
TO text
не решает вопрос ?

Владислав
25.07.2018
15:49:22

Craig
26.07.2018
04:10:39
привет всем
хочу поставить
CREATE EXTENSION pldbgapi;
на 9.6
делаю по феншую https://gist.github.com/jhngrant/c1787346fcb4b0e3001a

Google

Craig
26.07.2018
04:11:20
ругается вот тут