Re: [SQL] Expr Abbreviations/Functions?

From: Herouth Maoz <herouth(at)oumail(dot)openu(dot)ac(dot)il>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: [SQL] Expr Abbreviations/Functions?
Date: 1999-07-26 10:27:58
Message-ID: l03130302b3c1e5bcad24@[147.233.159.109]
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

At 07:52 +0300 on 26/07/1999, tjk(at)tksoft(dot)com wrote:

> If I recall the original question correctly, the
> "only" real solution would seem to be to define
> a function to search the appropriate fields.

Yes. The original question had a conceptual problem. It wanted to
abbreviate the expression without the name of the table. This was
nonsensical - you can't ask whether id > 3. You can ask whether person.id >
3. Just "id" could be anything in the world. Asking a database to do that
is like asking a person to play a flute in vacuum.

Another problem was that it implied returning a set of rows. This is not
well supported by postgres - and that's a known limitation.

The best thing that can be done at the moment is to have a function that
accepts the strings as parameters and returns a boolean:

CREATE FUNCTION match_three ( text, text, text, text ) RETURNS bool AS '
SELECT (( $1 ~ $4 ) OR ( $2 ~ $4 ) OR ($3 ~ $4))
' LANGUAGE 'sql';

Then it can be used as:

SELECT * FROM table1
WHERE match_three( x1, x2, x3, 'foo' );

Herouth

--
Herouth Maoz, Internet developer.
Open University of Israel - Telem project
http://telem.openu.ac.il/~herutma

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message D'Arcy J.M. Cain 1999-07-26 10:30:57 Re: [SQL] database design SQL prob.
Previous Message Jan Wieck 1999-07-26 09:28:44 Re: [SQL] ERROR: DefineQueryRewrite: rule plan string too big.