|
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 | /* |
|