|
8 | 8 | *
|
9 | 9 | *
|
10 | 10 | * IDENTIFICATION
|
11 |
| - * $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.310 2009/06/0314:48:33 momjian Exp $ |
| 11 | + * $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.311 2009/06/0315:06:48 tgl Exp $ |
12 | 12 | *
|
13 | 13 | *-------------------------------------------------------------------------
|
14 | 14 | */
|
@@ -175,11 +175,13 @@ typedef struct
|
175 | 175 | /*
|
176 | 176 | * These macros centralize code used to process line_buf and raw_buf buffers.
|
177 | 177 | * They are macros because they often do continue/break control and to avoid
|
178 |
| - * function call overhead in tight COPY loops. "((void) 0)" is used to silence |
179 |
| - * compiler warnings. |
| 178 | + * function call overhead in tight COPY loops. |
180 | 179 | *
|
181 |
| - * We must use "if (1)" because "do {} while(0)" overrides the continue/break |
182 |
| - * processing.See http://www.cit.gu.edu.au/~anthony/info/C/C.macros. |
| 180 | + * We must use "if (1)" because the usual "do {...} while(0)" wrapper would |
| 181 | + * prevent the continue/break processing from working. We end the "if (1)" |
| 182 | + * with "else ((void) 0)" to ensure the "if" does not unintentionally match |
| 183 | + * any "else" in the calling code, and to avoid any compiler warnings about |
| 184 | + * empty statements. See http://www.cit.gu.edu.au/~anthony/info/C/C.macros. |
183 | 185 | */
|
184 | 186 |
|
185 | 187 | /*
|
|