BUG #13767: EXECUTE querytext USING value1, value2, value3 (Edge case?) - Mailing list pgsql-bugs

From needthistool@gmail.com
Subject BUG #13767: EXECUTE querytext USING value1, value2, value3 (Edge case?)
Date
Msg-id 20151110173935.2577.7423@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #13767: EXECUTE querytext USING value1, value2, value3 (Edge case?)  ("David G. Johnston" <david.g.johnston@gmail.com>)
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      13767
Logged by:          Seldom
Email address:      needthistool@gmail.com
PostgreSQL version: 9.2.14
Operating system:   Linux 4.1.10-17.31.amzn1.x86_64 #1 (~RHEL 4.8.3-9)
Description:

-- Attempt to run the following on any database, no setup necessary.
-- Creating relations with the correct names etc. should not be needed,
-- as the error occurs before the system has a chance to find any relations
absent.

-- The code below fails *in an unexpected way* because no substitution
appears to take place.
-- The correct behavior would be to throw an error stating that only INSERT,
UPDATE, DELETE,
-- and SELECT (DML) statements should be used in combination with the
EXECUTE ... USING construct,
-- perhaps recommending that FORMAT function be used instead.

--
-- ERROR:  syntax error at or near "$1"
-- LINE 3:    special_constraint_trigger($1,$2,$3);
--                                       ^
-- SQL state: 42601
-- Context: PL/pgSQL function inline_code_block line 11 at EXECUTE
statement
--

DO LANGUAGE plpgsql $$
DECLARE
    -- simulated parameters:
    referencing_table TEXT = 'the_great_referencer';
    referencing_column TEXT = 'fk_field';
    referenced_column TEXT = 'measurement_id';
    -- :simulated parameters

BEGIN
    EXECUTE 'CREATE CONSTRAINT TRIGGER except_if_changes_break_references_77
AFTER UPDATE OR DELETE ON measurement_unit
             DEFERRABLE INITIALLY DEFERRED FOR EACH ROW EXECUTE PROCEDURE
         special_constraint_trigger($1,$2,$3);'
        USING referenced_column,referencing_table, referencing_column;

END;
$$;

pgsql-bugs by date:

Previous
From: "E. Sambo"
Date:
Subject: Re: BUG #13733: ~/.psql_history* corrupted
Next
From: "David G. Johnston"
Date:
Subject: Re: BUG #13767: EXECUTE querytext USING value1, value2, value3 (Edge case?)