I need to enumerate the constraints on any given column in a table, so
I'm examining pg_constraint to get the relevant information.  The
conkey array contains a list of constrained columns, and although I am
able to check conkey[1] for constraints on a single column, I would
like to properly handle multi-column constraints.

How do I determine the size of the conkey array?  I haven't found any
field that looks like it contains the number of values in conkey.  Do
I have to check each element of the array sequentially, until I get a
NULL value from one of them?  (Section 5.12 of the User's Guide seems
to forbid this: "A limitation of the present array implementation is
that individual elements of an array cannot be SQL null values.")
Moreover, that method doesn't give me a nice way of selecting all
constraints on a specific column, as I would have to write clauses
like this:

... WHERE conkey[1] = blah OR conkey[2] = blah OR conkey[3] = blah OR
conkey[4] = blah ...

Can somone offer a better way?


---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html

Reply via email to