Re: possible INSERT bug

From: "Mathew Frank" <mathewfrank(at)qushi(dot)com>
To: <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: possible INSERT bug
Date: 2002-12-13 07:37:02
Message-ID: 003f01c2a27a$6da7ab90$0a00a8c0@dax
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

i have the following utility function, which I use to easily return the OID
of an the new row created by an INSERT query:
---
CREATE FUNCTION insert_record_return_oid(text) RETURNS int4 AS
' DECLARE
s_query ALIAS FOR $1;
oid int4;
BEGIN
EXECUTE s_query;
GET DIAGNOSTICS oid = RESULT_OID;
RETURN oid;
END;
' LANGUAGE 'plpgsql' with (ISSTRICT);
---

Which correctly returns the OID of the inserted row.
usage example:
---
insert_record_return_oid('insert into sys_states (s_state) values(''po'')
');
---

However, if I get tricky, and imbed this into a select to return the
inserted row, I get an error:
---
select * from sys_states
where oid= insert_record_return_oid('insert into sys_states (s_state)
values(''po'') ');
---
"Cannot insert duplicate key" and the insert query never happens.


This is not a problem - I just do things another way, but I was wondering
what caused this?

Cheers,
Mathew

postgresql 7.2, btw

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2002-12-13 08:08:31 Re: possible INSERT bug
Previous Message Ocke Janssen 2002-12-13 07:07:53 Re: OpenOffice loops calling SQLForeignKeys