Re: bug in COPY
От | Bruce Momjian |
---|---|
Тема | Re: bug in COPY |
Дата | |
Msg-id | 200208272030.g7RKUsh12301@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: bug in COPY (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
Patch applied. --------------------------------------------------------------------------- Tom Lane wrote: > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > Tom Lane wrote: > >> The exclamation point seems inappropriate. Perhaps "zero-length input" > >> would be better than "string" also. > > > I copied the other test case: > > > if (s == (char *) NULL) > > elog(ERROR, "pg_atoi: NULL pointer!"); > > Well, the NULL-pointer test might equally well be coded as an Assert: > it's to catch backend coding errors, not cases of incorrect user input. > So the exclamation point there didn't bother me. > > > I removed them both '!'. > > If you like. But the two conditions are not comparable. > > regards, tom lane > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 Index: src/backend/utils/adt/numutils.c =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/utils/adt/numutils.c,v retrieving revision 1.51 diff -c -c -r1.51 numutils.c *** src/backend/utils/adt/numutils.c 16 Jul 2002 18:34:16 -0000 1.51 --- src/backend/utils/adt/numutils.c 27 Aug 2002 20:28:41 -0000 *************** *** 58,66 **** */ if (s == (char *) NULL) ! elog(ERROR, "pg_atoi: NULL pointer!"); else if (*s == 0) ! l = (long) 0; else l = strtol(s, &badp, 10); --- 58,66 ---- */ if (s == (char *) NULL) ! elog(ERROR, "pg_atoi: NULL pointer"); else if (*s == 0) ! elog(ERROR, "pg_atoi: zero-length string"); else l = strtol(s, &badp, 10); Index: src/test/regress/expected/arrays.out =================================================================== RCS file: /cvsroot/pgsql-server/src/test/regress/expected/arrays.out,v retrieving revision 1.9 diff -c -c -r1.9 arrays.out *** src/test/regress/expected/arrays.out 29 Nov 2001 21:02:41 -0000 1.9 --- src/test/regress/expected/arrays.out 27 Aug 2002 20:28:45 -0000 *************** *** 15,21 **** -- 'e' is also a large object. -- INSERT INTO arrtest (a[5], b[2][1][2], c, d, f, g) ! VALUES ('{1,2,3,4,5}', '{{{},{1,2}}}', '{}', '{}', '{}', '{}'); UPDATE arrtest SET e[0] = '1.1'; UPDATE arrtest SET e[1] = '2.2'; INSERT INTO arrtest (f) --- 15,21 ---- -- 'e' is also a large object. -- INSERT INTO arrtest (a[5], b[2][1][2], c, d, f, g) ! VALUES ('{1,2,3,4,5}', '{{{0,0},{1,2}}}', '{}', '{}', '{}', '{}'); UPDATE arrtest SET e[0] = '1.1'; UPDATE arrtest SET e[1] = '2.2'; INSERT INTO arrtest (f) Index: src/test/regress/expected/copy2.out =================================================================== RCS file: /cvsroot/pgsql-server/src/test/regress/expected/copy2.out,v retrieving revision 1.6 diff -c -c -r1.6 copy2.out *** src/test/regress/expected/copy2.out 22 Aug 2002 00:01:51 -0000 1.6 --- src/test/regress/expected/copy2.out 27 Aug 2002 20:28:45 -0000 *************** *** 34,40 **** ERROR: Attribute "d" specified more than once -- missing data: should fail COPY x from stdin; ! ERROR: copy: line 1, Missing data for column "b" lost synchronization with server, resetting connection COPY x from stdin; ERROR: copy: line 1, Missing data for column "e" --- 34,40 ---- ERROR: Attribute "d" specified more than once -- missing data: should fail COPY x from stdin; ! ERROR: copy: line 1, pg_atoi: zero-length string lost synchronization with server, resetting connection COPY x from stdin; ERROR: copy: line 1, Missing data for column "e" Index: src/test/regress/sql/arrays.sql =================================================================== RCS file: /cvsroot/pgsql-server/src/test/regress/sql/arrays.sql,v retrieving revision 1.8 diff -c -c -r1.8 arrays.sql *** src/test/regress/sql/arrays.sql 21 May 2001 16:54:46 -0000 1.8 --- src/test/regress/sql/arrays.sql 27 Aug 2002 20:28:45 -0000 *************** *** 18,24 **** -- INSERT INTO arrtest (a[5], b[2][1][2], c, d, f, g) ! VALUES ('{1,2,3,4,5}', '{{{},{1,2}}}', '{}', '{}', '{}', '{}'); UPDATE arrtest SET e[0] = '1.1'; --- 18,24 ---- -- INSERT INTO arrtest (a[5], b[2][1][2], c, d, f, g) ! VALUES ('{1,2,3,4,5}', '{{{0,0},{1,2}}}', '{}', '{}', '{}', '{}'); UPDATE arrtest SET e[0] = '1.1';
В списке pgsql-hackers по дате отправления: