pgsql/create_optional_types_and_functions.pgsql
branchv0.6.x
changeset 297 e21ceaabe871
parent 160 639cf4003965
child 382 5e6bcb2e010e
--- a/pgsql/create_optional_types_and_functions.pgsql	Mon Jul 12 01:53:32 2010 +0000
+++ b/pgsql/create_optional_types_and_functions.pgsql	Tue Jul 20 03:15:57 2010 +0000
@@ -88,7 +88,7 @@
         address varchar(320) := localpart || '@' || the_domain;
     BEGIN
         FOR rec IN
-            SELECT address, domaindir||'/'||users.uid||'/'||maillocation||'/'
+            SELECT address, domaindir||'/'||users.uid||'/'||directory||'/'
               FROM domain_data, users, maillocation
              WHERE domain_data.gid = did
                AND users.gid = did
@@ -108,7 +108,6 @@
 -- ---
 -- Data type for functions: postfix_relocated_map(varchar, varchar)
 --                          postfix_virtual_alias_map(varchar, varchar)
---                          
 -- ---
 CREATE TYPE recipient_destination AS (
     recipient   varchar(320),
@@ -296,7 +295,9 @@
 -- Returns: dovecotuser records
 --
 -- Required access privileges for your dovecot database user:
---      GRANT SELECT ON users,domain_data,domain_name,maillocation TO dovecot;
+--      GRANT SELECT
+--          ON users, domain_data, domain_name, maillocation, mailboxformat
+--          TO dovecot;
 --
 -- For more details see http://wiki.dovecot.org/UserDatabase
 -- ---
@@ -309,12 +310,13 @@
         did bigint := (SELECT gid FROM domain_name WHERE domainname=the_domain);
     BEGIN
         FOR record IN
-            SELECT userid, uid, did, domaindir ||'/'|| uid AS home,
-                   '~/'|| maillocation AS mail
-              FROM users, domain_data, maillocation
+            SELECT userid, uid, did, domaindir || '/' || uid AS home,
+                   format || ':~/' || directory AS mail
+              FROM users, domain_data, mailboxformat, maillocation
              WHERE users.gid = did
                AND users.local_part = localpart
                AND maillocation.mid = users.mid
+               AND mailboxformat.fid = maillocation.fid
                AND domain_data.gid = did
             LOOP
                 RETURN NEXT record;
@@ -332,7 +334,7 @@
 -- ---
 CREATE TYPE dovecotpassword AS (
     userid      varchar(320),
-    password    varchar(74),
+    password    varchar(270),
     smtp        boolean,
     pop3        boolean,
     imap        boolean,