P\xE5 onsdag 11. mai 2011 kl 11:30:51 skrev Szymon Guz <mabewlun@gmail.com>:
On 11 May 2011 11:01, Andreas Joseph Krogh wrote:
P\xE5 onsdag 11. mai 2011 kl 10:56:19 skrev <tv@fuzzy.cz>:
Hi,
I was trying to create a trigger with parameters. I've found a potential
bug
when the param is boolean.
Here is code replicating the bug:
CREATE TABLE x(x TEXT);
CREATE OR REPLACE FUNCTION trigger_x() RETURNS TRIGGER AS $$
BEGIN
RETURN NEW;
END; $$ LANGUAGE PLPGSQL;
CREATE TRIGGER trig_x_text BEFORE INSERT ON x FOR EACH ROW EXECUTE
PROCEDURE
trigger_x('text');
CREATE TRIGGER trig_x_int BEFORE INSERT ON x FOR EACH ROW EXECUTE
PROCEDURE
trigger_x(10);
CREATE TRIGGER trig_x_float BEFORE INSERT ON x FOR EACH ROW EXECUTE
PROCEDURE trigger_x(42.0);
CREATE TRIGGER trig_x_bool BEFORE INSERT ON x FOR EACH ROW EXECUTE
PROCEDURE
trigger_x(true);
ERROR: syntax error at or near "true"
LINE 1: ... INSERT ON x FOR EACH ROW EXECUTE PROCEDURE trigger_x(true);
What are you trying to accomplish? "CREATE OR REPLACE FUNCTION trigger_x()" does not declare
any formal-parameters, so calling it with arguments doesn't make sense. I'm surprised
creating the other triggers didn't produce an error stating "No function defined with the
name trigger_ix and the given argument-type".
That's how you define trigger function. Later you can use params when defining trigger.
Pardon my ignorance:-)
--
Andreas Joseph Krogh <andreak@officenet.no>
Senior Software Developer / CTO
Public key:
http://home.officenet.no/~andreak/public_key.asc------------------------+---------------------------------------------+
OfficeNet AS | The most difficult thing in the world is to |
Rosenholmveien 25 | know how to do a thing and to watch |
1414 Troll\xE5sen | somebody else doing it wrong, without |
NORWAY | comment. |
Org.nr: NO 981 479 076 | |
Tlf: +47 24 15 38 90 | |
Fax: +47 24 15 38 91 | |
Mobile: +47 909 56 963 | |
------------------------+---------------------------------------------+
From pgsql-hackers-owner@postgresql.org Wed May 11 06:51:00 2011 Received: from
maia.hub.org (maia-2.hub.org [200.46.204.251]) by mail.postgresql.org (Postfix) with
ESMTP id E65541337B47 for ; Wed, 11 May 2011 06:50:59 -0300 (ADT) Received: from
mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.251])
(amavisd-maia, port 10024) with ESMTP id 01606-05-2 for ; Wed, 11 May 2011 09:50:42 +0000
(UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from
exprod7og115.obsmtp.com (exprod7og115.obsmtp.com [64.18.2.217]) by
mail.postgresql.org (Postfix) with ESMTP id 7CF7A1337BBB for ; Wed, 11 May 2011 06:50:41
-0300 (ADT) Received: from mail-ey0-f181.google.com ([209.85.215.181]) (using TLSv1) by
exprod7ob115.postini.com ([64.18.6.12]) with SMTP ID
DSNKTcpb8Vg949PvnYB3Ayl45TPvvxtkYYKn@postini.com; Wed, 11 May 2011 02:50:42 PDT
Received: by eyh5 with SMTP id 5so102603eyh.26 for ; Wed, 11 May 2011 02:50:40 -0700 (PDT)
Received: by 10.213.25.82 with SMTP id y18mr134026ebb.76.1305107439750; Wed, 11 May 2011
02:50:39 -0700 (PDT) Received: from [192.168.1.183]
(dsl-hkibrasgw2-ff7ac300-240.dhcp.inet.fi [88.195.122.240]) by mx.google.com with
ESMTPS id y9sm4966885eeh.8.2011.05.11.02.50.37 (version=TLSv1/SSLv3 cipher=OTHER);
Wed, 11 May 2011 02:50:38 -0700 (PDT) Message-ID:
P\xE5 onsdag 11. mai 2011 kl 11:30:51 skrev Szymon Guz <mabewlun@gmail.com>:
On 11 May 2011 11:01, Andreas Joseph Krogh wrote:
P\xE5 onsdag 11. mai 2011 kl 10:56:19 skrev <tv@fuzzy.cz>:
Hi,
I was trying to create a trigger with parameters. I've found a potential
bug
when the param is boolean.
Here is code replicating the bug:
CREATE TABLE x(x TEXT);
CREATE OR REPLACE FUNCTION trigger_x() RETURNS TRIGGER AS $$
BEGIN
RETURN NEW;
END; $$ LANGUAGE PLPGSQL;
CREATE TRIGGER trig_x_text BEFORE INSERT ON x FOR EACH ROW EXECUTE
PROCEDURE
trigger_x('text');
CREATE TRIGGER trig_x_int BEFORE INSERT ON x FOR EACH ROW EXECUTE
PROCEDURE
trigger_x(10);
CREATE TRIGGER trig_x_float BEFORE INSERT ON x FOR EACH ROW EXECUTE
PROCEDURE trigger_x(42.0);
CREATE TRIGGER trig_x_bool BEFORE INSERT ON x FOR EACH ROW EXECUTE
PROCEDURE
trigger_x(true);
ERROR: syntax error at or near "true"
LINE 1: ... INSERT ON x FOR EACH ROW EXECUTE PROCEDURE trigger_x(true);
What are you trying to accomplish? "CREATE OR REPLACE FUNCTION trigger_x()" does not declare
any formal-parameters, so calling it with arguments doesn't make sense. I'm surprised
creating the other triggers didn't produce an error stating "No function defined with the
name trigger_ix and the given argument-type".
That's how you define trigger function. Later you can use params when defining trigger.
Pardon my ignorance:-)
--
Andreas Joseph Krogh <andreak@officenet.no>
Senior Software Developer / CTO
Public key:
http://home.officenet.no/~andreak/public_key.asc------------------------+---------------------------------------------+
OfficeNet AS | The most difficult thing in the world is to |
Rosenholmveien 25 | know how to do a thing and to watch |
1414 Troll\xE5sen | somebody else doing it wrong, without |
NORWAY | comment. |
Org.nr: NO 981 479 076 | |
Tlf: +47 24 15 38 90 | |
Fax: +47 24 15 38 91 | |
Mobile: +47 909 56 963 | |
------------------------+---------------------------------------------+
From pgsql-hackers-owner@postgresql.org Wed May 11 06:51:00 2011 Received: from
maia.hub.org (maia-2.hub.org [200.46.204.251]) by mail.postgresql.org (Postfix) with
ESMTP id E65541337B47 for ; Wed, 11 May 2011 06:50:59 -0300 (ADT) Received: from
mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.251])
(amavisd-maia, port 10024) with ESMTP id 01606-05-2 for ; Wed, 11 May 2011 09:50:42 +0000
(UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from
exprod7og115.obsmtp.com (exprod7og115.obsmtp.com [64.18.2.217]) by
mail.postgresql.org (Postfix) with ESMTP id 7CF7A1337BBB for ; Wed, 11 May 2011 06:50:41
-0300 (ADT) Received: from mail-ey0-f181.google.com ([209.85.215.181]) (using TLSv1) by
exprod7ob115.postini.com ([64.18.6.12]) with SMTP ID
DSNKTcpb8Vg949PvnYB3Ayl45TPvvxtkYYKn@postini.com; Wed, 11 May 2011 02:50:42 PDT
Received: by eyh5 with SMTP id 5so102603eyh.26 for ; Wed, 11 May 2011 02:50:40 -0700 (PDT)
Received: by 10.213.25.82 with SMTP id y18mr134026ebb.76.1305107439750; Wed, 11 May 2011
02:50:39 -0700 (PDT) Received: from [192.168.1.183]
(dsl-hkibrasgw2-ff7ac300-240.dhcp.inet.fi [88.195.122.240]) by mx.google.com with
ESMTPS id y9sm4966885eeh.8.2011.05.11.02.50.37 (version=TLSv1/SSLv3 cipher=OTHER);
Wed, 11 May 2011 02:50:38 -0700 (PDT) Message-ID: