Revert caching of destination interpolation v0.6.x
authormartin f. krafft <madduck@madduck.net>
Sun, 15 Apr 2012 17:36:26 +0200
branchv0.6.x
changeset 549 44a808af6cf4
parent 548 92ef34f07da3
child 550 867d950ce7b7
Revert caching of destination interpolation Since 'destination' comes from the table in the query, it cannot be cached across queries! Doh!
pgsql/create_tables-dovecot-1.2.x.pgsql
pgsql/create_tables.pgsql
pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql
pgsql/update_tables_0.5.x-0.6.pgsql
--- a/pgsql/create_tables-dovecot-1.2.x.pgsql	Sun Apr 15 15:30:16 2012 +0000
+++ b/pgsql/create_tables-dovecot-1.2.x.pgsql	Sun Apr 15 17:36:26 2012 +0200
@@ -631,12 +631,11 @@
         record recipient_destination;
         catchall_cursor refcursor;
         recipient varchar(320) := localpart || '@' || the_domain;
-        idestination varchar(320) :=
-            _interpolate_destination(destination, localpart, the_domain);
         did bigint := (SELECT gid FROM domain_name WHERE domainname=the_domain);
     BEGIN
         FOR record IN
-            SELECT recipient, idestination
+            SELECT recipient,
+                _interpolate_destination(destination, localpart, the_domain)
               FROM alias
              WHERE gid = did
                AND address = localpart
@@ -654,7 +653,8 @@
             -- or relocated entry and return the identity mapping if that is
             -- the case
             OPEN catchall_cursor FOR
-                SELECT recipient, idestination
+                SELECT recipient,
+                    _interpolate_destination(destination, localpart, the_domain)
                   FROM catchall
                  WHERE gid = did;
             FETCH NEXT FROM catchall_cursor INTO recordc;
--- a/pgsql/create_tables.pgsql	Sun Apr 15 15:30:16 2012 +0000
+++ b/pgsql/create_tables.pgsql	Sun Apr 15 17:36:26 2012 +0200
@@ -609,12 +609,11 @@
         record recipient_destination;
         catchall_cursor refcursor;
         recipient varchar(320) := localpart || '@' || the_domain;
-        idestination varchar(320) :=
-            _interpolate_destination(destination, localpart, the_domain);
         did bigint := (SELECT gid FROM domain_name WHERE domainname=the_domain);
     BEGIN
         FOR record IN
-            SELECT recipient, idestination
+            SELECT recipient,
+                _interpolate_destination(destination, localpart, the_domain)
               FROM alias
              WHERE gid = did
                AND address = localpart
@@ -632,7 +631,8 @@
             -- or relocated entry and return the identity mapping if that is
             -- the case
             OPEN catchall_cursor FOR
-                SELECT recipient, idestination
+                SELECT recipient,
+                    _interpolate_destination(destination, localpart, the_domain)
                   FROM catchall
                  WHERE gid = did;
             FETCH NEXT FROM catchall_cursor INTO recordc;
--- a/pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql	Sun Apr 15 15:30:16 2012 +0000
+++ b/pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql	Sun Apr 15 17:36:26 2012 +0200
@@ -551,12 +551,11 @@
         record recipient_destination;
         catchall_cursor refcursor;
         recipient varchar(320) := localpart || '@' || the_domain;
-        idestination varchar(320) :=
-            _interpolate_destination(destination, localpart, the_domain);
         did bigint := (SELECT gid FROM domain_name WHERE domainname=the_domain);
     BEGIN
         FOR record IN
-            SELECT recipient, idestination
+            SELECT recipient,
+                _interpolate_destination(destination, localpart, the_domain)
               FROM alias
              WHERE gid = did
                AND address = localpart
@@ -574,7 +573,8 @@
             -- or relocated entry and return the identity mapping if that is
             -- the case
             OPEN catchall_cursor FOR
-                SELECT recipient, idestination
+                SELECT recipient,
+                    _interpolate_destination(destination, localpart, the_domain)
                   FROM catchall
                  WHERE gid = did;
             FETCH NEXT FROM catchall_cursor INTO recordc;
--- a/pgsql/update_tables_0.5.x-0.6.pgsql	Sun Apr 15 15:30:16 2012 +0000
+++ b/pgsql/update_tables_0.5.x-0.6.pgsql	Sun Apr 15 17:36:26 2012 +0200
@@ -530,12 +530,11 @@
         record recipient_destination;
         catchall_cursor refcursor;
         recipient varchar(320) := localpart || '@' || the_domain;
-        idestination varchar(320) :=
-            _interpolate_destination(destination, localpart, the_domain);
         did bigint := (SELECT gid FROM domain_name WHERE domainname=the_domain);
     BEGIN
         FOR record IN
-            SELECT recipient, idestination
+            SELECT recipient,
+                _interpolate_destination(destination, localpart, the_domain)
               FROM alias
              WHERE gid = did
                AND address = localpart
@@ -553,7 +552,8 @@
             -- or relocated entry and return the identity mapping if that is
             -- the case
             OPEN catchall_cursor FOR
-                SELECT recipient, idestination
+                SELECT recipient,
+                    _interpolate_destination(destination, localpart, the_domain)
                   FROM catchall
                  WHERE gid = did;
             FETCH NEXT FROM catchall_cursor INTO recordc;