mirror of
https://github.com/postgres/postgres.git
synced 2025-06-20 15:22:23 +03:00
Add structure for subselects.
Add field to support "WITH TIME ZONE".
This commit is contained in:
@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: nodes.h,v 1.10 1997/08/31 11:43:08 vadim Exp $
|
* $Id: nodes.h,v 1.11 1997/09/01 06:04:57 thomas Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -206,7 +206,8 @@ typedef enum NodeTag {
|
|||||||
T_TargetEntry,
|
T_TargetEntry,
|
||||||
T_RangeTblEntry,
|
T_RangeTblEntry,
|
||||||
T_SortClause,
|
T_SortClause,
|
||||||
T_GroupClause
|
T_GroupClause,
|
||||||
|
T_SubSelect
|
||||||
} NodeTag;
|
} NodeTag;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: parsenodes.h,v 1.21 1997/08/31 11:43:09 vadim Exp $
|
* $Id: parsenodes.h,v 1.22 1997/09/01 06:04:59 thomas Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -554,9 +554,9 @@ typedef struct CursorStmt {
|
|||||||
List *targetList; /* the target list (of ResTarget) */
|
List *targetList; /* the target list (of ResTarget) */
|
||||||
List *fromClause; /* the from clause */
|
List *fromClause; /* the from clause */
|
||||||
Node *whereClause; /* qualifications */
|
Node *whereClause; /* qualifications */
|
||||||
List *groupClause; /* group by clause */
|
List *groupClause; /* group by clause */
|
||||||
List *sortClause; /* sort clause (a list of SortGroupBy's) */
|
List *sortClause; /* sort clause (a list of SortGroupBy's) */
|
||||||
} CursorStmt;
|
} CursorStmt;
|
||||||
|
|
||||||
/* ----------------------
|
/* ----------------------
|
||||||
* Select Statement
|
* Select Statement
|
||||||
@ -564,28 +564,42 @@ typedef struct CursorStmt {
|
|||||||
*/
|
*/
|
||||||
typedef struct RetrieveStmt {
|
typedef struct RetrieveStmt {
|
||||||
NodeTag type;
|
NodeTag type;
|
||||||
char *unique; /* NULL, '*', or unique attribute name */
|
char *unique; /* NULL, '*', or unique attribute name */
|
||||||
char *into; /* name of table (for select into
|
char *into; /* name of table (for select into table) */
|
||||||
table) */
|
|
||||||
List *targetList; /* the target list (of ResTarget) */
|
List *targetList; /* the target list (of ResTarget) */
|
||||||
List *fromClause; /* the from clause */
|
List *fromClause; /* the from clause */
|
||||||
Node *whereClause; /* qualifications */
|
Node *whereClause; /* qualifications */
|
||||||
List *groupClause; /* group by clause */
|
List *groupClause; /* group by clause */
|
||||||
Node *havingClause; /* having conditional-expression */
|
Node *havingClause; /* having conditional-expression */
|
||||||
|
List *selectClause; /* subselect parameters */
|
||||||
List *sortClause; /* sort clause (a list of SortGroupBy's) */
|
List *sortClause; /* sort clause (a list of SortGroupBy's) */
|
||||||
} RetrieveStmt;
|
} RetrieveStmt;
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Supporting data structures for Parse Trees
|
* Supporting data structures for Parse Trees
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SubSelect - specifies subselect parameters
|
||||||
|
*/
|
||||||
|
typedef struct SubSelect {
|
||||||
|
NodeTag type;
|
||||||
|
char *unique; /* NULL, '*', or unique attribute name */
|
||||||
|
List *targetList; /* the target list (of ResTarget) */
|
||||||
|
List *fromClause; /* the from clause */
|
||||||
|
Node *whereClause; /* qualifications */
|
||||||
|
List *groupClause; /* group by clause */
|
||||||
|
Node *havingClause; /* having conditional-expression */
|
||||||
|
} SubSelect;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TypeName - specifies a type in definitions
|
* TypeName - specifies a type in definitions
|
||||||
*/
|
*/
|
||||||
typedef struct TypeName {
|
typedef struct TypeName {
|
||||||
NodeTag type;
|
NodeTag type;
|
||||||
char *name; /* name of the type */
|
char *name; /* name of the type */
|
||||||
|
bool timezone; /* timezone specified? */
|
||||||
bool setof; /* is a set? */
|
bool setof; /* is a set? */
|
||||||
List *arrayBounds; /* array bounds */
|
List *arrayBounds; /* array bounds */
|
||||||
int typlen; /* length for char() and varchar() */
|
int typlen; /* length for char() and varchar() */
|
||||||
|
Reference in New Issue
Block a user