diff --git a/src/pl/plpgsql/src/pl_gram.y b/src/pl/plpgsql/src/pl_gram.y index 7f52849..c43d572 100644 --- a/src/pl/plpgsql/src/pl_gram.y +++ b/src/pl/plpgsql/src/pl_gram.y @@ -2853,6 +2853,7 @@ make_execsql_stmt(int firsttoken, int location) int prev_tok; bool have_into = false; bool have_strict = false; + bool have_attributes = false; int into_start_loc = -1; int into_end_loc = -1; @@ -2907,6 +2908,8 @@ make_execsql_stmt(int firsttoken, int location) continue; /* INSERT INTO is not an INTO-target */ if (firsttoken == K_IMPORT) continue; /* IMPORT ... INTO is not an INTO-target */ + if (!have_attributes) + yyerror("Empty list for INTO-target"); if (have_into) yyerror("INTO specified more than once"); have_into = true; @@ -2915,6 +2918,8 @@ make_execsql_stmt(int firsttoken, int location) read_into_target(&rec, &row, &have_strict); plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_EXPR; } + else + have_attributes = true; } plpgsql_IdentifierLookup = save_IdentifierLookup;