Changed the type of log_adv_daemon_email.delay and log_adv_daemon_email.xdelay
[gnucomo.git] / src / gcm_daemon / classes / gnucomo_db_version.php
index a83930a..f4a4d42 100644 (file)
@@ -486,6 +486,61 @@ case 42:
      $local_sql = "INSERT INTO service VALUES ('modprobe','Kernel modules', 1, 5) ";
      $dbms->query($local_sql);
 
+case 43:
+
+     //  We need to change the type of the 'delay' and 'xdelay' fields in
+     //  the 'log_adv_daemon_email' table from type time to type interval.
+     //  This can not be done directly; it requires recreating the entire
+     //  table and copying data from the old table.
+
+     $local_sql = "ALTER TABLE log_adv_daemon_email RENAME TO old_table";
+     $dbms->query($local_sql);
+
+     $local_sql = "CREATE TABLE log_adv_daemon_email
+                   (
+                      source_ip            INET,
+                      destination_ip       INET,
+                      internal_messageid   TEXT, 
+                      external_messageid   TEXT,
+                      to_email             TEXT,
+                      from_email           TEXT,
+                      delay                interval,
+                      xdelay               interval,
+                      mailer               TEXT,
+                      status               TEXT,
+                      pid                  INT,
+                      size                 INT,
+                      pri                  INT,
+                      relay                TEXT,
+                      status_details       TEXT,
+                      dsn                  TEXT
+                 ) INHERITS (log_adv_daemon)";
+     $dbms->query($local_sql);
+
+     $local_sql = "INSERT INTO log_adv_daemon_email SELECT * FROM old_table";
+     $dbms->query($local_sql);
+
+     $local_sql = "DROP TABLE old_table";
+     $dbms->query($local_sql);
+
+     // The indices need to be recreated as well.
+
+     $local_sql = "CREATE INDEX log_adv_daemon_email_s_ip ON log_adv_daemon_email (source_ip)";
+     $dbms->query($local_sql);
+
+     $local_sql = "CREATE INDEX log_adv_daemon_email_d_ip ON log_adv_daemon_email (destination_ip)";
+     $dbms->query($local_sql);
+
+     $local_sql = "CREATE INDEX log_adv_daemon_email_to   ON log_adv_daemon_email (to_email)";
+     $dbms->query($local_sql);
+
+     $local_sql = "CREATE INDEX log_adv_daemon_email_from ON log_adv_daemon_email (from_email)";
+     $dbms->query($local_sql);
+
+     $local_sql = "CREATE INDEX log_adv_email_status      ON log_adv_daemon_email (status)";
+     $dbms->query($local_sql);
+
+
 //These columns have to be removed when a new version of PGSQL has become mainstream that supportsa DROP COLUMN
 /*