+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);
+
+