Guillaume Cottenceau schrieb:
"Hillel" <hillel 'at' ecommunicate.biz> writes:

Hi Kannel Devel,

Attached and included in this email, is a postgresql patch that does not use
Automatic OIDs, which has been removed from Postgresql.

You can make smsc,ts the primary key or as suggested by Guillaume Cottenceau
you can set smsc,ts as an index.

diff -u gateway/gw/dlr_pgsql.c gateway/gw/dlr_pgsql.c
--- gateway/gw/dlr_pgsql.c      2008-06-23 08:16:34.000000000 +0200
+++ gateway/gw/dlr_pgsql.c   2008-06-22 12:27:38.000000000 +0200
@@ -220,12 +220,11 @@
     Octstr *sql;

     debug("dlr.pgsql", 0, "removing DLR from database");
-    sql = octstr_format("DELETE FROM %s WHERE (%s,%s) IN (SELECT %s,%s
WHERE %s='%s' AND %s='%s' LIMIT 1);",

The general contract of the code at that point is to delete only
one row even if there are multiple smsc,ts rows, which your
change breaks.

dn=# create table foo ( bar int, baz int );
CREATE TABLE
dn=# insert into foo ( bar, baz ) values ( 1, 2 );
INSERT 447809901 1
dn=# insert into foo ( bar, baz ) values ( 1, 2 );
INSERT 447809902 1
dn=# delete from foo where ( bar, baz ) in ( select 1, 2 limit 1 );
DELETE 2

Same for the UPDATE statement, actually.

So this shall be a -1 vote by Guillaume I guess.

Hillel, can you please revise and update the patch?

Stipe

-------------------------------------------------------------------
Kölner Landstrasse 419
40589 Düsseldorf, NRW, Germany

tolj.org system architecture      Kannel Software Foundation (KSF)
http://www.tolj.org/              http://www.kannel.org/

mailto:st_{at}_tolj.org           mailto:stolj_{at}_kannel.org
-------------------------------------------------------------------

Reply via email to