Вопросы по SQL и другие аспекты работы PostgreSQL

warning: Creating default object from empty value in /var/www/victor/web/pgdocs.ru/data/modules/taxonomy/taxonomy.pages.inc on line 33.
Здесь обсуждаются запросы на SQL в PostgreSQL. Оптимизация запросов, реализация, подходы и т.д.

Выдача привелегий для функций

Добрый день.

Имеется несколько таблиц, доступ к которым не выдан ни одной группе. Для доступа к таблицам на просмотр (select) выданы гранты на соответствующие представления (view). Наполнение таблиц реализовано через вызовы соответствующих функций, доступ к которым (execute) выдан соответствующим группам.
При вызове функции возникает ошибка, что мол доступ запрещён и выводит кусок текста, где выполняется вставка в таблицу.

while

Здравствуйте,

Есть таблица
id | parent_id | time
--------------------------
1 | 0 | 01.06.2009
2 | 1 | 10.06.2009
3 | 2 | 20.06.2009
4 | 3 | 30.06.2009

где, id - PK, parent_id - это родитель, ешьу - это время создания

Видно. что у ид=3, родитель 2 (time = 10.06.2009 ) и так сказать прародитель я вляется ид=1.
И будем считать, что у ид=4, прародитель 1.

Необходимо создать функцию, которая бы находила прародителя.

К сожалению, я не знаю как строится цикл while. Подскажите синтаксис.

Запрос, минуя триггеры

Суть состоит в том, что бы сделать SQL запрос в контесте процедуры PL/pgSQL, но при этом игнорировались триггеры.
Куда копать ?

Переезд 8.1 -> 8.4

Имеется сервер под RHEL5, на котором Postgres-8.1. Компания хочет переехать на 8.4 или хотя бы 8.3...

Производительность PL/pgSQL , PL/Tcl, PL/Perl, PL/Python

Есть ли ощутимая разница в производительности между разными встроенными языками PostgreSQL и с чем это связанно ?

REFERENCES наоборот ?

есть таблица meta:

CREATE TABLE meta (
  id serial NOT NULL PRIMARY KEY,
  title varchar(256) NOT NULL,
  description text NOT NULL,
  keywords text NOT NULL
);

а также products:

CREATE TABLE products (
  id serial NOT NULL PRIMARY KEY,
  title varchar(100) NOT NULL,
  content text NOT NULL,
  price float NOT NULL,
  meta_id int NOT NULL
);

Таблица meta используется не только products но и другими таблицами.
Для каждой записи в products будет соотвествовать одна запись в meta.

Внимание вопрос :)

PostgreSQL8.3:Как сделать чтобы у пользователя совсем не было прав ни на что, кроме SELECT одной таблицы?

Я только начал возиться с PostgreSQL, но не улавливаю очень важных тонкостей.

Есть у меня в базе данных несколько таблиц, в которые добавляются данные допустим супер-юзером. И я хочу создать пользователя guest который может их читать данные только из одной таблицы data, то есть делать SELECT из этой таблицы и больше ничего.

Что я делаю сейчас.

-- создание пользователя guest
CREATE USER guest WITH PASSWORD '1234' NOCREATEDB NOCREATEUSER;
-- отбираем права на всё у пользователя guest
REVOKE ALL PRIVILEGES ON DATABASE database FROM guest;

Получение файлов из PostgreSQL

Здравствуйте.
У меня такой вопрос: можно ли как-нибудь вытянуть файлы, хранящиеся в PostgreSQL, через sql? Или только командами типа pg_lo_open/pg_lo_read из PHP?
Вообще я хотела получить файлы через удаленные запросы к linked serverу из MSSQL. Все остальные данные, кроме файлов, я вытащить могу. Для linked serverа указан драйвер PostgreSQL ANSI.
Спасибо.

array -> table как?

Например, enum_range() возвращает одну строку с массивом типа:
{'Yes','No'}. А я хочу конвертировать этот результат в две строки:
Yes
No

Без этого использовать тип enum и массивы вообще - не очень удобно.

Не подскажете типовое решение этой задачи?

Собранный материал

Back to top

(С) Виктор Вислобоков, 2008-2023