|
6 | 6 | * |
7 | 7 | * Copyright (c) 1994, Regents of the University of California |
8 | 8 | * |
9 | | - * $Id: parsenodes.h,v 1.21 1997/08/31 11:43:09 vadim Exp $ |
| 9 | + * $Id: parsenodes.h,v 1.22 1997/09/01 06:04:59 thomas Exp $ |
10 | 10 | * |
11 | 11 | *------------------------------------------------------------------------- |
12 | 12 | */ |
@@ -554,38 +554,52 @@ typedef struct CursorStmt { |
554 | 554 | List*targetList;/* the target list (of ResTarget) */ |
555 | 555 | List*fromClause;/* the from clause */ |
556 | 556 | Node*whereClause;/* qualifications */ |
557 | | -List*groupClause;/* group by clause */ |
| 557 | +List*groupClause;/* group by clause */ |
558 | 558 | List*sortClause;/* sort clause (a list of SortGroupBy's) */ |
559 | | -}CursorStmt; |
| 559 | +}CursorStmt; |
560 | 560 |
|
561 | 561 | /* ---------------------- |
562 | 562 | *Select Statement |
563 | 563 | * ---------------------- |
564 | 564 | */ |
565 | 565 | typedefstructRetrieveStmt { |
566 | 566 | NodeTagtype; |
567 | | -char*unique;/* NULL, '*', or unique attribute name */ |
568 | | -char*into;/* name of table (for select into |
569 | | - table) */ |
| 567 | +char*unique;/* NULL, '*', or unique attribute name */ |
| 568 | +char*into;/* name of table (for select into table) */ |
570 | 569 | List*targetList;/* the target list (of ResTarget) */ |
571 | 570 | List*fromClause;/* the from clause */ |
572 | 571 | Node*whereClause;/* qualifications */ |
573 | 572 | List*groupClause;/* group by clause */ |
574 | 573 | Node*havingClause;/* having conditional-expression */ |
| 574 | +List*selectClause;/* subselect parameters */ |
575 | 575 | List*sortClause;/* sort clause (a list of SortGroupBy's) */ |
576 | | -}RetrieveStmt; |
| 576 | +}RetrieveStmt; |
577 | 577 |
|
578 | 578 |
|
579 | 579 | /**************************************************************************** |
580 | 580 | * Supporting data structures for Parse Trees |
581 | 581 | ****************************************************************************/ |
582 | 582 |
|
| 583 | +/* |
| 584 | + * SubSelect - specifies subselect parameters |
| 585 | + */ |
| 586 | +typedefstructSubSelect { |
| 587 | +NodeTagtype; |
| 588 | +char*unique;/* NULL, '*', or unique attribute name */ |
| 589 | +List*targetList;/* the target list (of ResTarget) */ |
| 590 | +List*fromClause;/* the from clause */ |
| 591 | +Node*whereClause;/* qualifications */ |
| 592 | +List*groupClause;/* group by clause */ |
| 593 | +Node*havingClause;/* having conditional-expression */ |
| 594 | +}SubSelect; |
| 595 | + |
583 | 596 | /* |
584 | 597 | * TypeName - specifies a type in definitions |
585 | 598 | */ |
586 | 599 | typedefstructTypeName { |
587 | 600 | NodeTagtype; |
588 | 601 | char*name;/* name of the type */ |
| 602 | +booltimezone;/* timezone specified? */ |
589 | 603 | boolsetof;/* is a set? */ |
590 | 604 | List*arrayBounds;/* array bounds */ |
591 | 605 | inttyplen;/* length for char() and varchar() */ |
|