|
6 | 6 |
|
7 | 7 | "github.com/cockroachdb/cockroach/pkg/build"
|
8 | 8 | "github.com/cockroachdb/cockroach/pkg/sql/parser"
|
| 9 | + "github.com/cockroachdb/cockroach/pkg/sql/parser/statements" |
9 | 10 | "github.com/cockroachdb/cockroach/pkg/sql/scanner"
|
10 | 11 | "github.com/cockroachdb/cockroach/pkg/sql/sem/tree"
|
11 | 12 | "github.com/cockroachdb/cockroach/pkg/sql/sem/plpgsqltree"
|
@@ -173,7 +174,11 @@ func (u *plpgsqlSymUnion) cursorScrollOption() tree.CursorScrollOption {
|
173 | 174 | }
|
174 | 175 |
|
175 | 176 | func (u *plpgsqlSymUnion) sqlStatement() tree.Statement {
|
176 |
| - return u.val.(tree.Statement) |
| 177 | + return u.val.(statements.Statement[tree.Statement]).AST |
| 178 | +} |
| 179 | + |
| 180 | +func (u *plpgsqlSymUnion) numAnnotations() tree.AnnotationIdx { |
| 181 | + return u.val.(statements.Statement[tree.Statement]).NumAnnotations |
177 | 182 | }
|
178 | 183 |
|
179 | 184 | func (u *plpgsqlSymUnion) variables() []plpgsqltree.Variable {
|
@@ -479,10 +484,12 @@ decl_statement: decl_varname decl_const decl_datatype decl_collate decl_notnull
|
479 | 484 | }
|
480 | 485 | | decl_varname opt_scrollable CURSOR decl_cursor_args decl_is_for decl_cursor_query
|
481 | 486 | {
|
| 487 | + ann := tree.MakeAnnotations($6.numAnnotations()) |
482 | 488 | $$.val = &plpgsqltree.CursorDeclaration{
|
483 | 489 | Name: plpgsqltree.Variable($1),
|
484 | 490 | Scroll: $2.cursorScrollOption(),
|
485 | 491 | Query: $6.sqlStatement(),
|
| 492 | + Annotations: &ann, |
486 | 493 | }
|
487 | 494 | }
|
488 | 495 | ;
|
@@ -510,7 +517,7 @@ decl_cursor_query: stmt_until_semi ';'
|
510 | 517 | if len(stmts) != 1 {
|
511 | 518 | return setErr(plpgsqllex, errors.New("expected exactly one SQL statement for cursor"))
|
512 | 519 | }
|
513 |
| - $$.val = stmts[0].AST |
| 520 | + $$.val = stmts[0] |
514 | 521 | }
|
515 | 522 | ;
|
516 | 523 |
|
@@ -1412,10 +1419,12 @@ stmt_open: OPEN IDENT ';'
|
1412 | 1419 | if len(stmts) != 1 {
|
1413 | 1420 | return setErr(plpgsqllex, errors.New("expected exactly one SQL statement for cursor"))
|
1414 | 1421 | }
|
| 1422 | + ann := tree.MakeAnnotations(stmts[0].NumAnnotations) |
1415 | 1423 | $$.val = &plpgsqltree.Open{
|
1416 | 1424 | CurVar: plpgsqltree.Variable($2),
|
1417 | 1425 | Scroll: $3.cursorScrollOption(),
|
1418 | 1426 | Query: stmts[0].AST,
|
| 1427 | + Annotations: &ann, |
1419 | 1428 | }
|
1420 | 1429 | }
|
1421 | 1430 | ;
|
|
0 commit comments