Sam, Thanks for thinking along.
The thing is that a SINGLE constraint might apply to MULTIPLE fields;
therefore it seems best to build a set of key/value pairs... Multiple
doesComply()s won't do the job :(

BY THE WAY:
I came to think of another option: putting additional columns (that is:
addittional to the default set of fields) in xml, in a column that is part
of row (=object) it belongs to.
Any body has done so before? Any body has experience with XML schema
validation within PostgreSQL?

Cheerz,

Rob

2009/9/24 Sam Mason <s...@samason.me.uk>

> On Thu, Sep 24, 2009 at 09:23:35PM +0200, Rob Marjot wrote:
> > SELECT doesComply('relationname', keyValues.*) FROM (VALUES('col1',
> > CAST(col1 AS TEXT)), VALUES('col2', CAST(col2 AS TEXT))) AS
> > keyValues(the_key, the_value);
> >
> > The function "doesComply()" will then process the CONSTRAINTS table and
> > raise an Error if the new / updated row does not fit...
>
> I'd have a set of doesComply functions, the first two parameters
> as you have them but overload a set to support different datatypes
> specifically.  Something like:
>
>  CREATE FUNCTION doesComply(_rel TEXT, _key TEXT, _val INT) ...
>  CREATE FUNCTION doesComply(_rel TEXT, _key TEXT, _val DATE) ...
>  CREATE FUNCTION doesComply(_rel TEXT, _key TEXT, _val TEXT) ...
>  CREATE FUNCTION doesComply(_rel TEXT, _key TEXT, _val NUMERIC) ...
>
> And then have a set of "attribute" tables (one for each datatype) to
> store the actual values in.  At least PG can do some type checking for
> you that way.  Either that, or just leave them all as text to text
> mappings in the database and only attempt to type things out in the
> client code.
>
> Not sure why you're doing the VALUES contortions as well, why not just:
>
>  SELECT doesComply('relationname', 'col1', col2);
>
> ?
>
> --
>  Sam  http://samason.me.uk/
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

Reply via email to