Архив

Архив раздела ‘PostgreSQL’

Postgres: разное

Изменение уровня дебага в консоли:
SET client_min_messages TO DEBUG;

Categories: PostgreSQL Tags: , , ,

Полнотекстовый поиск в postgresql

19 ноября 2010 Нет комментариев
Categories: PostgreSQL Tags: , ,

Postgres: логирование изменений с помощью триггеров

11 ноября 2010 Нет комментариев

Тема описывающая способы логирования

Categories: PostgreSQL Tags: , ,

Postgres 8.4 + FreeBSD 8.x

4 октября 2010 Нет комментариев

Для увеличения максимального к-ва коннектов, осбслуживаемых постгресом:

sysctl.conf

kern.ipc.shmmax=2147483648
kern.ipc.shmall=2097152

loader.conf

kern.ipc.semmni=256
kern.ipc.semmns=32000
kern.ipc.semmnu=256

postgresql.conf

max_connections = 250

Categories: PostgreSQL Tags: , ,

Postgres: получение всех CONSTRAINTS

30 сентября 2010 Нет комментариев

SELECT tc.constraint_name,
tc.constraint_type,
tc.table_name,
kcu.column_name,
tc.is_deferrable,
tc.initially_deferred,
rc.match_option AS match_type,
rc.update_rule AS on_update,
rc.delete_rule AS on_delete,
ccu.table_name AS references_table,
ccu.column_name AS references_field
FROM information_schema.table_constraints tc
LEFT JOIN information_schema.key_column_usage kcu
ON tc.constraint_catalog = kcu.constraint_catalog
AND tc.constraint_schema = kcu.constraint_schema
AND tc.constraint_name = kcu.constraint_name
LEFT JOIN information_schema.referential_constraints rc
ON tc.constraint_catalog = rc.constraint_catalog
AND tc.constraint_schema = rc.constraint_schema
AND tc.constraint_name = rc.constraint_name
LEFT JOIN information_schema.constraint_column_usage ccu
ON rc.unique_constraint_catalog = ccu.constraint_catalog
AND rc.unique_constraint_schema = ccu.constraint_schema
AND rc.unique_constraint_name = ccu.constraint_name

Categories: PostgreSQL Tags:

PostgreSQL 9.0

20 сентября 2010 Нет комментариев
Categories: PostgreSQL Tags:

PosrgreSQL: Заметки

17 февраля 2010 Нет комментариев

Хорошие заметки по postgres.

Массивы:

Преобразование массивов:
Оригинал тут

select client_id, array_agg(order_id) from simple_table group by client_id;
select * from explode_array(array[1,2,3,4]);

Парсинг массивов postgres в php:
http://dklab.ru/lib/DB_Pgsql_Type/

Служебная информация:

Описание схемы:
http://www.postgresql.org/docs/8.4/interactive/information-schema.html

Выбор информации обо всех таблицах:
SELECT c.table_schema, c.table_name,
array_agg(CAST(c.column_name AS text)) as col_names,
array_agg(DISTINCT CAST(c.data_type AS text)) As dat_types
FROM information_schema.columns AS c
GROUP BY c.table_schema, c.table_name;

Либа для автоматических тестов PGUNIT:
http://dklab.ru/lib/dklab_pgunit/

Бэкапы

Хорошая статья про ON-LINE backup http://www.opennet.ru/base/sys/postgresql_online_backup.txt.html
Для того, чтобы сделать простой бэкап в формате SQL:
pg_dump --inserts -U pavel -W database_name > /home/pavel/backup.sql