pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: sramsay@uga.edu
To: pgsql-sql@postgresql.org
Subject: functions in WHERE clause
Date: Sun, 5 Mar 2006 10:16:52 -0500
Message-ID: <20060305151652.GA14216@cantor.english.uga.edu> (raw)


Hi All,

I've got one of these:

SELECT * from some_table WHERE
test_for_equality_is_syntactically_ugly;

What I'd like to do is encapsulate the WHERE clause in a function,
but I'm having no end of trouble.

The WHERE clause expects the function to return a boolean value.  I
can certainly return a boolean value from a function, but here it
seems to me that what the function really has to do is return a 
set of boolean values -- the test in the WHERE clause sometimes
evaluates to true and sometimes evaluates to false, and that is in
turn used to constrain the query results.   But you can't return a
set of anything (I don't think) in a WHERE clause, because it seems
to want a singular boolean value.

Is it possible to do what I'm trying to do?  I've written a few
simple sql and pl/pgsql functions over the years, but I'm no expert.

Perhaps I'm barking up the wrong tree here.  It seems like what I
really need is a way to have some kind of rewrite rule (e.g.  when
you see "foo(x)" substitute ugly string).  Sort of like a Lisp macro
;)

Steve

-- 
Stephen Ramsay
Assistant Professor
Department of English
University of Georgia
email: sramsay@uga.edu
web: http://cantor.english.uga.edu/
PGP Public Key ID: 0xA38D7B11



view thread (11+ messages)  latest in thread

Message-ID: <20060305151652.GA14216@cantor.english.uga.edu>
Permalink:  ../20060305151652.GA14216@cantor.english.uga.edu/
Also on:    postgresql.org/message-id/20060305151652.GA14216@cantor.english.uga.edu

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: sramsay@uga.edu
  Subject: Re: functions in WHERE clause
  In-Reply-To: <20060305151652.GA14216@cantor.english.uga.edu>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox