Re: [GENERAL] Constraint using a SQL function executed during SELECT
"Cyril B." writes: > On 07/19/2016 03:51 PM, Jim Nasby wrote: >> In this example, you should be able to avoid that by setting >> constraint_exclusion=off. > Sorry I forgot to mention I had already tried that, to no avail. Yeah, constraint_exclusion won't help, because this function isn't in a CHECK constraint. It's in an index definition, and the planner will always examine those. My first reaction on looking at the example was that this particular function shouldn't be a candidate for inlining, because it's not just "SELECT expression". But I see that inline_function() runs parse analysis before it checks for presence of a FROM clause, and that's when the failure happens. Seems like it might be worthwhile to apply some of those checks on the raw parsetree so that we could skip parse analysis when there are obvious showstoppers like a FROM clause. This wouldn't constitute a general solution to your problem, of course, but it would save some useless cycles in planning. regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
Re: [GENERAL] Constraint using a SQL function executed during SELECT
On 07/19/2016 03:51 PM, Jim Nasby wrote: In this example, you should be able to avoid that by setting constraint_exclusion=off. Sorry I forgot to mention I had already tried that, to no avail. -- Cyril B. -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
Re: [GENERAL] Constraint using a SQL function executed during SELECT
On 7/19/16 7:43 AM, Cyril B. wrote: Hello, Is there a way to execute a SELECT on a table having a constraint that uses a non-working SQL function? ... ALTER TABLE ONLY t1 ADD CONSTRAINT c EXCLUDE (id WITH =) WHERE ((f(id) IS NOT TRUE)); ... ERROR: relation "rename_me.t2" does not exist ... CONTEXT: SQL function "f" during inlining In this example, you should be able to avoid that by setting constraint_exclusion=off. -- Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX Experts in Analytics, Data Architecture and PostgreSQL Data in Trouble? Get it in Treble! http://BlueTreble.com 855-TREBLE2 (855-873-2532) mobile: 512-569-9461 -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general