Skip to content
Snippets Groups Projects
Commit 1bf90bc7 authored by Thomas G. Lockhart's avatar Thomas G. Lockhart
Browse files

Add structure for subselects.

Add field to support "WITH TIME ZONE".
parent 570620c5
No related branches found
No related tags found
No related merge requests found
...@@ -6,7 +6,7 @@ ...@@ -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 { ...@@ -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 @@ ...@@ -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 $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -565,13 +565,13 @@ typedef struct CursorStmt { ...@@ -565,13 +565,13 @@ 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;
...@@ -580,12 +580,26 @@ typedef struct RetrieveStmt { ...@@ -580,12 +580,26 @@ typedef struct 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() */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment