@pgsql

Страница 301 из 1062
ros
14.04.2017
13:34:17
категориям не проще присвоить алиасы проиндексировать и брать без тормоза в виде ilike?

Denis
14.04.2017
13:36:44
test=# create table prg(id serial, udt timestamp with time zone not null default now(), adt timestamp with time zone default '-infinity'); CREATE TABLE test=# \d prg Таблица "public.prg" Столбец | Тип | Модификаторы ---------+--------------------------+------------------------------------------- ------- id | integer | NOT NULL DEFAULT nextval('prg_id_seq'::reg class) udt | timestamp with time zone | NOT NULL DEFAULT now() adt | timestamp with time zone | DEFAULT '-infinity'::timestamp with time z one test=# insert into prg (id) values(default); INFO: analyzing "public.prg" INFO: "prg": scanned 1 of 1 pages, containing 1 live rows and 0 dead rows; 1 rows in sample, 1 estimated total rows INFO: analyze "prg" took 0.00 seconds INSERT 0 1 test=# select * from prg; id | udt | adt ----+-------------------------------+----------- 1 | 2017-04-14 13:31:57.906824+00 | -infinity (1 строка)

Darafei
14.04.2017
13:37:16
всем добрый вечер помогите разобраться select category from catalog where category ilike any (array['%чехлы%','%сувенир%','%подарки%','%пленки%','%детские%','%часы%']); должен же выводить все где встречаются эти слова? как сюда умудряется попасть слова вида "Смартфоны" "Телефоны и связь/Apple iPhone"
select 'Телефоны и связь/Apple iPhone' ilike any (array['%чехлы%','%сувенир%','%подарки%','%пленки%','%детские%','%часы%']); ┌──────────┐ │ ?column? │ ├──────────┤ │ f │ └──────────┘ (1 row) Time: 0,747 ms

так что очень странно

Google
Andrew
14.04.2017
13:38:01
сейчас гляну спасиб

категориям не проще присвоить алиасы проиндексировать и брать без тормоза в виде ilike?
их не так много чтоб извращаться да и тормоза в виде ilike тоже не проявляются из-за кол-ва

Алексей
14.04.2017
13:38:54
выходит глюк постгреса

test=# create table prg(id serial, udt timestamp with time zone not null default now(), adt timestamp with time zone default '-infinity'); CREATE TABLE test=# \d prg Таблица "public.prg" Столбец | Тип | Модификаторы ---------+--------------------------+------------------------------------------- ------- id | integer | NOT NULL DEFAULT nextval('prg_id_seq'::reg class) udt | timestamp with time zone | NOT NULL DEFAULT now() adt | timestamp with time zone | DEFAULT '-infinity'::timestamp with time z one test=# insert into prg (id) values(default); INFO: analyzing "public.prg" INFO: "prg": scanned 1 of 1 pages, containing 1 live rows and 0 dead rows; 1 rows in sample, 1 estimated total rows INFO: analyze "prg" took 0.00 seconds INSERT 0 1 test=# select * from prg; id | udt | adt ----+-------------------------------+----------- 1 | 2017-04-14 13:31:57.906824+00 | -infinity (1 строка)

ros
14.04.2017
13:39:24
%ip%

iPhone

Andrew
14.04.2017
13:40:14
%ip%
спасибо

Алексей
14.04.2017
13:42:08
Спасибо большое всем за помощ. Буду пытаться понять что не так с постгресом

ros
14.04.2017
13:42:09
попробуйте полнотекстовый поиск он до слова минус окончание работает будет и точней и быстрей

Darafei
14.04.2017
13:43:37
Sergey
14.04.2017
14:21:13
А что за процесс исполняет commit? wal_writer или сам backend?

drjackild
15.04.2017
10:40:45
Ребят, а подскажите, как мне запихнуть csv в таблицу, если PostgreSQL работает в контейнере?

COPY то не видит файл

Google
Andrey
15.04.2017
10:42:17
Сделать \copy from stdin?

drjackild
15.04.2017
10:44:46
а он поддерживает те же параметры, как и COPY на стороне сервера?

Darafei
15.04.2017
10:44:48
сделать \copy из клиента, запущенного вне контейнера?

drjackild
15.04.2017
10:45:59
пытаюсь загрузить тестовую таблицу, вот команда: COPY land_registry_price_paid_uk FROM 'pp-complete.csv' with (format csv, encoding 'win1252', header false, null '', quote '"', force_null (postcode, saon, paon, street, locality, city, district));

Andrey
15.04.2017
10:46:36
cat file | psql -c "COPY table FROM stdin"

drjackild
15.04.2017
10:47:31
а, уже вроде разобрался, спасибо)

Andrew
15.04.2017
13:04:47
Есть ещё \copy, которая сама файлы открывать умеет, но в итоге тот же from stdin делает...

drjackild
15.04.2017
19:33:24
я в итоге \copy и заюзал

Rinat
17.04.2017
04:49:56
Всем привет. Есть виртуальная машина, которая стоит за NAT. Пытаюсь настроить доступ к базе из вне. listen_addresses = '*' port = 5432 local all all md5 host all all 0.0.0.0/0 trust postgesql9.4, centos7 firewall-cmd —zone=public —permanent —add-port=5432/tcp Подскажите, пожалуйста, куда копать?

Wom
17.04.2017
04:51:26
проброс порта снаружи через нат

Rinat
17.04.2017
04:52:23
Rinat
17.04.2017
04:54:24
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN

Andrey
17.04.2017
04:57:37
не нетстат, а ифконфиг

Кстати, не могу не напомнить: http://www.securitylab.ru/forum/forum23/topic42034/

Rinat
17.04.2017
04:59:47
не нетстат, а ифконфиг
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.88.212 netmask 255.255.255.0 broadcast 192.168.88.255 RX packets 18471 bytes 15342059 (14.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 9031 bytes 1103014 (1.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 1854 bytes 385929 (376.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1854 bytes 385929 (376.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Andrey
17.04.2017
05:00:16
а route?

Rinat
17.04.2017
05:00:35
Destination Gateway Genmask Flags Metric Ref Use Iface default router 0.0.0.0 UG 100 0 0 eth0 192.168.88.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0

Andrey
17.04.2017
05:01:17
Ожидаемо, DNAT работать не будет

нужно либо указать шлюз с DNAT в качестве default gateway, либо настраивать на внутреннем интерфейсе шлюза не только DNAT, но и SNAT

Google
Andrey
17.04.2017
05:02:50
jq? ghjcnbnt

ой, простите

router - это хостнейм шлюза?

Just
17.04.2017
09:15:36
привет всем, а такой вопрос - есть колонка varchar(15) со значениями вида '00013480', '34412424', т.е. нормальные инты, иногда дополненные слева нулями, но 7 знаков, еще там есть такие строки 'xxxxxxxxxxxx'. нужно поменять тип колонки на integer и заменить все строки, которые нельзя конвертнуть нулями. нагуглил это http://stackoverflow.com/questions/10306830/postgres-define-a-default-value-for-cast-failures сделал cast (немного упростить exception часть, потому что иначе ошибка была) create or replace function cast_to_int(text) returns integer as $$ begin -- Note the double casting to avoid infinite recursion. return cast($1::varchar as integer); exception return 0; end; $$ language plpgsql immutable; create cast (text as integer) with function cast_to_int(text); запускаю вот так ALTER TABLE table ALTER COLUMN my_column TYPE integer USING (my_column::text::integer); работает уже часов 6 на таблице в 45 млн, это нормально или можно все таки быстрее сделать?

Dmitry
17.04.2017
09:22:09
А не проще было создать новое поле integer, проапдейтить его, повесить на старую колонку триггер чтобы не прозевать изменения, старую колонку дропнуть, а новую переименовать в старую?

Just
17.04.2017
09:23:25
вот я и не знаю, таки проще (быстрее)?

Dmitry
17.04.2017
09:27:14
Попробуйте на тесте и так и эдак. Увидите, что быстрее.

Just
17.04.2017
09:29:06
а, табличку поменьше типа потестить, хорошая идея, спасибо

Dmitry
17.04.2017
09:31:44
Мы обычно перед такими большими изменениями разворачиваем на тесте из бэкапа прод посвежее и тестим. На проде экспериментировать не наш метод ;)

Egor
17.04.2017
09:32:43
слабаки )

Lulz
17.04.2017
09:33:08
cast(null to timestamp) это нормально? ничего плохого не делаю в мире?)

всем привет

West
17.04.2017
09:33:51
Шалом

Dmitry
17.04.2017
09:41:39
cast(null to timestamp) это нормально? ничего плохого не делаю в мире?)
null всегда null, для любого типа. IMHO конструкция смысла не имеет.

Lulz
17.04.2017
09:42:52
у меня почему-то просто конструкция null не работала(если быть точнее я работаю с node js драйвером pg) ибо мне надо было убрать время которое было в поле

Dmitry
17.04.2017
09:57:05
Наверное, это особенность драйвера. test=# create table t2 (id bigint, dt timestamp); CREATE TABLE test=# insert into t2 values (11, current_timestamp ), (22, current_timestamp ); INSERT 0 2 test=# select * from t2; id | dt ----+---------------------------- 11 | 17/04/2017 12:54:58.565006 22 | 17/04/2017 12:54:58.565006 (2 rows) test=# update t2 set dt=null where id=22; UPDATE 1 test=# select * from t2; id | dt ----+---------------------------- 11 | 17/04/2017 12:54:58.565006 22 | (2 rows)

Lulz
17.04.2017
10:01:01
скорее всего, я тоже что-то задумался, мол а почему нельзя просто null сделать, а конкретики по ошибке нет

Sergey
17.04.2017
10:05:12
Обычно само проходит через некоторое время

Lulz
17.04.2017
10:05:22
оп, тогда пойду чай пить

Dmitry
17.04.2017
10:16:26
База ваша в рестарт ушла.

Google
Lulz
17.04.2017
10:22:19
это надолго? я что-то погуглил, достал инфу мол она будет собирать всю информацию по транзакциями за все время (или это неправда)?

Sergey
17.04.2017
10:24:54
Это докатка с момента последнего успешного checkpoint'а

Игорь
17.04.2017
11:46:46
Привет! Поделитесь, пожалуйста, впечатлениями и особенностями POWA (http://dalibo.github.io/powa/)

Admin
ERROR: S client not available

Alex
17.04.2017
18:29:32
Друзья помогите стартануть pgBouncer он у меня ругается : Лог : https://pastebin.com/RJdqYDz2 Конфиг : https://pastebin.com/JhfKHmfr

pidfile = /var/run/pgbouncer/pgbouncer.pid у меня pgbouncer.pid отсутствует

Mike Chuguniy
17.04.2017
18:31:37
unix socket is in use, cannot continue

Смотрите, что у вас с портами, куда пытается подцепиться баунсер.

netstat -ptln

Alex
17.04.2017
18:33:20
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1382/sshd tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 3397/postgres tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1971/master tcp 0 0 0.0.0.0:6432 0.0.0.0:* LISTEN 3107/pgbouncer

Айтуар
17.04.2017
18:34:41
он у вас уже запущен

только видимо не как сервис, а руками запускали

Alex
17.04.2017
18:36:21
systemctl stop pgbouncer попробовал но он не остонавливает насколько я понимаю

@Aytuar Вы были правы ps -aux | grep pgbouncer и затем kill -9

systemctl start pgbouncer заработало

огромное спасибо всем

Mike Chuguniy
17.04.2017
18:51:46
@alexsdag на для зачем ps? У вас в выводе netstat pid pgbouncer-а был, 3107

И я бы оченно сильно заинтересовался - чем это означенный баунсер был так занят, что к нему пришлось применять -9.

Alex
17.04.2017
18:54:51
Mike Chuguniy старая привычка ps :) -9 применил просто, так как на тестовом сервере

Yura
18.04.2017
08:46:45
Всем привет. У меня есть вопрос по партицированию таблиц. Вот если мы наст или партицирование и указали, например, чтобы зписи с датами до 01.01.2017 попадали в партицию 1, а записи, начиная с 01.01.2017 - в партицию номер 2. И вот мы сначала сделали вставку записи с датой 01.12.2016 - она попала в партицию 1. Что будет с записью, если мы апдейтним ее и укажем дату 01.02.2017. Она самостоятельно переместится в партицию 2 или это надо как-то менеджить?

Google
Yura
18.04.2017
08:49:51
То есть надо писать самому триггер, который удалит из одной партиции и вставит в другую?

И это надо заворачивать в транзакцию?

Philip
18.04.2017
08:51:47
да, надо писать самому. Транзакционную целостность, я подозреваю, в таком случае движок обеспечит.

Айтуар
18.04.2017
08:52:16
Oleg
18.04.2017
08:52:20
и не надо апдейтить записи, от которых зависит партицирование

Айтуар
18.04.2017
08:52:49
и не надо апдейтить записи, от которых зависит партицирование
добавляется триггер на update в каждую партицию

Dmitry
18.04.2017
08:53:18
Это плохой дизайн, если у вас так происходит

Oleg
18.04.2017
08:53:25
ну если там пару сотен лямов, и их проапдетить, что будет?

Sergey
18.04.2017
08:53:52
Эт нормальный дизайн. Есть активные заказы, есть завершенные

Yura
18.04.2017
08:54:01
Хм. А если не написать триггер, то запись просто обновится, останется в прежней партиции. А поиск по ней произойдет, если указывать диапазон дат?

Sergey
18.04.2017
08:54:13
Активные в одном партишене, завершенные в другом

Страница 301 из 1062