Rules listing error

Поиск
Список
Период
Сортировка
От Tomasz Rybak
Тема Rules listing error
Дата
Msg-id 1126107778.4589.8.camel@localhost.localdomain
обсуждение исходный текст
Ответы Re: Rules listing error
Список pgadmin-hackers
Is rules system in pgAdmin complete?
Here's script I used to create tables
(it's few tables of more complicated system).

CREATE DATABASE c OWNER postgres ENCODING 'UNICODE';
\connect 'c'

CREATE TABLE ta (
    id1 SERIAL NOT NULL,
    id2 INTEGER NOT NULL,
    id3 INTEGER NOT NULL,
    d TIMESTAMP WITH TIME ZONE NOT NULL,
    a CHARACTER VARYING(128) NOT NULL,
    b CHARACTER VARYING(3) NOT NULL,
    c TEXT NOT NULL,

    CONSTRAINT ta_pkey PRIMARY KEY (id1)
);

CREATE TABLE tb (
    id1 INTEGER NOT NULL,
    id2 INTEGER NOT NULL,
    id3 INTEGER NOT NULL,
    d TIMESTAMP WITH TIME ZONE NOT NULL,
    a CHARACTER VARYING(128) NOT NULL,
    b CHARACTER VARYING(3) NOT NULL,
    c TEXT NOT NULL,

    CONSTRAINT tb_pkey PRIMARY KEY (id1)
);

CREATE TABLE tc (
    id1 INTEGER NOT NULL,
    id2 INTEGER NOT NULL,
    id3 INTEGER NOT NULL,
    d TIMESTAMP WITH TIME ZONE NOT NULL,
    a TIMESTAMP WITH TIME ZONE NOT NULL,
    b TEXT NOT NULL,
    c INTEGER NOT NULL,

    CONSTRAINT tc_pkey PRIMARY KEY (id1)
);

CREATE TABLE td (
    id1 INTEGER UNIQUE,
    id2 INTEGER NOT NULL,
    id3 INTEGER NOT NULL,
    d TIMESTAMP WITH TIME ZONE NOT NULL,
    a INTEGER NOT NULL,
    b INTEGER NOT NULL CHECK (b > 0),

    CONSTRAINT td_pkey PRIMARY KEY (id2, id3)
);

CREATE RULE update_ta AS ON UPDATE TO ta
DO (UPDATE td SET
id1 = NEW.id1, d = NEW.d
WHERE
id2 = NEW.id2 AND id3 = NEW.id3
AND id1 = NEW.id1);

CREATE RULE delete_ta AS ON DELETE TO ta
DO (UPDATE td SET a = 1
WHERE
id2 = OLD.id2 AND id3 = OLD.id3
AND id1 = OLD.id1);


CREATE RULE insert_tb AS ON INSERT TO tb
DO (UPDATE td SET
a = 3
WHERE
id2 = NEW.id2 AND id2 = NEW.id2
AND id1 = NEW.id1);

CREATE RULE update_tb AS ON UPDATE TO tb
DO (UPDATE td SET
id1 = NEW.id1, d = NEW.d
WHERE
id2 = NEW.id2 AND id3 = NEW.id3
AND id1 = NEW.id1);

CREATE RULE delete_tb AS ON DELETE TO tb
DO (UPDATE td SET
id1 = (SELECT id1 FROM tc
WHERE
id2 = OLD.id2 AND id3 = OLD.id3
ORDER BY id1 DESC LIMIT 1),
b = b - 1
WHERE
id2 = OLD.id2 AND id3 = OLD.id3
AND id1 = OLD.id1);


I run this script to create database on PG 8.0.3
(from Debian Sid 8.0.3-14) and on PG 8.1
(from Debian Experimental 8.0+8.1beta-1).

When I check created database using pgAdmin rev 4427,
it doesn't show any of existing rules (just created ones).
It shows triggers; but no rules.

What's going on?

--
Tomasz Rybak <bogomips@post.pl>


В списке pgadmin-hackers по дате отправления:

Предыдущее
От: Tomasz Rybak
Дата:
Сообщение: Cannot compile 4431
Следующее
От: Diego Gil
Дата:
Сообщение: Re: Cannot compile 4431