From: mar Date: Tue, 16 Jun 1992 11:56:22 +0000 (+0000) Subject: line buffer output; don't do it all in one transaction; trap X-Git-Tag: release77~533 X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/commitdiff_plain/5a2cfcb43761a8eccf4d40c9de655a89f539aada line buffer output; don't do it all in one transaction; trap ingres errors --- diff --git a/afssync/migrate.qc b/afssync/migrate.qc index 1931a2a9..db81efc3 100644 --- a/afssync/migrate.qc +++ b/afssync/migrate.qc @@ -4,6 +4,8 @@ #include +int ingerr(); + main(argc, argv) int argc; char **argv; @@ -40,8 +42,11 @@ char **argv; if (debug > 4) setenv("ING_SET", "set printqry"); + setlinebuf(stdout); + setlinebuf(stderr); if (debug) { printf("Opening database..."); fflush(stdout);} + IIseterr(ingerr); ## ingres sms if (debug) printf("done.\n"); @@ -50,7 +55,6 @@ char **argv; ## range of q is #quota ## retrieve (cell = machine.mach_id) where machine.#name="ATHENA.MIT.EDU" ## retrieve (who = users.users_id) where users.login="root" -## begin transaction while (!feof(input)) { fgets(buf, sizeof(buf), input); @@ -129,7 +133,6 @@ char **argv; ## where tblstats.tbl = "quota" } -## end transaction if (debug) printf("Done.\n"); exit(0); } @@ -176,3 +179,19 @@ char *name; return(buf); } + + +ingerr(num) +int *num; +{ + fprintf(stderr, "An ingres error ocurred, code %d\n", *num); + switch (*num) { + case 4700: + fprintf(stderr, "Deadlock**************************\n"); + break; + default: + fprintf(stderr, "Aborting\n"); + exit(1); + } + return(0); +}