mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
ECPG: Make the preprocessor emit ';' if the variable type for a list of
variables is varchar. This fixes this test case: int main(void) { exec sql begin declare section; varchar a[50], b[50]; exec sql end declare section; return 0; } Since varchars are internally turned into custom structs and the type name is emitted for these variable declarations, the preprocessed code previously had: struct varchar_1 { ... } a _,_ struct varchar_2 { ... } b ; The comma in the generated C file was a syntax error. There are no regression test changes since it's not exercised. Patch by Boszormenyi Zoltan <zb@cybertec.at>
This commit is contained in:
parent
37364c6311
commit
b46fa32100
@ -837,7 +837,12 @@ opt_signed: SQL_SIGNED
|
||||
variable_list: variable
|
||||
{ $$ = $1; }
|
||||
| variable_list ',' variable
|
||||
{ $$ = cat_str(3, $1, mm_strdup(","), $3); }
|
||||
{
|
||||
if (actual_type[struct_level].type_enum == ECPGt_varchar)
|
||||
$$ = cat_str(3, $1, mm_strdup(";"), $3);
|
||||
else
|
||||
$$ = cat_str(3, $1, mm_strdup(","), $3);
|
||||
}
|
||||
;
|
||||
|
||||
variable: opt_pointer ECPGColLabel opt_array_bounds opt_bit_field opt_initializer
|
||||
|
Loading…
Reference in New Issue
Block a user