Lines Matching refs:d

91     : d( new SchemaData )  in Schema()
93 d->result = new Query( owner ); in Schema()
94 d->upgrade = upgrade; in Schema()
95 d->commit = commit; in Schema()
96 d->t = new Transaction( this ); in Schema()
107 return d->result; in result()
134 return d->version; in serverVersion()
142 if ( d->state == 0 ) { in execute()
143 if ( d->upgrade ) { in execute()
144 d->lock = in execute()
147 d->t->enqueue( d->lock ); in execute()
148 d->t->execute(); in execute()
151 d->lock = in execute()
154 d->lock->execute(); in execute()
156 d->state = 1; in execute()
159 if ( d->state == 1 ) { in execute()
160 if ( !d->lock->done() ) in execute()
163 Row *r = d->lock->nextRow(); in execute()
165 d->version in execute()
167 d->revision = r->getInt( "revision" ); in execute()
170 if ( !r || d->lock->failed() ) { in execute()
172 d->lock ); in execute()
173 d->revision = Database::currentRevision(); in execute()
174 d->t->commit(); in execute()
175 d->state = 7; in execute()
177 else if ( d->revision == Database::currentRevision() ) { in execute()
178 if ( d->upgrade ) { in execute()
179 d->l->log( "Schema is already at revision " + in execute()
183 d->t->commit(); in execute()
185 d->result->setState( Query::Completed ); in execute()
186 d->state = 7; in execute()
188 else if ( d->upgrade && d->revision > Database::currentRevision() && in execute()
189 d->revision >= 85 && Database::currentRevision() >= 80 ) { in execute()
190 d->l->log( "Downgrading schema from revision " + in execute()
191 fn( d->revision ) + " to revision " + in execute()
194 d->state = 2; in execute()
196 else if ( d->upgrade && d->revision < Database::currentRevision() ) { in execute()
197 d->l->log( "Upgrading schema from revision " + in execute()
198 fn( d->revision ) + " to revision " + in execute()
201 d->state = 2; in execute()
205 s.appendNumber( d->revision ); in execute()
207 if ( d->revision < Database::currentRevision() ) in execute()
216 if ( d->revision < Database::currentRevision() || in execute()
217 ( Database::currentRevision() >= 80 && d->revision >= 85 ) ) in execute()
223 d->revision = Database::currentRevision(); in execute()
224 d->t->commit(); in execute()
225 d->state = 7; in execute()
229 if ( d->upgrade && in execute()
230 d->revision >= 85 && in execute()
231 d->revision > Database::currentRevision() ) { in execute()
232 while ( d->revision > Database::currentRevision() ) { in execute()
233 EString function( "downgrade_to_" + fn( d->revision - 1 ) + "()" ); in execute()
234 d->l->log( "Invoking stored function " + function ); in execute()
235 d->t->enqueue( new Query( "select " + function, 0 ) ); in execute()
236 d->t->enqueue( new Query( "drop function " + function, 0 ) ); in execute()
237 d->revision--; in execute()
241 d->t->enqueue( q ); in execute()
242 d->state = 5; in execute()
245 while ( d->revision < Database::currentRevision() ) { in execute()
246 if ( d->state == 2 ) { in execute()
249 d->state = 3; in execute()
252 if ( d->state == 3 ) { in execute()
253 d->update = in execute()
256 d->t->enqueue( d->update ); in execute()
257 d->t->execute(); in execute()
258 d->state = 4; in execute()
261 if ( d->state == 4 ) { in execute()
262 if ( !d->update->done() ) in execute()
265 d->l->log( "Done.", Log::Debug ); in execute()
266 d->substate = 0; in execute()
267 d->state = 2; in execute()
268 d->revision++; in execute()
270 if ( d->revision == Database::currentRevision() ) { in execute()
271 d->state = 5; in execute()
277 if ( d->state == 5 ) { in execute()
278 if ( d->dbuser.unquoted() == in execute()
280 d->l->log( "Warning: db-user is the same as db-owner", in execute()
284 d->l->log( "Checking database, adjusting privileges.", in execute()
286 Granter * g = new Granter( d->dbuser.unquoted(), d->t ); in execute()
292 d->state = 6; in execute()
293 if ( d->commit ) in execute()
294 d->t->commit(); in execute()
296 d->t->rollback(); in execute()
299 if ( d->state == 6 ) { in execute()
300 if ( !d->t->done() ) in execute()
303 if ( !d->unparsed && !d->t->failed() && d->upgrade ) { in execute()
304 d->unparsed = new Query( "select count(*) as unparsed " in execute()
306 d->unparsed->execute(); in execute()
309 if ( d->unparsed && !d->unparsed->done() ) in execute()
312 if ( d->unparsed && d->unparsed->hasResults() ) { in execute()
313 Row * r = d->unparsed->nextRow(); in execute()
316 d->l->log( "Please run 'aox reparse' (or 'aox reparse -e') " in execute()
322 d->state = 7; in execute()
325 if ( d->state == 7 ) { in execute()
326 if ( !d->t->done() ) in execute()
329 if ( d->t->failed() && !d->result->failed() ) { in execute()
331 if ( d->upgrade ) in execute()
336 fail( s, d->t->failedQuery() ); in execute()
338 else if ( d->upgrade ) { in execute()
341 if ( !d->commit ) in execute()
346 d->l->log( s, Log::Significant ); in execute()
347 d->result->setState( Query::Completed ); in execute()
350 d->state = 8; in execute()
353 if ( d->state == 8 ) { in execute()
354 d->state = 42; in execute()
355 d->result->notify(); in execute()
366 d->l->log( fn( d->revision ) + "-" + fn( d->revision + 1 ) + ": " + in describeStep()
379 d->result->setError( s ); in fail()
380 d->l->log( s, Log::Disaster ); in fail()
382 d->l->log( "Query: " + q->description(), Log::Disaster ); in fail()
383 d->l->log( "Error: " + q->error(), Log::Disaster ); in fail()
400 switch ( d->revision ) { in singleStep()
596 d->l->log( "Internal error. Reached impossible revision " + in singleStep()
597 fn( d->revision ) + ".", Log::Disaster ); in singleStep()
601 if ( d->revision >= 89 && in singleStep()
602 d->revision <= numDowngradeFunctions && in singleStep()
603 downgradeFunctions[d->revision] ) in singleStep()
604 d->t->enqueue( downgradeFunctions[d->revision] ); in singleStep()
616 if ( d->substate == 0 ) { in stepTo2()
618 d->q = new Query( "alter table users add login2 text", this ); in stepTo2()
619 d->t->enqueue( d->q ); in stepTo2()
620 d->q = new Query( "update users set login2=login", this ); in stepTo2()
621 d->t->enqueue( d->q ); in stepTo2()
622 d->q = new Query( "alter table users drop login", this ); in stepTo2()
623 d->t->enqueue( d->q ); in stepTo2()
624 d->q = new Query( "alter table users rename login2 to login", in stepTo2()
626 d->t->enqueue( d->q ); in stepTo2()
627 d->q = new Query( "alter table users add unique(login)", in stepTo2()
629 d->t->enqueue( d->q ); in stepTo2()
630 d->q = new Query( "alter table users add secret2 text", this ); in stepTo2()
631 d->t->enqueue( d->q ); in stepTo2()
632 d->q = new Query( "update users set secret2=secret", this ); in stepTo2()
633 d->t->enqueue( d->q ); in stepTo2()
634 d->q = new Query( "alter table users drop secret", this ); in stepTo2()
635 d->t->enqueue( d->q ); in stepTo2()
636 d->q = new Query( "alter table users rename secret2 to secret", in stepTo2()
638 d->t->enqueue( d->q ); in stepTo2()
639 d->t->execute(); in stepTo2()
640 d->substate = 1; in stepTo2()
643 if ( d->substate == 1 ) { in stepTo2()
644 if ( !d->q->done() ) in stepTo2()
656 if ( d->substate == 0 ) { in stepTo3()
658 d->q = new Query( "alter table bodyparts add hash text", this ); in stepTo3()
659 d->t->enqueue( d->q ); in stepTo3()
660 d->q = new Query( "alter table bodyparts add data bytea", this ); in stepTo3()
661 d->t->enqueue( d->q ); in stepTo3()
662 d->q = new Query( "alter table bodyparts add text2 text", this ); in stepTo3()
663 d->t->enqueue( d->q ); in stepTo3()
664 d->q = new Query( "update bodyparts set data=b.data from " in stepTo3()
666 d->t->enqueue( d->q ); in stepTo3()
667 d->q = new Query( "declare parts cursor for " in stepTo3()
669 d->t->enqueue( d->q ); in stepTo3()
670 d->q = new Query( "fetch 512 from parts", this ); in stepTo3()
671 d->t->enqueue( d->q ); in stepTo3()
672 d->t->execute(); in stepTo3()
673 d->substate = 1; in stepTo3()
676 if ( d->substate == 1 ) { in stepTo3()
677 while ( d->q->hasResults() ) { in stepTo3()
678 Row *r = d->q->nextRow(); in stepTo3()
695 d->t->enqueue( u ); in stepTo3()
698 if ( !d->q->done() ) in stepTo3()
701 if ( d->q->rows() != 0 ) { in stepTo3()
702 d->q = new Query( "fetch 512 from parts", this ); in stepTo3()
703 d->t->enqueue( d->q ); in stepTo3()
704 d->t->execute(); in stepTo3()
708 d->substate = 2; in stepTo3()
709 d->t->enqueue( new Query( "close parts", this ) ); in stepTo3()
713 if ( d->substate == 2 ) { in stepTo3()
714 d->q = new Query( "alter table bodyparts drop text", this ); in stepTo3()
715 d->t->enqueue( d->q ); in stepTo3()
716 d->q = new Query( "alter table bodyparts rename text2 to text", this ); in stepTo3()
717 d->t->enqueue( d->q ); in stepTo3()
718 d->q = new Query( "select id,hash from bodyparts where hash in " in stepTo3()
721 d->t->enqueue( d->q ); in stepTo3()
722 d->t->execute(); in stepTo3()
723 d->substate = 3; in stepTo3()
726 if ( d->substate == 3 ) { in stepTo3()
727 if ( !d->q->done() ) in stepTo3()
733 while ( d->q->hasResults() ) { in stepTo3()
734 Row *r = d->q->nextRow(); in stepTo3()
746 d->t->enqueue( u ); in stepTo3()
757 d->q = new Query( "delete from bodyparts where id in " in stepTo3()
759 d->t->enqueue( d->q ); in stepTo3()
761 d->q = new Query( "drop table binary_parts", this ); in stepTo3()
762 d->t->enqueue( d->q ); in stepTo3()
763 d->q = new Query( "alter table bodyparts add unique(hash)", this ); in stepTo3()
764 d->t->enqueue( d->q ); in stepTo3()
765 d->t->execute(); in stepTo3()
766 d->substate = 4; in stepTo3()
769 if ( d->substate == 4 ) { in stepTo3()
770 if ( !d->q->done() ) in stepTo3()
784 if ( d->substate == 0 ) { in stepTo4()
786 d->q = new Query( "alter table extra_flags rename to flags", this ); in stepTo4()
787 d->t->enqueue( d->q ); in stepTo4()
788 d->q = new Query( "insert into flag_names (name) values ($1)", this ); in stepTo4()
789 d->q->bind( 1, "\\Deleted" ); in stepTo4()
790 d->t->enqueue( d->q ); in stepTo4()
791 d->q = new Query( "insert into flag_names (name) values ($1)", this ); in stepTo4()
792 d->q->bind( 1, "\\Answered" ); in stepTo4()
793 d->t->enqueue( d->q ); in stepTo4()
794 d->q = new Query( "insert into flag_names (name) values ($1)", this ); in stepTo4()
795 d->q->bind( 1, "\\Flagged" ); in stepTo4()
796 d->t->enqueue( d->q ); in stepTo4()
797 d->q = new Query( "insert into flag_names (name) values ($1)", this ); in stepTo4()
798 d->q->bind( 1, "\\Draft" ); in stepTo4()
799 d->t->enqueue( d->q ); in stepTo4()
800 d->q = new Query( "insert into flag_names (name) values ($1)", this ); in stepTo4()
801 d->q->bind( 1, "\\Seen" ); in stepTo4()
802 d->t->enqueue( d->q ); in stepTo4()
803 d->q = new Query( "insert into flags (mailbox,uid,flag) " in stepTo4()
808 d->t->enqueue( d->q ); in stepTo4()
809 d->q = new Query( "insert into flags (mailbox,uid,flag) " in stepTo4()
814 d->t->enqueue( d->q ); in stepTo4()
815 d->q = new Query( "insert into flags (mailbox,uid,flag) " in stepTo4()
820 d->t->enqueue( d->q ); in stepTo4()
821 d->q = new Query( "insert into flags (mailbox,uid,flag) " in stepTo4()
826 d->t->enqueue( d->q ); in stepTo4()
827 d->q = new Query( "insert into flags (mailbox,uid,flag) " in stepTo4()
832 d->t->enqueue( d->q ); in stepTo4()
833 d->q = new Query( "alter table messages drop deleted", this ); in stepTo4()
834 d->t->enqueue( d->q ); in stepTo4()
835 d->q = new Query( "alter table messages drop answered", this ); in stepTo4()
836 d->t->enqueue( d->q ); in stepTo4()
837 d->q = new Query( "alter table messages drop flagged", this ); in stepTo4()
838 d->t->enqueue( d->q ); in stepTo4()
839 d->q = new Query( "alter table messages drop draft", this ); in stepTo4()
840 d->t->enqueue( d->q ); in stepTo4()
841 d->q = new Query( "alter table messages drop seen", this ); in stepTo4()
842 d->t->enqueue( d->q ); in stepTo4()
843 d->t->execute(); in stepTo4()
844 d->substate = 1; in stepTo4()
847 if ( d->substate == 1 ) { in stepTo4()
848 if ( !d->q->done() ) in stepTo4()
860 if ( d->substate == 0 ) { in stepTo5()
862 d->q = new Query( "create index hf_mup on " in stepTo5()
864 d->t->enqueue( d->q ); in stepTo5()
865 d->q = new Query( "create index af_mu on " in stepTo5()
867 d->t->enqueue( d->q ); in stepTo5()
868 d->q = new Query( "create index fl_mu on flags (mailbox,uid)", in stepTo5()
870 d->t->enqueue( d->q ); in stepTo5()
871 d->t->execute(); in stepTo5()
872 d->substate = 1; in stepTo5()
875 if ( d->substate == 1 ) { in stepTo5()
876 if ( !d->q->done() ) in stepTo5()
888 if ( d->substate == 0 ) { in stepTo6()
890 d->q = new Query( "alter table part_numbers add bytes integer", in stepTo6()
892 d->t->enqueue( d->q ); in stepTo6()
893 d->q = new Query( "alter table part_numbers add lines integer", in stepTo6()
895 d->t->enqueue( d->q ); in stepTo6()
896 d->q = new Query( "update part_numbers set bytes=bodyparts.bytes," in stepTo6()
899 d->t->enqueue( d->q ); in stepTo6()
900 d->q = new Query( "alter table part_numbers alter bodypart " in stepTo6()
902 d->t->enqueue( d->q ); in stepTo6()
903 d->q = new Query( "alter table bodyparts drop lines", this ); in stepTo6()
904 d->t->enqueue( d->q ); in stepTo6()
905 d->t->execute(); in stepTo6()
906 d->substate = 1; in stepTo6()
909 if ( d->substate == 1 ) { in stepTo6()
910 if ( !d->q->done() ) in stepTo6()
922 if ( d->substate == 0 ) { in stepTo7()
924 d->q = new Query( "alter table header_fields add " in stepTo7()
926 d->t->enqueue( d->q ); in stepTo7()
927 d->q = new Query( "alter table header_fields alter part " in stepTo7()
929 d->t->enqueue( d->q ); in stepTo7()
930 d->q = new Query( "create temporary sequence hf_pos", this ); in stepTo7()
931 d->t->enqueue( d->q ); in stepTo7()
932 d->q = new Query( "declare groups cursor for " in stepTo7()
935 d->t->enqueue( d->q ); in stepTo7()
936 d->q = new Query( "fetch 512 from groups", this ); in stepTo7()
937 d->t->enqueue( d->q ); in stepTo7()
938 d->t->execute(); in stepTo7()
939 d->substate = 1; in stepTo7()
942 if ( d->substate == 1 ) { in stepTo7()
943 while ( d->q->hasResults() ) { in stepTo7()
944 Row *r = d->q->nextRow(); in stepTo7()
956 d->t->enqueue( u ); in stepTo7()
959 d->t->enqueue( u ); in stepTo7()
962 if ( !d->q->done() ) in stepTo7()
965 if ( d->q->rows() != 0 ) { in stepTo7()
966 d->q = new Query( "fetch 512 from groups", this ); in stepTo7()
967 d->t->enqueue( d->q ); in stepTo7()
968 d->t->execute(); in stepTo7()
972 d->t->enqueue( new Query( "close groups", this ) ); in stepTo7()
973 d->q = new Query( "alter table header_fields add unique " in stepTo7()
975 d->t->enqueue( d->q ); in stepTo7()
976 d->t->execute(); in stepTo7()
977 d->substate = 2; in stepTo7()
981 if ( d->substate == 2 ) { in stepTo7()
982 if ( !d->q->done() ) in stepTo7()
994 if ( d->substate == 0 ) { in stepTo8()
995 d->l->log( "Making address_fields refer to header_fields." ); in stepTo8()
996 d->q = new Query( "delete from address_fields", this ); in stepTo8()
997 d->t->enqueue( d->q ); in stepTo8()
998 d->q = new Query( "alter table address_fields drop field", this ); in stepTo8()
999 d->t->enqueue( d->q ); in stepTo8()
1000 d->q = new Query( "alter table address_fields add part text", this ); in stepTo8()
1001 d->t->enqueue( d->q ); in stepTo8()
1002 d->q = new Query( "alter table address_fields alter part " in stepTo8()
1004 d->t->enqueue( d->q ); in stepTo8()
1005 d->q = new Query( "alter table address_fields add " in stepTo8()
1007 d->t->enqueue( d->q ); in stepTo8()
1008 d->q = new Query( "alter table address_fields alter " in stepTo8()
1010 d->t->enqueue( d->q ); in stepTo8()
1011 d->q = new Query( "alter table address_fields add " in stepTo8()
1013 d->t->enqueue( d->q ); in stepTo8()
1014 d->q = new Query( "alter table address_fields alter field " in stepTo8()
1016 d->t->enqueue( d->q ); in stepTo8()
1017 d->q = new Query( "alter table address_fields add foreign key " in stepTo8()
1022 d->t->enqueue( d->q ); in stepTo8()
1023 d->t->execute(); in stepTo8()
1024 d->substate = 1; in stepTo8()
1027 if ( d->substate == 1 ) { in stepTo8()
1028 if ( !d->q->done() ) in stepTo8()
1040 if ( d->substate == 0 ) { in stepTo9()
1042 d->q = new Query( "alter table mailboxes add " in stepTo9()
1044 d->t->enqueue( d->q ); in stepTo9()
1045 d->q = new Query( "update mailboxes set " in stepTo9()
1049 d->t->enqueue( d->q ); in stepTo9()
1050 d->q = new Query( "alter table mailboxes alter first_recent " in stepTo9()
1052 d->t->enqueue( d->q ); in stepTo9()
1053 d->q = new Query( "alter table mailboxes alter first_recent " in stepTo9()
1055 d->t->enqueue( d->q ); in stepTo9()
1056 d->q = new Query( "drop table recent_messages", this ); in stepTo9()
1057 d->t->enqueue( d->q ); in stepTo9()
1058 d->t->execute(); in stepTo9()
1059 d->substate = 1; in stepTo9()
1062 if ( d->substate == 1 ) { in stepTo9()
1063 if ( !d->q->done() ) in stepTo9()
1075 if ( d->substate == 0 ) { in stepTo10()
1079 if ( d->version.startsWith( "7" ) ) in stepTo10()
1082 d->q = new Query( "alter table mailboxes drop constraint " in stepTo10()
1084 d->t->enqueue( d->q ); in stepTo10()
1085 d->q = new Query( "alter table mailboxes add constraint " in stepTo10()
1089 d->t->enqueue( d->q ); in stepTo10()
1090 d->t->execute(); in stepTo10()
1091 d->substate = 1; in stepTo10()
1094 if ( d->substate == 1 ) { in stepTo10()
1095 if ( !d->q->done() ) in stepTo10()
1107 if ( d->substate == 0 ) { in stepTo11()
1109 d->q = new Query( "drop sequence revisions", this ); in stepTo11()
1110 d->t->enqueue( d->q ); in stepTo11()
1111 d->t->execute(); in stepTo11()
1112 d->substate = 1; in stepTo11()
1115 if ( d->substate == 1 ) { in stepTo11()
1116 if ( !d->q->done() ) in stepTo11()
1128 if ( d->substate == 0 ) { in stepTo12()
1130 d->q = new Query( "alter table mailboxes drop constraint " in stepTo12()
1132 d->t->enqueue( d->q ); in stepTo12()
1133 d->q = new Query( "alter table mailboxes add constraint " in stepTo12()
1136 d->t->enqueue( d->q ); in stepTo12()
1137 d->t->execute(); in stepTo12()
1138 d->substate = 1; in stepTo12()
1141 if ( d->substate == 1 ) { in stepTo12()
1142 if ( !d->q->done() ) in stepTo12()
1154 if ( d->substate == 0 ) { in stepTo13()
1156 d->q = new Query( "create table annotation_names" in stepTo13()
1159 d->t->enqueue( d->q ); in stepTo13()
1160 d->q = new Query( "create table annotations" in stepTo13()
1170 d->t->enqueue( d->q ); in stepTo13()
1171 d->t->execute(); in stepTo13()
1172 d->substate = 1; in stepTo13()
1175 if ( d->substate == 1 ) { in stepTo13()
1176 if ( !d->q->done() ) in stepTo13()
1188 if ( d->substate == 0 ) { in stepTo14()
1190 d->q = new Query( "create table views (" in stepTo14()
1198 d->t->enqueue( d->q ); in stepTo14()
1199 d->q = new Query( "create table view_messages (" in stepTo14()
1208 d->t->enqueue( d->q ); in stepTo14()
1209 d->t->execute(); in stepTo14()
1210 d->substate = 1; in stepTo14()
1213 if ( d->substate == 1 ) { in stepTo14()
1214 if ( !d->q->done() ) in stepTo14()
1228 if ( d->substate == 0 ) { in stepTo15()
1233 if ( d->version.startsWith( "7" ) ) { in stepTo15()
1238 d->q = new Query( "alter table subscriptions drop constraint " in stepTo15()
1240 d->t->enqueue( d->q ); in stepTo15()
1241 d->q = new Query( "alter table subscriptions add constraint " in stepTo15()
1245 d->t->enqueue( d->q ); in stepTo15()
1246 d->q = new Query( "alter table annotations drop constraint " in stepTo15()
1248 d->t->enqueue( d->q ); in stepTo15()
1249 d->q = new Query( "alter table annotations add constraint " in stepTo15()
1253 d->t->enqueue( d->q ); in stepTo15()
1254 d->t->execute(); in stepTo15()
1255 d->substate = 1; in stepTo15()
1258 if ( d->substate == 1 ) { in stepTo15()
1259 if ( !d->q->done() ) in stepTo15()
1271 if ( d->substate == 0 ) { in stepTo16()
1273 d->q = new Query( "create table aliases (address text,mailbox " in stepTo16()
1276 d->t->enqueue( d->q ); in stepTo16()
1277 d->t->execute(); in stepTo16()
1278 d->substate = 1; in stepTo16()
1281 if ( d->substate == 1 ) { in stepTo16()
1282 if ( !d->q->done() ) in stepTo16()
1296 if ( d->substate == 0 ) { in stepTo17()
1298 d->q = new Query( "drop table aliases", this ); in stepTo17()
1299 d->t->enqueue( d->q ); in stepTo17()
1300 d->q = new Query( "create table aliases (id serial primary key, " in stepTo17()
1304 d->t->enqueue( d->q ); in stepTo17()
1305 d->q = new Query( "insert into aliases (address, mailbox) " in stepTo17()
1307 d->t->enqueue( d->q ); in stepTo17()
1308 d->q = new Query( "alter table users add alias integer " in stepTo17()
1310 d->t->enqueue( d->q ); in stepTo17()
1311 d->q = new Query( "update users set alias=(select id from aliases " in stepTo17()
1314 d->t->enqueue( d->q ); in stepTo17()
1315 d->q = new Query( "alter table users alter alias set not null", this ); in stepTo17()
1316 d->t->enqueue( d->q ); in stepTo17()
1317 d->q = new Query( "alter table users drop address", this ); in stepTo17()
1318 d->t->enqueue( d->q ); in stepTo17()
1319 d->q = new Query( "alter table users drop inbox", this ); in stepTo17()
1320 d->t->enqueue( d->q ); in stepTo17()
1321 d->t->execute(); in stepTo17()
1322 d->substate = 1; in stepTo17()
1325 if ( d->substate == 1 ) { in stepTo17()
1326 if ( !d->q->done() ) in stepTo17()
1338 if ( d->substate == 0 ) { in stepTo18()
1340 d->q = new Query( "create table scripts (id serial primary key," in stepTo18()
1344 d->t->enqueue( d->q ); in stepTo18()
1345 d->t->execute(); in stepTo18()
1346 d->substate = 1; in stepTo18()
1349 if ( d->substate == 1 ) { in stepTo18()
1350 if ( !d->q->done() ) in stepTo18()
1362 if ( d->substate == 0 ) { in stepTo19()
1364 d->q = new Query( "create table date_fields (mailbox " in stepTo19()
1370 d->t->enqueue( d->q ); in stepTo19()
1371 d->t->execute(); in stepTo19()
1372 d->substate = 1; in stepTo19()
1375 if ( d->substate == 1 ) { in stepTo19()
1376 if ( !d->q->done() ) in stepTo19()
1397 if ( d->substate == 0 ) { in stepTo21()
1399 d->q = new Query( "alter table annotations drop type", this ); in stepTo21()
1400 d->t->enqueue( d->q ); in stepTo21()
1401 d->q = new Query( "alter table annotations drop language", this ); in stepTo21()
1402 d->t->enqueue( d->q ); in stepTo21()
1403 d->q = new Query( "alter table annotations drop displayname", this ); in stepTo21()
1404 d->t->enqueue( d->q ); in stepTo21()
1405 d->t->execute(); in stepTo21()
1406 d->substate = 1; in stepTo21()
1409 if ( d->substate == 1 ) { in stepTo21()
1410 if ( !d->q->done() ) in stepTo21()
1425 if ( d->substate == 0 ) { in stepTo22()
1427 d->q = new Query( "select a.id as to, b.id as from, a.name as name " in stepTo22()
1431 d->t->enqueue( d->q ); in stepTo22()
1432 d->t->execute(); in stepTo22()
1433 d->substate = 1; in stepTo22()
1436 if ( d->substate == 1 ) { in stepTo22()
1437 if ( !d->q->done() ) in stepTo22()
1440 if ( d->q->failed() ) { in stepTo22()
1441 d->l->log( "Internal error.", Log::Debug ); in stepTo22()
1442 d->substate = 0; in stepTo22()
1446 d->l->log( "Changing case for " + fn( d->q->rows() ) + " flags.", in stepTo22()
1450 while ( (r=d->q->nextRow()) != 0 ) { in stepTo22()
1451 d->l->log( "Unbreaking " + r->getEString( "name" ) + ".", in stepTo22()
1458 d->t->enqueue( q ); in stepTo22()
1462 d->t->enqueue( q ); in stepTo22()
1464 d->q = new Query( "alter table flag_names drop constraint " in stepTo22()
1466 d->t->enqueue( d->q ); in stepTo22()
1467 d->q = new Query( "create unique index fn_uname on " in stepTo22()
1469 d->t->enqueue( d->q ); in stepTo22()
1470 d->t->execute(); in stepTo22()
1471 d->substate = 2; in stepTo22()
1474 if ( d->substate == 2 ) { in stepTo22()
1475 if ( !d->q->done() ) in stepTo22()
1487 if ( d->substate == 0 ) { in stepTo23()
1489 d->q = new Query( "create table deleted_messages (mailbox " in stepTo23()
1497 d->t->enqueue( d->q ); in stepTo23()
1498 d->t->execute(); in stepTo23()
1499 d->substate = 1; in stepTo23()
1502 if ( d->substate == 1 ) { in stepTo23()
1503 if ( !d->q->done() ) in stepTo23()
1515 if ( d->substate == 0 ) { in stepTo24()
1517 d->q = new Query( "select * from information_schema.tables where " in stepTo24()
1519 d->t->enqueue( d->q ); in stepTo24()
1520 d->t->execute(); in stepTo24()
1521 d->substate = 1; in stepTo24()
1524 if ( d->substate == 1 ) { in stepTo24()
1525 if ( !d->q->done() ) in stepTo24()
1527 if ( !d->q->hasResults() ) { in stepTo24()
1528 d->q = new Query( "create table threads (id serial primary " in stepTo24()
1532 d->t->enqueue( d->q ); in stepTo24()
1533 d->q = new Query( "create table thread_members (thread integer " in stepTo24()
1538 d->t->enqueue( d->q ); in stepTo24()
1539 d->t->execute(); in stepTo24()
1540 d->substate = 2; in stepTo24()
1543 d->substate = 0; in stepTo24()
1547 if ( d->substate == 2 ) { in stepTo24()
1548 if ( !d->q->done() ) in stepTo24()
1560 if ( d->substate == 0 ) { in stepTo25()
1562 d->q = new Query( "create sequence nextmodsequence", this ); in stepTo25()
1563 d->t->enqueue( d->q ); in stepTo25()
1564 d->q = new Query( "grant select,update on nextmodsequence to " + in stepTo25()
1565 d->dbuser, this ); in stepTo25()
1566 d->t->enqueue( d->q ); in stepTo25()
1567 d->q = new Query( "create table modsequences (mailbox integer " in stepTo25()
1571 d->t->enqueue( d->q ); in stepTo25()
1572 d->q = new Query( "grant select,insert,update on modsequences to " + in stepTo25()
1573 d->dbuser, this ); in stepTo25()
1574 d->t->enqueue( d->q ); in stepTo25()
1575 d->t->execute(); in stepTo25()
1576 d->substate = 1; in stepTo25()
1579 if ( d->substate == 1 ) { in stepTo25()
1580 if ( !d->q->done() ) in stepTo25()
1593 if ( d->substate == 0 ) { in stepTo26()
1595 d->q = new Query( "alter table deleted_messages add dtz timestamp " in stepTo26()
1597 d->t->enqueue( d->q ); in stepTo26()
1598 d->q = new Query( "update deleted_messages set dtz=deleted_at", this ); in stepTo26()
1599 d->t->enqueue( d->q ); in stepTo26()
1600 d->q = new Query( "alter table deleted_messages alter dtz set " in stepTo26()
1602 d->t->enqueue( d->q ); in stepTo26()
1603 d->q = new Query( "alter table deleted_messages alter dtz set " in stepTo26()
1605 d->t->enqueue( d->q ); in stepTo26()
1606 d->q = new Query( "alter table deleted_messages drop deleted_at", in stepTo26()
1608 d->t->enqueue( d->q ); in stepTo26()
1609 d->q = new Query( "alter table deleted_messages rename dtz to " in stepTo26()
1611 d->t->enqueue( d->q ); in stepTo26()
1612 d->t->execute(); in stepTo26()
1613 d->substate = 1; in stepTo26()
1616 if ( d->substate == 1 ) { in stepTo26()
1617 if ( !d->q->done() ) in stepTo26()
1629 if ( d->substate == 0 ) { in stepTo27()
1633 if ( d->version.startsWith( "7" ) ) in stepTo27()
1636 d->q = new Query( "alter table modsequences drop constraint " in stepTo27()
1638 d->t->enqueue( d->q ); in stepTo27()
1639 d->q = new Query( "alter table modsequences add constraint " in stepTo27()
1644 d->t->enqueue( d->q ); in stepTo27()
1645 d->t->execute(); in stepTo27()
1646 d->substate = 1; in stepTo27()
1649 if ( d->substate == 1 ) { in stepTo27()
1650 if ( !d->q->done() ) in stepTo27()
1662 if ( d->substate == 0 ) { in stepTo28()
1664 d->q = new Query( "create table deliveries (id serial primary key," in stepTo28()
1671 d->t->enqueue( d->q ); in stepTo28()
1672 d->q = new Query( "grant select,insert,update,delete " in stepTo28()
1673 "on deliveries to " + d->dbuser, this ); in stepTo28()
1674 d->t->enqueue( d->q ); in stepTo28()
1675 d->q = new Query( "grant select,update on deliveries_id_seq " in stepTo28()
1676 "to " + d->dbuser, this ); in stepTo28()
1677 d->t->enqueue( d->q ); in stepTo28()
1678 d->t->execute(); in stepTo28()
1679 d->substate = 1; in stepTo28()
1682 if ( d->substate == 1 ) { in stepTo28()
1683 if ( !d->q->done() ) in stepTo28()
1695 if ( d->substate == 0 ) { in stepTo29()
1697 d->q = new Query( "alter table views add nextmodseq bigint", this ); in stepTo29()
1698 d->t->enqueue( d->q ); in stepTo29()
1699 d->q = new Query( "update views set " in stepTo29()
1701 d->t->enqueue( d->q ); in stepTo29()
1702 d->q = new Query( "alter table views alter nextmodseq " in stepTo29()
1704 d->t->enqueue( d->q ); in stepTo29()
1705 d->q = new Query( "alter table views drop suidnext", this ); in stepTo29()
1706 d->t->enqueue( d->q ); in stepTo29()
1707 d->t->execute(); in stepTo29()
1708 d->substate = 1; in stepTo29()
1711 if ( d->substate == 1 ) { in stepTo29()
1712 if ( !d->q->done() ) in stepTo29()
1724 if ( d->substate == 0 ) { in stepTo30()
1726 d->q = new Query( "create table access_keys (userid integer not null " in stepTo30()
1731 d->t->enqueue( d->q ); in stepTo30()
1732 d->q = new Query( "grant select,insert,delete on access_keys " in stepTo30()
1733 "to " + d->dbuser, this ); in stepTo30()
1734 d->t->enqueue( d->q ); in stepTo30()
1735 d->t->execute(); in stepTo30()
1736 d->substate = 1; in stepTo30()
1739 if ( d->substate == 1 ) { in stepTo30()
1740 if ( !d->q->done() ) in stepTo30()
1752 if ( d->substate == 0 ) { in stepTo31()
1754 d->q = new Query( "create index ald on addresses(lower(localpart), " in stepTo31()
1756 d->t->enqueue( d->q ); in stepTo31()
1757 d->q = new Query( "analyse addresses", this ); in stepTo31()
1758 d->t->enqueue( d->q ); in stepTo31()
1759 d->q = new Query( "create index dm_mu on deleted_messages(mailbox, " in stepTo31()
1761 d->t->enqueue( d->q ); in stepTo31()
1762 d->q = new Query( "create index pn_b on part_numbers(bodypart)", in stepTo31()
1764 d->t->enqueue( d->q ); in stepTo31()
1765 d->t->execute(); in stepTo31()
1766 d->substate = 1; in stepTo31()
1769 if ( d->substate == 1 ) { in stepTo31()
1770 if ( !d->q->done() ) in stepTo31()
1791 if ( d->substate == 0 ) { in stepTo32()
1794 d->q = new Query( "alter table address_fields add number integer", 0 ); in stepTo32()
1795 d->t->enqueue( d->q ); in stepTo32()
1797 d->q = new Query( "set enable_mergejoin to false", 0 ); in stepTo32()
1798 d->t->enqueue( d->q ); in stepTo32()
1800 d->q = new Query( "set enable_hashjoin to false", 0 ); in stepTo32()
1801 d->t->enqueue( d->q ); in stepTo32()
1803 d->q = in stepTo32()
1810 d->t->enqueue( d->q ); in stepTo32()
1812 d->q = new Query( "set enable_mergejoin to true", 0 ); in stepTo32()
1813 d->t->enqueue( d->q ); in stepTo32()
1815 d->q = new Query( "set enable_hashjoin to true", 0 ); in stepTo32()
1816 d->t->enqueue( d->q ); in stepTo32()
1819 d->q = new Query( "create index hf_fp on header_fields(field) where " in stepTo32()
1821 d->t->enqueue( d->q ); in stepTo32()
1823 d->q = in stepTo32()
1828 d->t->enqueue( d->q ); in stepTo32()
1831 if ( d->version.startsWith( "7" ) ) in stepTo32()
1834 d->q = in stepTo32()
1837 d->t->enqueue( d->q ); in stepTo32()
1839 d->q = in stepTo32()
1844 d->t->enqueue( d->q ); in stepTo32()
1846 d->q = in stepTo32()
1851 d->t->enqueue( d->q ); in stepTo32()
1853 d->q = new Query( "drop index hf_fp", this ); in stepTo32()
1854 d->t->enqueue( d->q ); in stepTo32()
1856 d->t->execute(); in stepTo32()
1857 d->substate = 1; in stepTo32()
1860 if ( d->substate == 1 ) { in stepTo32()
1861 if ( !d->q->done() ) in stepTo32()
1873 if ( d->substate == 0 ) { in stepTo33()
1875 d->q = new Query( "create index df_mu on date_fields(mailbox,uid)", in stepTo33()
1877 d->t->enqueue( d->q ); in stepTo33()
1878 d->q = new Query( "create index vm_mu on view_messages (source,suid)", in stepTo33()
1880 d->t->enqueue( d->q ); in stepTo33()
1881 d->q = new Query( "create index ms_mu on modsequences(mailbox,uid)", in stepTo33()
1883 d->t->enqueue( d->q ); in stepTo33()
1884 d->q = new Query( "create index dm_mud on deleted_messages" in stepTo33()
1886 d->t->enqueue( d->q ); in stepTo33()
1887 d->q = new Query( "drop index dm_mu", this ); in stepTo33()
1888 d->t->enqueue( d->q ); in stepTo33()
1889 d->t->execute(); in stepTo33()
1890 d->substate = 1; in stepTo33()
1893 if ( d->substate == 1 ) { in stepTo33()
1894 if ( !d->q->done() ) in stepTo33()
1906 if ( d->substate == 0 ) { in stepTo34()
1908 d->q = new Query( "alter table deliveries add tried_at " in stepTo34()
1910 d->t->enqueue( d->q ); in stepTo34()
1911 d->t->execute(); in stepTo34()
1912 d->substate = 1; in stepTo34()
1915 if ( d->substate == 1 ) { in stepTo34()
1916 if ( !d->q->done() ) in stepTo34()
1928 if ( d->substate == 0 ) { in stepTo35()
1930 d->q = new Query( "alter table deliveries add sender integer " in stepTo35()
1932 d->t->enqueue( d->q ); in stepTo35()
1933 d->q = new Query( "alter table deliveries alter sender set " in stepTo35()
1935 d->t->enqueue( d->q ); in stepTo35()
1936 d->t->execute(); in stepTo35()
1937 d->substate = 1; in stepTo35()
1940 if ( d->substate == 1 ) { in stepTo35()
1941 if ( !d->q->done() ) in stepTo35()
1955 if ( d->substate == 0 ) { in stepTo36()
1957 d->q = new Query( "grant update on deliveries to " + d->dbuser, this ); in stepTo36()
1958 d->t->enqueue( d->q ); in stepTo36()
1959 d->t->execute(); in stepTo36()
1960 d->substate = 1; in stepTo36()
1963 if ( d->substate == 1 ) { in stepTo36()
1964 if ( !d->q->done() ) in stepTo36()
1979 if ( d->substate == 0 ) { in stepTo37()
1981 d->q = new Query( "select * from information_schema.tables where " in stepTo37()
1983 d->t->enqueue( d->q ); in stepTo37()
1984 d->t->execute(); in stepTo37()
1985 d->substate = 1; in stepTo37()
1988 if ( d->substate == 1 ) { in stepTo37()
1989 if ( !d->q->done() ) in stepTo37()
1991 if ( !d->q->hasResults() ) { in stepTo37()
1992 d->q = in stepTo37()
1997 d->t->enqueue( d->q ); in stepTo37()
1998 d->t->execute(); in stepTo37()
1999 d->substate = 2; in stepTo37()
2002 d->substate = 0; in stepTo37()
2006 if ( d->substate == 2 ) { in stepTo37()
2007 if ( !d->q->done() ) in stepTo37()
2019 if ( d->substate == 0 ) { in stepTo38()
2021 d->q = new Query( "grant insert on unparsed_messages " in stepTo38()
2022 "to " + d->dbuser, this ); in stepTo38()
2023 d->t->enqueue( d->q ); in stepTo38()
2024 d->t->execute(); in stepTo38()
2025 d->substate = 1; in stepTo38()
2028 if ( d->substate == 1 ) { in stepTo38()
2029 if ( !d->q->done() ) in stepTo38()
2041 if ( d->substate == 0 ) { in stepTo39()
2043 d->q = in stepTo39()
2046 d->t->enqueue( d->q ); in stepTo39()
2047 d->t->execute(); in stepTo39()
2048 d->substate = 1; in stepTo39()
2051 if ( d->substate == 1 ) { in stepTo39()
2052 if ( !d->q->done() ) in stepTo39()
2064 if ( d->substate == 0 ) { in stepTo40()
2066 d->q = in stepTo40()
2069 d->t->enqueue( d->q ); in stepTo40()
2070 d->t->execute(); in stepTo40()
2071 d->substate = 1; in stepTo40()
2074 if ( d->substate == 1 ) { in stepTo40()
2075 if ( !d->q->done() ) in stepTo40()
2087 if ( d->substate == 0 ) { in stepTo41()
2089 d->q = in stepTo41()
2102 d->t->enqueue( d->q ); in stepTo41()
2103 d->t->execute(); in stepTo41()
2104 d->substate = 1; in stepTo41()
2107 if ( d->substate == 1 ) { in stepTo41()
2108 if ( !d->q->done() ) in stepTo41()
2120 if ( d->substate == 0 ) { in stepTo42()
2122 d->q = in stepTo42()
2129 d->t->enqueue( d->q ); in stepTo42()
2130 d->t->execute(); in stepTo42()
2131 d->substate = 1; in stepTo42()
2134 if ( d->substate == 1 ) { in stepTo42()
2135 if ( !d->q->done() ) in stepTo42()
2147 if ( d->substate == 0 ) { in stepTo43()
2149 d->q = new Query( "alter table mailboxes add nextmodseq bigint", this ); in stepTo43()
2150 d->t->enqueue( d->q ); in stepTo43()
2151 d->q = new Query( "update mailboxes set nextmodseq=" in stepTo43()
2153 d->t->enqueue( d->q ); in stepTo43()
2154 d->q = new Query( "alter table mailboxes alter nextmodseq " in stepTo43()
2156 d->t->enqueue( d->q ); in stepTo43()
2157 d->q = new Query( "alter table mailboxes alter nextmodseq " in stepTo43()
2159 d->t->enqueue( d->q ); in stepTo43()
2160 d->q = new Query( "drop sequence nextmodsequence", this ); in stepTo43()
2161 d->t->enqueue( d->q ); in stepTo43()
2162 d->substate = 1; in stepTo43()
2163 d->t->execute(); in stepTo43()
2166 if ( d->substate == 1 ) { in stepTo43()
2167 if ( !d->q->done() ) in stepTo43()
2179 if ( d->substate == 0 ) { in stepTo44()
2181 d->q = new Query( "alter table annotations add primary key " in stepTo44()
2183 d->t->enqueue( d->q ); in stepTo44()
2184 d->q = new Query( "alter table modsequences add primary key " in stepTo44()
2186 d->t->enqueue( d->q ); in stepTo44()
2187 d->q = new Query( "drop index ms_mu", this ); in stepTo44()
2188 d->t->enqueue( d->q ); in stepTo44()
2189 d->q = new Query( "alter table permissions add primary key " in stepTo44()
2191 d->t->enqueue( d->q ); in stepTo44()
2192 d->q = new Query( "alter table group_members add primary key " in stepTo44()
2194 d->t->enqueue( d->q ); in stepTo44()
2195 d->q = new Query( "alter table thread_members add primary key " in stepTo44()
2197 d->t->enqueue( d->q ); in stepTo44()
2198 d->q = new Query( "alter table mailstore add primary key " in stepTo44()
2200 d->t->enqueue( d->q ); in stepTo44()
2201 d->substate = 1; in stepTo44()
2202 d->t->execute(); in stepTo44()
2205 if ( d->substate == 1 ) { in stepTo44()
2206 if ( !d->q->done() ) in stepTo44()
2218 if ( d->substate == 0 ) { in stepTo45()
2220 d->q = new Query( "create index u_l on users(lower(login))", this ); in stepTo45()
2221 d->t->enqueue( d->q ); in stepTo45()
2222 d->substate = 1; in stepTo45()
2223 d->t->execute(); in stepTo45()
2226 if ( d->substate == 1 ) { in stepTo45()
2227 if ( !d->q->done() ) in stepTo45()
2239 if ( d->substate == 0 ) { in stepTo46()
2241 d->q = new Query( "create aggregate array_accum " in stepTo46()
2244 d->t->enqueue( d->q ); in stepTo46()
2245 d->q = new Query( "delete from deleted_messages where ctid in " in stepTo46()
2251 d->t->enqueue( d->q ); in stepTo46()
2252 d->q = new Query( "drop aggregate array_accum (anyelement)", this ); in stepTo46()
2253 d->t->enqueue( d->q ); in stepTo46()
2254 d->q = new Query( "alter table deleted_messages add " in stepTo46()
2256 d->t->enqueue( d->q ); in stepTo46()
2257 d->substate = 1; in stepTo46()
2258 d->t->execute(); in stepTo46()
2261 if ( d->substate == 1 ) { in stepTo46()
2262 if ( !d->q->done() ) in stepTo46()
2274 if ( d->substate == 0 ) { in stepTo47()
2276 d->q = new Query( "alter table annotations drop constraint " in stepTo47()
2278 d->t->enqueue( d->q ); in stepTo47()
2279 d->q = new Query( "alter table annotations alter owner " in stepTo47()
2281 d->t->enqueue( d->q ); in stepTo47()
2282 d->q = new Query( "alter table annotations add id serial", this ); in stepTo47()
2283 d->t->enqueue( d->q ); in stepTo47()
2284 d->q = new Query( "update annotations set id=nextval(" in stepTo47()
2287 d->t->enqueue( d->q ); in stepTo47()
2288 d->q = new Query( "alter table annotations alter id " in stepTo47()
2290 d->t->enqueue( d->q ); in stepTo47()
2291 d->q = new Query( "alter table annotations add " in stepTo47()
2293 d->t->enqueue( d->q ); in stepTo47()
2294 d->q = new Query( "alter table annotations add " in stepTo47()
2296 d->t->enqueue( d->q ); in stepTo47()
2297 d->substate = 1; in stepTo47()
2298 d->t->execute(); in stepTo47()
2301 if ( d->substate == 1 ) { in stepTo47()
2302 if ( !d->q->done() ) in stepTo47()
2314 if ( d->substate == 0 ) { in stepTo48()
2316 d->q = new Query( "grant select,update on annotations_id_seq " in stepTo48()
2317 "to " + d->dbuser, this ); in stepTo48()
2318 d->t->enqueue( d->q ); in stepTo48()
2319 d->substate = 1; in stepTo48()
2320 d->t->execute(); in stepTo48()
2323 if ( d->substate == 1 ) { in stepTo48()
2324 if ( !d->q->done() ) in stepTo48()
2336 if ( d->substate == 0 ) { in stepTo49()
2338 d->q = new Query( "grant select,insert on threads " in stepTo49()
2339 "to " + d->dbuser, this ); in stepTo49()
2340 d->t->enqueue( d->q ); in stepTo49()
2341 d->q = new Query( "grant select,insert on thread_members " in stepTo49()
2342 "to " + d->dbuser, this ); in stepTo49()
2343 d->t->enqueue( d->q ); in stepTo49()
2344 d->q = new Query( "grant select,update on threads_id_seq " in stepTo49()
2345 "to " + d->dbuser, this ); in stepTo49()
2346 d->t->enqueue( d->q ); in stepTo49()
2347 d->substate = 1; in stepTo49()
2348 d->t->execute(); in stepTo49()
2351 if ( d->substate == 1 ) { in stepTo49()
2352 if ( !d->q->done() ) in stepTo49()
2364 if ( d->substate == 0 ) { in stepTo50()
2366 d->q = new Query( "alter table deliveries add delivered_at " in stepTo50()
2368 d->t->enqueue( d->q ); in stepTo50()
2369 d->substate = 1; in stepTo50()
2370 d->t->execute(); in stepTo50()
2373 if ( d->substate == 1 ) { in stepTo50()
2374 if ( !d->q->done() ) in stepTo50()
2386 if ( d->substate == 0 ) { in stepTo51()
2388 d->q = new Query( "create table delivery_recipients (" in stepTo51()
2393 d->t->enqueue( d->q ); in stepTo51()
2394 d->q = new Query( "grant select, insert, update on " in stepTo51()
2395 "delivery_recipients to " + d->dbuser, this ); in stepTo51()
2396 d->t->enqueue( d->q ); in stepTo51()
2397 d->q = new Query( "alter table deliveries drop recipient", this ); in stepTo51()
2398 d->t->enqueue( d->q ); in stepTo51()
2400 d->q = new Query( "delete from deliveries", this ); in stepTo51()
2401 d->t->enqueue( d->q ); in stepTo51()
2402 d->q = in stepTo51()
2407 d->t->enqueue( d->q ); in stepTo51()
2408 d->substate = 1; in stepTo51()
2409 d->t->execute(); in stepTo51()
2412 if ( d->substate == 1 ) { in stepTo51()
2413 if ( !d->q->done() ) in stepTo51()
2425 if ( d->substate == 0 ) { in stepTo52()
2427 d->q = new Query( "alter table deliveries drop delivered_at", this ); in stepTo52()
2428 d->t->enqueue( d->q ); in stepTo52()
2429 d->q = new Query( "alter table delivery_recipients add " in stepTo52()
2431 d->t->enqueue( d->q ); in stepTo52()
2432 d->q = new Query( "alter table delivery_recipients add " in stepTo52()
2434 d->t->enqueue( d->q ); in stepTo52()
2435 d->substate = 1; in stepTo52()
2436 d->t->execute(); in stepTo52()
2439 if ( d->substate == 1 ) { in stepTo52()
2440 if ( !d->q->done() ) in stepTo52()
2452 if ( d->substate == 0 ) { in stepTo53()
2454 d->q = new Query( "grant select, update on " in stepTo53()
2455 "delivery_recipients_id_seq to " + d->dbuser, this ); in stepTo53()
2456 d->t->enqueue( d->q ); in stepTo53()
2457 d->substate = 1; in stepTo53()
2458 d->t->execute(); in stepTo53()
2461 if ( d->substate == 1 ) { in stepTo53()
2462 if ( !d->q->done() ) in stepTo53()
2474 if ( d->substate == 0 ) { in stepTo54()
2476 d->q = new Query( "alter table deliveries add unique(mailbox,uid)", in stepTo54()
2478 d->t->enqueue( d->q ); in stepTo54()
2479 d->substate = 1; in stepTo54()
2480 d->t->execute(); in stepTo54()
2483 if ( d->substate == 1 ) { in stepTo54()
2484 if ( !d->q->done() ) in stepTo54()
2496 if ( d->substate == 0 ) { in stepTo55()
2498 d->q = new Query( "select id, name from mailboxes where " in stepTo55()
2500 d->t->enqueue( d->q ); in stepTo55()
2501 d->update = 0; in stepTo55()
2502 d->substate = 1; in stepTo55()
2503 d->t->execute(); in stepTo55()
2506 if ( d->substate == 1 ) { in stepTo55()
2507 while ( d->q->hasResults() ) { in stepTo55()
2508 Row * r = d->q->nextRow(); in stepTo55()
2520 d->update = q; in stepTo55()
2523 d->t->enqueue( q ); in stepTo55()
2524 d->t->execute(); in stepTo55()
2528 if ( !d->q->done() ) in stepTo55()
2531 d->substate = 2; in stepTo55()
2534 if ( d->substate == 2 ) { in stepTo55()
2535 if ( d->update && !d->update->done() ) in stepTo55()
2547 if ( d->substate == 0 ) { in stepTo56()
2549 d->q = new Query( "create table vacation_responses (id serial " in stepTo56()
2555 d->t->enqueue( d->q ); in stepTo56()
2556 d->q = new Query( "grant select,insert on vacation_responses " in stepTo56()
2557 "to " + d->dbuser, this ); in stepTo56()
2558 d->t->enqueue( d->q ); in stepTo56()
2559 d->q = new Query( "grant select,update on vacation_responses_id_seq " in stepTo56()
2560 "to " + d->dbuser, this ); in stepTo56()
2561 d->t->enqueue( d->q ); in stepTo56()
2562 d->t->execute(); in stepTo56()
2563 d->substate = 1; in stepTo56()
2566 if ( d->substate == 1 ) { in stepTo56()
2567 if ( !d->q->done() ) in stepTo56()
2582 if ( d->substate == 0 ) { in stepTo57()
2584 d->q = new Query( "drop table vacation_responses", this ); in stepTo57()
2585 d->t->enqueue( d->q ); in stepTo57()
2586 d->q = new Query( "create table autoresponses (id serial " in stepTo57()
2592 d->t->enqueue( d->q ); in stepTo57()
2593 d->q = new Query( "grant select,insert on autoresponses " in stepTo57()
2594 "to " + d->dbuser, this ); in stepTo57()
2595 d->t->enqueue( d->q ); in stepTo57()
2596 d->q = new Query( "grant select,update on autoresponses_id_seq " in stepTo57()
2597 "to " + d->dbuser, this ); in stepTo57()
2598 d->t->enqueue( d->q ); in stepTo57()
2599 d->t->execute(); in stepTo57()
2600 d->substate = 1; in stepTo57()
2603 if ( d->substate == 1 ) { in stepTo57()
2604 if ( !d->q->done() ) in stepTo57()
2616 if ( d->substate == 0 ) { in stepTo58()
2618 d->q = new Query( "alter table scripts drop constraint " in stepTo58()
2620 d->t->enqueue( d->q ); in stepTo58()
2621 d->q = new Query( "alter table scripts add constraint " in stepTo58()
2625 d->t->enqueue( d->q ); in stepTo58()
2626 d->t->execute(); in stepTo58()
2627 d->substate = 1; in stepTo58()
2630 if ( d->substate == 1 ) { in stepTo58()
2631 if ( !d->q->done() ) in stepTo58()
2645 if ( d->substate == 0 ) { in stepTo59()
2647 d->q = new Query( in stepTo59()
2654 d->t->enqueue( d->q ); in stepTo59()
2655 d->t->execute(); in stepTo59()
2656 d->substate = 1; in stepTo59()
2659 if ( d->substate == 1 ) { in stepTo59()
2660 if ( !d->q->done() ) in stepTo59()
2678 Row * r = d->q->nextRow(); in stepTo59()
2682 d->l->log( "Changing " + in stepTo59()
2690 d->t->enqueue( q ); in stepTo59()
2694 d->t->enqueue( q ); in stepTo59()
2698 d->t->enqueue( q ); in stepTo59()
2702 d->t->enqueue( q ); in stepTo59()
2706 d->t->enqueue( q ); in stepTo59()
2710 d->t->enqueue( q ); in stepTo59()
2716 r = d->q->nextRow(); in stepTo59()
2720 d->t->enqueue( q ); in stepTo59()
2724 d->t->enqueue( q ); in stepTo59()
2728 d->t->enqueue( q ); in stepTo59()
2729 d->t->execute(); in stepTo59()
2730 d->substate = 2; in stepTo59()
2733 if ( d->substate == 2 ) { in stepTo59()
2734 if ( !d->q->done() ) in stepTo59()
2746 if ( d->substate == 0 ) { in stepTo60()
2755 d->q = new Query( "alter table messages add id serial", this ); in stepTo60()
2756 d->t->enqueue( d->q ); in stepTo60()
2757 d->q = new Query( "alter table messages alter id set not null", this ); in stepTo60()
2758 d->t->enqueue( d->q ); in stepTo60()
2759 d->q = new Query( "alter table messages add unique(id)", this ); in stepTo60()
2760 d->t->enqueue( d->q ); in stepTo60()
2762 d->q = new Query( "create table mailbox_messages (mailbox integer not " in stepTo60()
2767 d->t->enqueue( d->q ); in stepTo60()
2769 d->q = new Query( "grant select,insert,update on mailbox_messages " in stepTo60()
2770 "to " + d->dbuser, this ); in stepTo60()
2771 d->t->enqueue( d->q ); in stepTo60()
2773 d->q = new Query( "insert into mailbox_messages " in stepTo60()
2779 d->t->enqueue( d->q ); in stepTo60()
2781 d->q = new Query( "alter table messages drop idate", this ); in stepTo60()
2782 d->t->enqueue( d->q ); in stepTo60()
2786 d->q = new Query( "select d.relname::text,c.conname::text," in stepTo60()
2792 d->t->enqueue( d->q ); in stepTo60()
2794 d->substate = 1; in stepTo60()
2795 d->t->execute(); in stepTo60()
2798 if ( d->substate == 1 ) { in stepTo60()
2799 if ( !d->q->done() ) in stepTo60()
2804 if ( d->q->failed() || d->q->rows() == 0 ) { in stepTo60()
2805 fail( "Couldn't fetch references to messages", d->q ); in stepTo60()
2806 d->substate = 42; in stepTo60()
2811 while ( d->q->hasResults() ) { in stepTo60()
2812 Row * r = d->q->nextRow(); in stepTo60()
2819 d->q = new Query( "alter table part_numbers drop constraint " + in stepTo60()
2822 d->t->enqueue( d->q ); in stepTo60()
2824 d->q = new Query( "alter table date_fields drop constraint " + in stepTo60()
2827 d->t->enqueue( d->q ); in stepTo60()
2829 d->q = new Query( "alter table thread_members drop constraint " + in stepTo60()
2832 d->t->enqueue( d->q ); in stepTo60()
2834 d->q = new Query( "alter table flags drop constraint " + in stepTo60()
2836 d->t->enqueue( d->q ); in stepTo60()
2838 d->q = new Query( "delete from flags using deleted_messages d " in stepTo60()
2841 d->t->enqueue( d->q ); in stepTo60()
2843 d->q = new Query( "alter table flags add constraint " in stepTo60()
2848 d->t->enqueue( d->q ); in stepTo60()
2850 d->q = new Query( "alter table annotations drop constraint " + in stepTo60()
2853 d->t->enqueue( d->q ); in stepTo60()
2855 d->q = new Query( "delete from annotations using " in stepTo60()
2860 d->t->enqueue( d->q ); in stepTo60()
2862 d->q = new Query( "alter table annotations add constraint " in stepTo60()
2867 d->t->enqueue( d->q ); in stepTo60()
2869 d->q = new Query( "alter table view_messages drop constraint " + in stepTo60()
2872 d->t->enqueue( d->q ); in stepTo60()
2874 d->q = new Query( "alter table deleted_messages drop constraint " + in stepTo60()
2877 d->t->enqueue( d->q ); in stepTo60()
2879 d->q = new Query( "alter table modsequences drop constraint " + in stepTo60()
2882 d->t->enqueue( d->q ); in stepTo60()
2884 d->q = new Query( "alter table deliveries drop constraint " + in stepTo60()
2887 d->t->enqueue( d->q ); in stepTo60()
2889 d->q = new Query( "select d.relname::text,c.conname::text," in stepTo60()
2895 d->t->enqueue( d->q ); in stepTo60()
2897 d->substate = 2; in stepTo60()
2898 d->t->execute(); in stepTo60()
2902 if ( d->substate == 2 ) { in stepTo60()
2903 if ( !d->q->done() ) in stepTo60()
2909 if ( d->q->failed() || d->q->rows() == 0 ) { in stepTo60()
2910 fail( "Couldn't fetch references to part_numbers", d->q ); in stepTo60()
2911 d->substate = 42; in stepTo60()
2916 while ( d->q->hasResults() ) { in stepTo60()
2917 Row * r = d->q->nextRow(); in stepTo60()
2924 d->q = new Query( "alter table header_fields drop constraint " + in stepTo60()
2927 d->t->enqueue( d->q ); in stepTo60()
2929 d->q = new Query( "alter table address_fields drop constraint " + in stepTo60()
2932 d->t->enqueue( d->q ); in stepTo60()
2934 d->q = new Query( "alter table part_numbers add message " in stepTo60()
2936 d->t->enqueue( d->q ); in stepTo60()
2938 d->q = new Query( "update part_numbers set message=m.id " in stepTo60()
2942 d->t->enqueue( d->q ); in stepTo60()
2944 d->q = new Query( "alter table part_numbers alter message " in stepTo60()
2946 d->t->enqueue( d->q ); in stepTo60()
2948 d->q = new Query( "alter table part_numbers add constraint " in stepTo60()
2952 d->t->enqueue( d->q ); in stepTo60()
2954 d->q = new Query( "select d.relname::text,c.conname::text," in stepTo60()
2959 d->t->enqueue( d->q ); in stepTo60()
2961 d->substate = 3; in stepTo60()
2962 d->t->execute(); in stepTo60()
2966 if ( d->substate == 3 ) { in stepTo60()
2967 if ( !d->q->done() ) in stepTo60()
2970 if ( d->q->failed() || d->q->rows() != 1 ) { in stepTo60()
2971 fail( "Couldn't fetch primary key for part_numbers", d->q ); in stepTo60()
2972 d->substate = 42; in stepTo60()
2975 Row * r = d->q->nextRow(); in stepTo60()
2977 d->q = new Query( "alter table part_numbers drop constraint " + in stepTo60()
2979 d->t->enqueue( d->q ); in stepTo60()
2980 d->q = new Query( "alter table part_numbers add constraint " in stepTo60()
2983 d->t->enqueue( d->q ); in stepTo60()
2985 d->q = new Query( "select d.relname::text,c.conname::text," in stepTo60()
2990 d->t->enqueue( d->q ); in stepTo60()
2992 d->substate = 4; in stepTo60()
2993 d->t->execute(); in stepTo60()
2997 if ( d->substate == 4 ) { in stepTo60()
2998 if ( !d->q->done() ) in stepTo60()
3001 if ( d->q->failed() || d->q->rows() == 0 ) { in stepTo60()
3002 fail( "Couldn't fetch unique constraint on header_fields", d->q ); in stepTo60()
3003 d->substate = 42; in stepTo60()
3008 while ( d->q->hasResults() ) { in stepTo60()
3009 Row * r = d->q->nextRow(); in stepTo60()
3016 d->q = new Query( "alter table header_fields drop constraint " + in stepTo60()
3019 d->t->enqueue( d->q ); in stepTo60()
3021 d->q = new Query( "alter table header_fields add message " in stepTo60()
3023 d->t->enqueue( d->q ); in stepTo60()
3024 d->q = new Query( "alter table address_fields add message " in stepTo60()
3026 d->t->enqueue( d->q ); in stepTo60()
3027 d->q = new Query( "alter table date_fields add message " in stepTo60()
3029 d->t->enqueue( d->q ); in stepTo60()
3031 d->q = new Query( "update header_fields set message=m.id " in stepTo60()
3035 d->t->enqueue( d->q ); in stepTo60()
3036 d->q = new Query( "update address_fields set message=m.id " in stepTo60()
3040 d->t->enqueue( d->q ); in stepTo60()
3041 d->q = new Query( "update date_fields set message=m.id from " in stepTo60()
3045 d->t->enqueue( d->q ); in stepTo60()
3047 d->q = new Query( "alter table header_fields alter message " in stepTo60()
3049 d->t->enqueue( d->q ); in stepTo60()
3050 d->q = new Query( "alter table address_fields alter message " in stepTo60()
3052 d->t->enqueue( d->q ); in stepTo60()
3053 d->q = new Query( "alter table date_fields alter message " in stepTo60()
3055 d->t->enqueue( d->q ); in stepTo60()
3057 d->q = new Query( "drop index hf_mup", this ); in stepTo60()
3058 d->t->enqueue( d->q ); in stepTo60()
3059 d->q = new Query( "drop index af_mu", this ); in stepTo60()
3060 d->t->enqueue( d->q ); in stepTo60()
3061 d->q = new Query( "drop index df_mu", this ); in stepTo60()
3062 d->t->enqueue( d->q ); in stepTo60()
3064 d->q = new Query( "alter table header_fields drop mailbox", this ); in stepTo60()
3065 d->t->enqueue( d->q ); in stepTo60()
3066 d->q = new Query( "alter table address_fields drop mailbox", this ); in stepTo60()
3067 d->t->enqueue( d->q ); in stepTo60()
3068 d->q = new Query( "alter table date_fields drop mailbox", this ); in stepTo60()
3069 d->t->enqueue( d->q ); in stepTo60()
3071 d->q = new Query( "alter table header_fields drop uid", this ); in stepTo60()
3072 d->t->enqueue( d->q ); in stepTo60()
3073 d->q = new Query( "alter table address_fields drop uid", this ); in stepTo60()
3074 d->t->enqueue( d->q ); in stepTo60()
3075 d->q = new Query( "alter table date_fields drop uid", this ); in stepTo60()
3076 d->t->enqueue( d->q ); in stepTo60()
3078 d->q = new Query( "alter table header_fields add constraint " in stepTo60()
3083 d->t->enqueue( d->q ); in stepTo60()
3084 d->q = new Query( "alter table address_fields add constraint " in stepTo60()
3089 d->t->enqueue( d->q ); in stepTo60()
3090 d->q = new Query( "alter table date_fields add constraint " in stepTo60()
3094 d->t->enqueue( d->q ); in stepTo60()
3096 d->q = new Query( "alter table header_fields add constraint " in stepTo60()
3099 d->t->enqueue( d->q ); in stepTo60()
3101 d->q = new Query( "create index af_mp on address_fields " in stepTo60()
3103 d->t->enqueue( d->q ); in stepTo60()
3105 d->q = new Query( "alter table part_numbers drop mailbox", this ); in stepTo60()
3106 d->t->enqueue( d->q ); in stepTo60()
3107 d->q = new Query( "alter table part_numbers drop uid", this ); in stepTo60()
3108 d->t->enqueue( d->q ); in stepTo60()
3110 d->substate = 5; in stepTo60()
3111 d->t->execute(); in stepTo60()
3115 if ( d->substate == 5 ) { in stepTo60()
3116 if ( !d->q->done() ) in stepTo60()
3121 d->q = new Query( "alter table deliveries add message " in stepTo60()
3123 d->t->enqueue( d->q ); in stepTo60()
3125 d->q = new Query( "update deliveries set message=m.id " in stepTo60()
3129 d->t->enqueue( d->q ); in stepTo60()
3131 d->q = new Query( "alter table deliveries alter message " in stepTo60()
3133 d->t->enqueue( d->q ); in stepTo60()
3135 d->q = new Query( "alter table deliveries drop mailbox", this ); in stepTo60()
3136 d->t->enqueue( d->q ); in stepTo60()
3138 d->q = new Query( "alter table deliveries drop uid", this ); in stepTo60()
3139 d->t->enqueue( d->q ); in stepTo60()
3141 d->q = new Query( "alter table deliveries add constraint " in stepTo60()
3145 d->t->enqueue( d->q ); in stepTo60()
3146 d->q = new Query( "alter table deliveries add constraint " in stepTo60()
3149 d->t->enqueue( d->q ); in stepTo60()
3151 d->substate = 6; in stepTo60()
3152 d->t->execute(); in stepTo60()
3155 if ( d->substate == 6 ) { in stepTo60()
3156 if ( !d->q->done() ) in stepTo60()
3161 d->q = new Query( "alter table deleted_messages add message " in stepTo60()
3163 d->t->enqueue( d->q ); in stepTo60()
3165 d->q = new Query( "update deleted_messages set message=m.id " in stepTo60()
3169 d->t->enqueue( d->q ); in stepTo60()
3171 d->q = new Query( "alter table deleted_messages alter message " in stepTo60()
3173 d->t->enqueue( d->q ); in stepTo60()
3175 d->q = new Query( "alter table deleted_messages add constraint " in stepTo60()
3178 d->t->enqueue( d->q ); in stepTo60()
3179 d->q = new Query( "alter table deleted_messages add constraint " in stepTo60()
3182 d->t->enqueue( d->q ); in stepTo60()
3184 d->substate = 7; in stepTo60()
3185 d->t->execute(); in stepTo60()
3188 if ( d->substate == 7 ) { in stepTo60()
3189 if ( !d->q->done() ) in stepTo60()
3194 d->q = new Query( "alter table messages drop mailbox", this ); in stepTo60()
3195 d->t->enqueue( d->q ); in stepTo60()
3196 d->q = new Query( "alter table messages drop uid", this ); in stepTo60()
3197 d->t->enqueue( d->q ); in stepTo60()
3199 d->q = new Query( "drop table modsequences", this ); in stepTo60()
3200 d->t->enqueue( d->q ); in stepTo60()
3201 d->q = new Query( "drop table view_messages", this ); in stepTo60()
3202 d->t->enqueue( d->q ); in stepTo60()
3204 d->q = new Query( "select d.relname::text,c.conname::text," in stepTo60()
3209 d->t->enqueue( d->q ); in stepTo60()
3211 d->substate = 8; in stepTo60()
3212 d->t->execute(); in stepTo60()
3215 if ( d->substate == 8 ) { in stepTo60()
3216 if ( !d->q->done() ) in stepTo60()
3221 if ( d->q->failed() || d->q->rows() == 0 ) { in stepTo60()
3222 fail( "Couldn't fetch unique constraint on users", d->q ); in stepTo60()
3223 d->substate = 42; in stepTo60()
3226 Row * r = d->q->nextRow(); in stepTo60()
3228 d->q = new Query( "alter table users drop constraint " + in stepTo60()
3230 d->t->enqueue( d->q ); in stepTo60()
3231 d->q = new Query( "drop index u_l", this ); in stepTo60()
3232 d->t->enqueue( d->q ); in stepTo60()
3233 d->q = new Query( "create unique index u_l on users " in stepTo60()
3235 d->t->enqueue( d->q ); in stepTo60()
3237 d->substate = 9; in stepTo60()
3238 d->t->execute(); in stepTo60()
3242 if ( d->substate == 9 ) { in stepTo60()
3243 if ( !d->q->done() ) in stepTo60()
3246 d->substate = 42; in stepTo60()
3249 if ( d->substate == 42 ) { in stepTo60()
3250 if ( !d->q->done() ) in stepTo60()
3262 if ( d->substate == 0 ) { in stepTo61()
3264 d->q = new Query( "grant select,update on messages_id_seq " in stepTo61()
3265 "to " + d->dbuser, this ); in stepTo61()
3266 d->t->enqueue( d->q ); in stepTo61()
3267 d->substate = 1; in stepTo61()
3268 d->t->execute(); in stepTo61()
3271 if ( d->substate == 1 ) { in stepTo61()
3272 if ( !d->q->done() ) in stepTo61()
3284 if ( d->substate == 0 ) { in stepTo62()
3286 d->q = new Query( "select lanname::text from pg_catalog.pg_language " in stepTo62()
3288 d->t->enqueue( d->q ); in stepTo62()
3289 d->substate = 1; in stepTo62()
3290 d->t->execute(); in stepTo62()
3293 if ( d->substate == 1 ) { in stepTo62()
3294 if ( !d->q->done() ) in stepTo62()
3297 if ( d->q->failed() || !d->q->hasResults() ) { in stepTo62()
3300 d->substate = 42; in stepTo62()
3303 d->q = in stepTo62()
3309 d->t->enqueue( d->q ); in stepTo62()
3310 d->q = in stepTo62()
3314 d->t->enqueue( d->q ); in stepTo62()
3315 d->substate = 2; in stepTo62()
3316 d->t->execute(); in stepTo62()
3320 if ( d->substate == 2 ) { in stepTo62()
3321 if ( !d->q->done() ) in stepTo62()
3333 if ( d->substate == 0 ) { in stepTo63()
3335 d->q = new Query( "alter table deleted_messages add " in stepTo63()
3337 d->t->enqueue( d->q ); in stepTo63()
3338 d->q = new Query( "update deleted_messages set modseq=nextmodseq-1 " in stepTo63()
3341 d->t->enqueue( d->q ); in stepTo63()
3342 d->q = new Query( "alter table deleted_messages alter modseq " in stepTo63()
3344 d->t->enqueue( d->q ); in stepTo63()
3345 d->substate = 1; in stepTo63()
3346 d->t->execute(); in stepTo63()
3349 if ( d->substate == 1 ) { in stepTo63()
3350 if ( !d->q->done() ) in stepTo63()
3362 if ( d->substate == 0 ) { in stepTo64()
3364 d->q = new Query( "alter table deleted_messages drop constraint " in stepTo64()
3366 d->t->enqueue( d->q ); in stepTo64()
3367 d->q = new Query( "alter table deleted_messages add constraint " in stepTo64()
3371 d->t->enqueue( d->q ); in stepTo64()
3372 d->substate = 1; in stepTo64()
3373 d->t->execute(); in stepTo64()
3376 if ( d->substate == 1 ) { in stepTo64()
3377 if ( !d->q->done() ) in stepTo64()
3391 if ( d->substate == 0 ) { in stepTo65()
3393 d->q = new Query( "grant update on threads to " + d->dbuser, this ); in stepTo65()
3394 d->t->enqueue( d->q ); in stepTo65()
3395 d->substate = 1; in stepTo65()
3396 d->t->execute(); in stepTo65()
3399 if ( d->substate == 1 ) { in stepTo65()
3400 if ( !d->q->done() ) in stepTo65()
3412 if ( d->substate == 0 ) { in stepTo66()
3414 d->q = new Query( "select d.relname::text,c.conname::text," in stepTo66()
3419 d->t->enqueue( d->q ); in stepTo66()
3420 d->substate = 1; in stepTo66()
3421 d->t->execute(); in stepTo66()
3424 if ( d->substate == 1 ) { in stepTo66()
3425 if ( !d->q->done() ) in stepTo66()
3428 if ( d->q->failed() || d->q->rows() == 0 ) { in stepTo66()
3429 fail( "Couldn't fetch unique constraint on threads", d->q ); in stepTo66()
3430 d->substate = 42; in stepTo66()
3433 Row * r = d->q->nextRow(); in stepTo66()
3434 d->q = new Query( "alter table threads drop constraint " + in stepTo66()
3436 d->t->enqueue( d->q ); in stepTo66()
3437 d->q = new Query( "alter table threads add constraint " in stepTo66()
3440 d->t->enqueue( d->q ); in stepTo66()
3441 d->substate = 2; in stepTo66()
3442 d->t->execute(); in stepTo66()
3446 if ( d->substate == 2 ) { in stepTo66()
3447 if ( !d->q->done() ) in stepTo66()
3461 if ( d->substate == 0 ) { in stepTo67()
3463 d->q = new Query( "create index mm_m on mailbox_messages(message)", this ); in stepTo67()
3464 d->t->enqueue( d->q ); in stepTo67()
3465 d->q = new Query( "create index dm_m on deleted_messages(message)", this ); in stepTo67()
3466 d->t->enqueue( d->q ); in stepTo67()
3467 d->q = new Query( "create index df_m on date_fields(message)", this ); in stepTo67()
3468 d->t->enqueue( d->q ); in stepTo67()
3469 d->q = new Query( "create index hf_msgid on header_fields(value) " in stepTo67()
3471 d->t->enqueue( d->q ); in stepTo67()
3472 d->substate = 1; in stepTo67()
3473 d->t->execute(); in stepTo67()
3476 if ( d->substate == 1 ) { in stepTo67()
3477 if ( !d->q->done() ) in stepTo67()
3489 if ( d->substate == 0 ) { in stepTo68()
3491 d->q = new Query( in stepTo68()
3498 d->t->enqueue( d->q ); in stepTo68()
3499 d->substate = 1; in stepTo68()
3500 d->t->execute(); in stepTo68()
3503 if ( d->substate == 1 ) { in stepTo68()
3504 if ( !d->q->done() ) in stepTo68()
3516 if ( d->substate == 0 ) { in stepTo69()
3518 d->q = new Query( in stepTo69()
3524 d->t->enqueue( d->q ); in stepTo69()
3525 d->q = new Query( "alter table subscriptions add " in stepTo69()
3527 d->t->enqueue( d->q ); in stepTo69()
3528 d->substate = 1; in stepTo69()
3529 d->t->execute(); in stepTo69()
3532 if ( d->substate == 1 ) { in stepTo69()
3533 if ( !d->q->done() ) in stepTo69()
3545 if ( d->substate == 0 ) { in stepTo70()
3547 d->q = new Query( in stepTo70()
3553 d->t->enqueue( d->q ); in stepTo70()
3554 d->substate = 1; in stepTo70()
3555 d->t->execute(); in stepTo70()
3558 if ( d->substate == 1 ) { in stepTo70()
3559 if ( !d->q->done() ) in stepTo70()
3571 if ( d->substate == 0 ) { in stepTo71()
3573 d->q = new Query( "grant insert,delete on connections to " + d->dbuser, in stepTo71()
3575 d->t->enqueue( d->q ); in stepTo71()
3576 d->q = new Query( "grant select,update on connections_id_seq to " + in stepTo71()
3577 d->dbuser, this ); in stepTo71()
3578 d->t->enqueue( d->q ); in stepTo71()
3579 d->q = new Query( "grant select,insert,delete on fileinto_targets " in stepTo71()
3580 "to " + d->dbuser, this ); in stepTo71()
3581 d->t->enqueue( d->q ); in stepTo71()
3582 d->q = new Query( "grant select,update on fileinto_targets_id_seq " in stepTo71()
3583 "to " + d->dbuser, this ); in stepTo71()
3584 d->t->enqueue( d->q ); in stepTo71()
3585 d->substate = 1; in stepTo71()
3586 d->t->execute(); in stepTo71()
3589 if ( d->substate == 1 ) { in stepTo71()
3590 if ( !d->q->done() ) in stepTo71()
3602 if ( d->substate == 0 ) { in stepTo72()
3604 d->q = new Query( in stepTo72()
3610 d->t->enqueue( d->q ); in stepTo72()
3611 d->substate = 1; in stepTo72()
3612 d->t->execute(); in stepTo72()
3617 if ( d->q ) { in stepTo72()
3618 if ( !d->q->done() ) in stepTo72()
3620 else if ( !d->row ) in stepTo72()
3622 "\t- Found %d messages.\n", d->q->rows() ); in stepTo72()
3625 while ( d->row || d->q->hasResults() ) { in stepTo72()
3626 if ( !d->row ) in stepTo72()
3627 d->row = d->q->nextRow(); in stepTo72()
3629 uint mailbox = d->row->getInt( "mailbox" ); in stepTo72()
3630 uint uid = d->row->getInt( "uid" ); in stepTo72()
3632 if ( mailbox != d->lastMailbox && !d->quid ) { in stepTo72()
3633 if ( d->lastMailbox ) { in stepTo72()
3638 q->bind( 1, d->lastMailbox ); in stepTo72()
3639 q->bind( 2, d->count ); in stepTo72()
3640 d->t->enqueue( q ); in stepTo72()
3645 d->row->getUString( "name" ).ascii().cstr() ); in stepTo72()
3646 d->lastMailbox = mailbox; in stepTo72()
3647 d->count = 0; in stepTo72()
3649 d->quid = new Query( in stepTo72()
3653 d->quid->bind( 1, d->lastMailbox ); in stepTo72()
3654 d->t->enqueue( d->quid ); in stepTo72()
3655 d->t->execute(); in stepTo72()
3658 if ( d->quid ) { in stepTo72()
3659 if ( !d->quid->done() ) in stepTo72()
3662 Row * r = d->quid->nextRow(); in stepTo72()
3663 d->uidnext = r->getInt( "uidnext" ); in stepTo72()
3664 d->nextmodseq = r->getBigint( "nextmodseq" ); in stepTo72()
3665 d->quid = 0; in stepTo72()
3673 d->t->enqueue( q ); in stepTo72()
3681 q->bind( 2, d->uidnext+d->count ); in stepTo72()
3682 q->bind( 3, d->row->getInt( "message" ) ); in stepTo72()
3683 q->bind( 4, d->nextmodseq ); in stepTo72()
3684 d->t->enqueue( q ); in stepTo72()
3686 d->count++; in stepTo72()
3687 d->row = 0; in stepTo72()
3688 d->quid = 0; in stepTo72()
3689 d->undel = 0; in stepTo72()
3692 if ( d->substate == 1 ) { in stepTo72()
3693 d->q = new Query( in stepTo72()
3703 d->t->enqueue( d->q ); in stepTo72()
3704 d->substate = 2; in stepTo72()
3705 d->t->execute(); in stepTo72()
3711 if ( d->substate == 2 ) { in stepTo72()
3712 if ( d->lastMailbox ) { in stepTo72()
3716 q->bind( 1, d->lastMailbox ); in stepTo72()
3717 q->bind( 2, d->count ); in stepTo72()
3718 d->t->enqueue( q ); in stepTo72()
3730 if ( d->substate == 0 ) { in stepTo73()
3732 d->q = new Query( "delete from connections", this ); in stepTo73()
3733 d->t->enqueue( d->q ); in stepTo73()
3734 d->q = new Query( "alter table connections add address " in stepTo73()
3736 d->t->enqueue( d->q ); in stepTo73()
3737 d->q = new Query( "alter table connections add port " in stepTo73()
3739 d->t->enqueue( d->q ); in stepTo73()
3740 d->q = new Query( "alter table connections drop client", this ); in stepTo73()
3741 d->t->enqueue( d->q ); in stepTo73()
3742 d->substate = 1; in stepTo73()
3743 d->t->execute(); in stepTo73()
3746 if ( d->substate == 1 ) { in stepTo73()
3747 if ( !d->q->done() ) in stepTo73()
3759 if ( d->substate == 0 ) { in stepTo74()
3761 d->substate = 1; in stepTo74()
3762 d->t->enqueue( new Query( "alter table bodyparts " in stepTo74()
3764 d->t->execute(); in stepTo74()
3775 if ( d->substate == 0 ) { in stepTo75()
3777 d->substate = 1; in stepTo75()
3778 d->t->enqueue( new Query( "create index b_h on bodyparts(hash)", 0 ) ); in stepTo75()
3779 d->t->execute(); in stepTo75()
3790 if ( d->substate == 0 ) { in stepTo76()
3792 d->q = new Query( "select 42 as answer from pg_indexes " in stepTo76()
3794 d->q->bind( 1, Configuration::text( Configuration::DbSchema ) ); in stepTo76()
3795 d->t->enqueue( d->q ); in stepTo76()
3796 d->substate = 1; in stepTo76()
3797 d->t->enqueue( new Query( "delete from thread_members", 0 ) ); in stepTo76()
3798 d->t->enqueue( new Query( "delete from threads", 0 ) ); in stepTo76()
3799 d->t->enqueue( new Query( "alter table deliveries drop tried_at", 0 ) ); in stepTo76()
3800 d->t->execute(); in stepTo76()
3803 if ( d->substate == 1 ) { in stepTo76()
3804 if ( !d->q->done() ) in stepTo76()
3806 if ( !d->q->hasResults() ) { in stepTo76()
3807 d->t->enqueue( new Query( "create index dm_mm on deleted_messages " in stepTo76()
3809 d->t->execute(); in stepTo76()
3811 d->substate = 2; in stepTo76()
3828 if ( d->substate == 0 ) { in stepTo77()
3830 d->substate = 1; in stepTo77()
3831 d->q = new Query( "select 42 as answer " in stepTo77()
3837 d->q->bind( 1, Configuration::text( Configuration::DbSchema ) ); in stepTo77()
3838 d->t->enqueue( d->q ); in stepTo77()
3839 d->t->execute(); in stepTo77()
3842 if ( d->substate == 1 ) { in stepTo77()
3843 if ( !d->q->done() ) in stepTo77()
3845 if ( !d->q->hasResults() ) { in stepTo77()
3846 d->t->enqueue( new Query( "alter table users add ldapdn text", 0 ) ); in stepTo77()
3847 d->t->execute(); in stepTo77()
3849 d->substate = 2; in stepTo77()
3860 if ( d->substate == 0 ) { in stepTo78()
3862 d->substate = 1; in stepTo78()
3863 d->t->enqueue( new Query( "alter table messages add idate int", 0 ) ); in stepTo78()
3864 d->t->enqueue( new Query( "update messages set idate=mm.idate " in stepTo78()
3867 d->t->enqueue( new Query( "update messages set idate=0 " in stepTo78()
3869 d->t->enqueue( new Query( "alter table messages alter idate " in stepTo78()
3871 d->t->enqueue( new Query( "alter table mailbox_messages " in stepTo78()
3873 d->t->execute(); in stepTo78()
3884 if ( d->substate == 0 ) { in stepTo79()
3886 d->substate = 1; in stepTo79()
3887 d->t->enqueue( new Query( "create table thread_indexes " in stepTo79()
3890 d->t->enqueue( new Query( "create index ti_outlook_hack on " in stepTo79()
3892 d->t->execute(); in stepTo79()
3903 if ( d->substate == 0 ) { in stepTo80()
3905 d->substate = 1; in stepTo80()
3906 d->t->enqueue( new Query( "alter table thread_indexes drop constraint " in stepTo80()
3908 d->t->enqueue( new Query( "alter table thread_indexes add constraint " in stepTo80()
3912 d->t->execute(); in stepTo80()
3931 d->t->enqueue( in stepTo81()
3938 d->t->enqueue( in stepTo81()
3950 d->t->enqueue( in stepTo81()
3978 d->t->enqueue( in stepTo82()
3989 d->t->enqueue( in stepTo82()
3996 d->t->enqueue( in stepTo82()
4023 d->t->enqueue( in stepTo82()
4041 d->t->enqueue( new Query( "alter table mailbox_messages " in stepTo83()
4053 d->t->enqueue( q ); in stepTo83()
4061 d->t->enqueue( q ); in stepTo83()
4068 d->t->enqueue( q ); in stepTo83()
4079 d->t->enqueue( new Query( "create table retention_policies (id serial " in stepTo84()
4097 d->t->enqueue( in stepTo85()
4103 d->t->enqueue( in stepTo85()
4109 d->t->enqueue( in stepTo85()
4124 d->t->enqueue( in stepTo85()
4132 d->t->enqueue( in stepTo85()
4151 d->t->enqueue( in stepTo86()
4157 d->t->enqueue( in stepTo86()
4163 d->t->enqueue( in stepTo86()
4193 if ( d->substate == 0 ) { in stepTo87()
4195 d->substate++; in stepTo87()
4196 Mailbox::refreshMailboxes( d->t ); in stepTo87()
4199 if ( d->substate == 1 ) { in stepTo87()
4206 d->q = new Query( "copy mailboxes (name) from stdin with binary", 0 ); in stepTo87()
4210 d->q->bind( 1, m->name() ); in stepTo87()
4211 d->q->submitLine(); in stepTo87()
4215 d->substate++; in stepTo87()
4216 d->t->enqueue( d->q ); in stepTo87()
4217 d->t->enqueue( in stepTo87()
4233 if ( d->substate == 0 ) { in stepTo88()
4235 d->t->enqueue( new Query( "alter table users alter alias " in stepTo88()
4237 d->t->enqueue( in stepTo88()
4244 d->substate++; in stepTo88()
4256 d->t->enqueue( "alter table connections add username text" ); in stepTo89()
4257 d->t->enqueue( "update connections set username=users.login " in stepTo89()
4259 d->t->enqueue( "alter table connections drop userid" ); in stepTo89()
4269 d->t->enqueue( "alter table deliveries " in stepTo90()
4290 d->t->enqueue( "alter table connections " in stepTo92()
4304 d->t->enqueue( "alter table users " in stepTo93()
4315 d->t->enqueue( "alter table group_members rename groupname to groupid" ); in stepTo94()
4325 d->t->enqueue( "create table thread_roots (id serial primary key, " in stepTo95()
4327 d->t->enqueue( "alter table messages add thread_root integer " in stepTo95()
4329 d->t->enqueue( "create or replace function merge_threads(t integer, f integer) " in stepTo95()
4335 d->t->enqueue( "grant execute on function " in stepTo95()
4337 d->dbuser.unquoted() ); in stepTo95()
4338 d->t->enqueue( "drop table thread_members" ); in stepTo95()
4339 d->t->enqueue( "drop table threads" ); in stepTo95()
4350 d->t->enqueue( "create extension if not exists citext" ); in stepTo96()
4351 d->t->enqueue( "drop index if exists addresses_nld_key" ); in stepTo96()
4352 d->t->enqueue( "drop index if exists ald" ); in stepTo96()
4353 d->t->enqueue( "alter table addresses alter localpart type citext" ); in stepTo96()
4354 d->t->enqueue( "alter table addresses alter domain type citext" ); in stepTo96()
4366 d->t->enqueue( "create temporary table numbers on commit drop as " in stepTo96()
4375 d->t->enqueue( "update aliases a " in stepTo96()
4378 d->t->enqueue( "update address_fields af " in stepTo96()
4381 d->t->enqueue( "update deliveries d " in stepTo96()
4384 d->t->enqueue( "update delivery_recipients dr " in stepTo96()
4387 d->t->enqueue( "update autoresponses ar " in stepTo96()
4390 d->t->enqueue( "update autoresponses ar " in stepTo96()
4394 d->t->enqueue( "delete from addresses where id in (select id from numbers)" ); in stepTo96()
4398 d->t->enqueue( "create unique index addresses_ldn_key " in stepTo96()
4409 d->t->enqueue( "delete from views" ); in stepTo97()
4410 d->t->enqueue( "drop table views" ); in stepTo97()
4420 d->t->enqueue( "alter table mailboxes add flag text" ); in stepTo98()