From: | Andrzej Mazurkiewicz <andrzej(dot)mazurkiewicz(at)polkomtel(dot)com(dot)pl> |
---|---|
To: | "'pgsql-bugs(at)postgresql(dot)org'" <pgsql-bugs(at)postgresql(dot)org> |
Subject: | inheritance of functions in postgres |
Date: | 2000-01-04 15:27:29 |
Message-ID: | 13288F4408ADD11186FF0060B06A431303648BB2@MSGWAW1 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================
Your name : Andrzej Mazurkiewicz
Your email address : andrzej(dot)mazurkiewicz(at)polkomtel(dot)com(dot)pl
System Configuration
---------------------
Architecture (example: Intel Pentium) : Intel pentium 686
Operating System (example: Linux 2.0.26 ELF) : Linux 2.2.6 (Slackware4.0)
PostgreSQL version (example: PostgreSQL-6.5.2): PostgreSQL-6.5.1
Compiler used (example: gcc 2.8.0) : gcc 2.8.1
Please enter a FULL description of your problem:
------------------------------------------------
In Postgres Users Guide, CREATE TABLE section, the following is stated:
Postgres automatically allows the created table to inherit functions on
tables above (!!!) it in the inheritance hierarchy.
Aside: Inheritance of functions is done according to the
conventions of the Common Lisp Object System (CLOS).
I have tried different constructs but I have not been able to create such a
function.
Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------
ccbslin2:~/lipa$ psql -c "drop database archimp0;" template1
DESTROYDB
ccbslin2:~/lipa$ psql -c "create database archimp0;" template1
CREATEDB
ccbslin2:~/lipa$ psql -f funinh1.sql archimp0
BEGIN WORK;
BEGIN
CREATE TABLE A (
liczba float
);
CREATE
COMMIT WORK;
END
BEGIN WORK;
BEGIN
CREATE FUNCTION suma (A) RETURNS float
AS 'SELECT $1.liczba AS suma;' LANGUAGE 'sql';
CREATE
COMMIT WORK;
END
BEGIN WORK;
BEGIN
CREATE TABLE B (
liczwym float
) INHERITS (A)
;
CREATE
COMMIT WORK;
END
BEGIN WORK;
BEGIN
INSERT INTO A (liczba) VALUES (1.56);
INSERT 71414 1
COMMIT WORK;
END
BEGIN WORK;
BEGIN
INSERT INTO B (liczba, liczwym) VALUES (2.5, 3.2);
INSERT 71415 1
COMMIT WORK;
END
select liczba, suma(A) from A;
liczba|suma
------+----
1.56|1.56
(1 row)
select liczba, suma(A) from A*;
liczba|suma
------+----
1.56|1.56
2.5| 2.5
(2 rows)
[Andrzej Mazurkiewicz] --
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
select liczba, suma(B) from B; [Andrzej Mazurkiewicz] !!!!!!!
ERROR: Functions on sets are not yet supported [Andrzej Mazurkiewicz]
!!!!!!!
[Andrzej Mazurkiewicz] --
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
EOF
----------------------------------------------------------------------------
--------------------------------------
After invoking psql:
archimp0=> select * from pg_proc where proname = 'suma';
proname|proowner|prolang|proisinh|proistrusted|proiscachable|pronargs|proret
set|prorettype|
proargtypes|probyte_pct|properbyte_cpu|propercall_cpu|proouti
n_ratio|prosrc |probin
-------+--------+-------+--------+------------+-------------+--------+------
---+----------+-------------------+-----------+--------------+--------------
+--------------+-------------------------+------
suma | 302| 14|f |t |f | 1|f
| 701|71393 0 0 0 0 0 0 0| 100| 0| 0|
100|SELECT $1.liczba AS suma;|-
(1 row)
archimp0=>
If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2000-01-04 16:12:38 | Re: [BUGS] vacuum analyze corrupts db with larger tuples (< 8k) |
Previous Message | Dirk Lutzebaeck | 2000-01-04 12:27:50 | Re: [BUGS] vacuum analyze corrupts db with larger tuples (< 8k) |