*** postgresql-7.2.1/src/interfaces/ecpg/preproc/pgc.l Thu Mar 28 10:03:48 2002 --- postgresql/src/interfaces/ecpg/preproc/pgc.l Thu Mar 28 10:05:26 2002 *************** *** 837,842 **** } <> { if ( preproc_tos > 0 ) { preproc_tos = 0; --- 837,843 ---- } <> { + if (yy_buffer == NULL) { if ( preproc_tos > 0 ) { preproc_tos = 0; *************** *** 842,849 **** preproc_tos = 0; mmerror(PARSE_ERROR, ET_FATAL, "Missing 'EXEC SQL ENDIF;'"); } - - if (yy_buffer == NULL) yyterminate(); else { --- 843,848 ---- preproc_tos = 0; mmerror(PARSE_ERROR, ET_FATAL, "Missing 'EXEC SQL ENDIF;'"); } yyterminate(); } else *************** *** 845,850 **** if (yy_buffer == NULL) yyterminate(); else { struct _yy_buffer *yb = yy_buffer; --- 844,850 ---- mmerror(PARSE_ERROR, ET_FATAL, "Missing 'EXEC SQL ENDIF;'"); } yyterminate(); + } else { struct _yy_buffer *yb = yy_buffer; *** postgresql-7.2.1/src/interfaces/ecpg/test/test1.pgc Sun Jan 13 08:52:09 2002 --- postgresql/src/interfaces/ecpg/test/test1.pgc Thu Mar 28 09:58:25 2002 *************** *** 17,22 **** /* comment */ exec sql define AMOUNT 6; exec sql type intarray is int[AMOUNT]; exec sql type string is char(8); --- 17,23 ---- /* comment */ exec sql define AMOUNT 6; + exec sql define NAMELEN 8; exec sql type intarray is int[AMOUNT]; *************** *** 19,25 **** exec sql define AMOUNT 6; exec sql type intarray is int[AMOUNT]; - exec sql type string is char(8); typedef int intarray[AMOUNT]; --- 20,25 ---- exec sql define NAMELEN 8; exec sql type intarray is int[AMOUNT]; typedef int intarray[AMOUNT]; *************** *** 27,32 **** main () { exec sql begin declare section; intarray amount; int increment=100; char name[AMOUNT][8]; --- 27,34 ---- main () { exec sql begin declare section; + exec sql ifdef NAMELEN; + typedef char string[NAMELEN]; intarray amount; int increment=100; char name[AMOUNT][NAMELEN]; *************** *** 29,35 **** exec sql begin declare section; intarray amount; int increment=100; ! char name[AMOUNT][8]; char letter[AMOUNT][1]; struct name_letter_struct { --- 31,37 ---- typedef char string[NAMELEN]; intarray amount; int increment=100; ! char name[AMOUNT][NAMELEN]; char letter[AMOUNT][1]; struct name_letter_struct { *************** *** 33,39 **** char letter[AMOUNT][1]; struct name_letter_struct { ! char name[8]; int amount; char letter; } name_letter[AMOUNT]; --- 35,41 ---- char letter[AMOUNT][1]; struct name_letter_struct { ! char name[NAMELEN]; int amount; char letter; } name_letter[AMOUNT]; *************** *** 37,42 **** int amount; char letter; } name_letter[AMOUNT]; struct ind_struct { short a; --- 39,45 ---- int amount; char letter; } name_letter[AMOUNT]; + exec sql endif; struct ind_struct { short a; *************** *** 61,68 **** exec sql connect to pm; strcpy(msg, "create"); ! exec sql at main create table "Test" (name char(8), amount int, letter char(1)); ! exec sql create table "Test" (name char(8), amount int, letter char(1)); strcpy(msg, "commit"); exec sql at main commit; --- 64,71 ---- exec sql connect to pm; strcpy(msg, "create"); ! exec sql at main create table "Test" (name char(NAMELEN), amount int, letter char(1)); ! exec sql create table "Test" (name char(NAMELEN), amount int, letter char(1)); strcpy(msg, "commit"); exec sql at main commit; *************** *** 114,120 **** int a = amount[i]; exec sql end declare section; ! strncpy(n, name[i], 8); printf("name[%d]=%8.8s\tamount[%d]=%d\tletter[%d]=%c\n", i, n, i, a, i, l); amount[i]+=1000; --- 117,123 ---- int a = amount[i]; exec sql end declare section; ! strncpy(n, name[i], NAMELEN); printf("name[%d]=%8.8s\tamount[%d]=%d\tletter[%d]=%c\n", i, n, i, a, i, l); amount[i]+=1000;