Excerpts from Alvaro Herrera's message of lun nov 29 18:00:55 -0300 2010:
> This would require some additions in ri_FetchConstraintInfo(). Right
> now it does a single syscache lookup and then extracts a bunch of
> attributes from there. If we're going to implement as you suggest, we'd
> have to:
>
> 1. add a relcache lookup in there, and extract column names involved in
> the FK.
>
> 2. store those column names in RI_ConstraintInfo; currently it's about
> 68 bytes, it'd grow to ~2116 bytes (current size plus RI_MAX_NUMKEYS * NAMEDATALEN).
>
> Additionally, we'd have to expend some more cycles at the parse analysis
> phase (of the "FOR SHARE OF x.col1, x.col2" query) to verify that those
> columns belong into some non-partial unique index.
Hmm, actually there's already a relcache lookup when we execute whatever
action the FK needs to execute, so maybe we don't need to do any of
this.
--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support