Skip site navigation (1) Skip section navigation (2)

Inheritance of functions.

From: Andrzej Mazurkiewicz <andrzej(dot)mazurkiewicz(at)polkomtel(dot)com(dot)pl>
To: "'pgsql-bugs(at)hub(dot)org'" <pgsql-bugs(at)hub(dot)org>
Subject: Inheritance of functions.
Date: 1999-12-21 13:20:49
Message-ID: 13288F4408ADD11186FF0060B06A431303648B95@MSGWAW1 (view raw or flat)
Thread:
Lists: pgsql-bugs
Hello.
I have not got any help from HACKERS, SQL and GENERAL groups so I send my
problem to you. Could you send the clear indication whether lack of
inheritance of functions is a bug. If it is not, I would appreciate ANY
example showing inheritance of functions in postgres.
Thanks,
Regards,
Andrzej Mazurkiewicz


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. Can anybody send me an example of a function that will be
inherited by inherited table? I. e.
create table A (
.
.
);

create function F ...

create table B (
..
) inherits (A);

Now I assume that I can somehow use function F on table B 

The specific example is given below !!

Thank you, 
Regards,
Andrzej Mazurkiewicz


-----Original Message-----
From:	Andrzej Mazurkiewicz 
Sent:	27 paYdziernika 1999 18:09
To:	'pgsql-general(at)hub(dot)org'
Subject:	RE: [GENERAL] FW: inheritance of functions

Hello.
Here is an example of my problem:

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=> 

I am looking for working example !!!!!

Regards,
Andrzej Mazurkiewicz
	-----Original Message-----


pgsql-bugs by date

Next:From: aaDate: 1999-12-25 03:18:00
Subject:
Previous:From: Karl DeBisschopDate: 1999-12-21 13:16:11
Subject: Cannot index large table in 6.5.3 on Linux

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group