BUG #13767: EXECUTE querytext USING value1, value2, value3 (Edge case?)
От | needthistool@gmail.com |
---|---|
Тема | BUG #13767: EXECUTE querytext USING value1, value2, value3 (Edge case?) |
Дата | |
Msg-id | 20151110173935.2577.7423@wrigleys.postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #13767: EXECUTE querytext USING value1, value2, value3
(Edge case?)
|
Список | 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 по дате отправления: