BUG #13767: EXECUTE querytext USING value1, value2, value3 (Edge case?)

From: needthistool(at)gmail(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #13767: EXECUTE querytext USING value1, value2, value3 (Edge case?)
Date: 2015-11-10 17:39:35
Message-ID: 20151110173935.2577.7423@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 13767
Logged by: Seldom
Email address: needthistool(at)gmail(dot)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;
$$;

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message David G. Johnston 2015-11-10 20:51:48 Re: BUG #13767: EXECUTE querytext USING value1, value2, value3 (Edge case?)
Previous Message E. Sambo 2015-11-10 17:26:47 Re: BUG #13733: ~/.psql_history* corrupted