Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
dc88e795
Commit
dc88e795
authored
Dec 04, 1997
by
Thomas G. Lockhart
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Change Constraint structure to be a full node structure.
Add new constraint types PRIMARY, UNIQUE.
parent
77356a7f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
70 additions
and
67 deletions
+70
-67
src/include/nodes/parsenodes.h
src/include/nodes/parsenodes.h
+70
-67
No files found.
src/include/nodes/parsenodes.h
View file @
dc88e795
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: parsenodes.h,v 1.3
6 1997/12/04 00:28:03 scrappy
Exp $
* $Id: parsenodes.h,v 1.3
7 1997/12/04 23:55:52 thomas
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -61,7 +61,7 @@ typedef struct Query
/* internal to planner */
List
*
base_relation_list_
;
/* base relation list */
List
*
join_relation_list_
;
/* list of relations */
}
Query
;
}
Query
;
/*****************************************************************************
...
...
@@ -82,7 +82,7 @@ typedef struct AddAttrStmt
NodeTag
type
;
char
*
relname
;
/* the relation to add attr */
bool
inh
;
/* add recursively to children? */
struct
ColumnDef
*
colDef
;
/* the attribute definition */
Node
*
colDef
;
/* the attribute definition */
}
AddAttrStmt
;
/* ----------------------
...
...
@@ -95,7 +95,7 @@ typedef struct ChangeACLStmt
struct
AclItem
*
aclitem
;
unsigned
modechg
;
List
*
relNames
;
}
ChangeACLStmt
;
}
ChangeACLStmt
;
/* ----------------------
* Close Portal Statement
...
...
@@ -105,7 +105,7 @@ typedef struct ClosePortalStmt
{
NodeTag
type
;
char
*
portalname
;
/* name of the portal (cursor) */
}
ClosePortalStmt
;
}
ClosePortalStmt
;
/* ----------------------
* Copy Statement
...
...
@@ -120,7 +120,7 @@ typedef struct CopyStmt
int
direction
;
/* TO or FROM */
char
*
filename
;
/* if NULL, use stdin/stdout */
char
*
delimiter
;
/* delimiter character, \t by default */
}
CopyStmt
;
}
CopyStmt
;
/* ----------------------
* Create Table Statement
...
...
@@ -130,23 +130,25 @@ typedef struct CreateStmt
{
NodeTag
type
;
char
*
relname
;
/* the relation to create */
List
*
tableElts
;
/* column definitions list of Column
Def
*/
List
*
tableElts
;
/* column definitions list of Column */
List
*
inhRelnames
;
/* relations to inherit from list of Value
* (string) */
List
*
constraints
;
/* list of constraints (ConstaintDef) */
}
CreateStmt
;
}
CreateStmt
;
typedef
enum
ConstrType
typedef
enum
ConstrType
/* type of constaints */
{
CONSTR_NONE
,
CONSTR_
CHECK
/* type of constaints */
}
ConstrType
;
CONSTR_NONE
,
CONSTR_
NOTNULL
,
CONSTR_DEFAULT
,
CONSTR_CHECK
,
CONSTR_PRIMARY
,
CONSTR_UNIQUE
}
ConstrType
;
typedef
struct
Constraint
Def
typedef
struct
Constraint
{
ConstrType
type
;
NodeTag
type
;
ConstrType
contype
;
char
*
name
;
/* name */
void
*
def
;
/* definition */
}
ConstraintDef
;
void
*
keys
;
/* list of primary keys */
}
Constraint
;
/* ----------------------
* Create/Drop TRIGGER Statements
...
...
@@ -167,14 +169,14 @@ typedef struct CreateTrigStmt
char
*
text
;
/* AS 'text' */
List
*
attr
;
/* UPDATE OF a, b,... (NI) or NULL */
char
*
when
;
/* WHEN 'a > 10 ...' (NI) or NULL */
}
CreateTrigStmt
;
}
CreateTrigStmt
;
typedef
struct
DropTrigStmt
{
NodeTag
type
;
char
*
trigname
;
/* TRIGGER' name */
char
*
relname
;
/* triggered relation */
}
DropTrigStmt
;
}
DropTrigStmt
;
/* ----------------------
...
...
@@ -188,13 +190,13 @@ typedef struct CreatePLangStmt
char
*
plhandler
;
/* PL call handler function */
char
*
plcompiler
;
/* lancompiler text */
bool
pltrusted
;
/* PL is trusted */
}
CreatePLangStmt
;
}
CreatePLangStmt
;
typedef
struct
DropPLangStmt
{
NodeTag
type
;
char
*
plname
;
/* PL name */
}
DropPLangStmt
;
}
DropPLangStmt
;
/* ----------------------
...
...
@@ -231,7 +233,7 @@ typedef struct CreateSeqStmt
NodeTag
type
;
char
*
seqname
;
/* the relation to create */
List
*
options
;
}
CreateSeqStmt
;
}
CreateSeqStmt
;
/* ----------------------
* Create Version Statement
...
...
@@ -244,7 +246,7 @@ typedef struct VersionStmt
int
direction
;
/* FORWARD | BACKWARD */
char
*
fromRelname
;
/* relation to create a version */
char
*
date
;
/* date of the snapshot */
}
VersionStmt
;
}
VersionStmt
;
/* ----------------------
* Create {Operator|Type|Aggregate} Statement
...
...
@@ -256,7 +258,7 @@ typedef struct DefineStmt
int
defType
;
/* OPERATOR|P_TYPE|AGGREGATE */
char
*
defname
;
List
*
definition
;
/* a list of DefElem */
}
DefineStmt
;
}
DefineStmt
;
/* ----------------------
* Drop Table Statement
...
...
@@ -267,7 +269,7 @@ typedef struct DestroyStmt
NodeTag
type
;
List
*
relNames
;
/* relations to be dropped */
bool
sequence
;
}
DestroyStmt
;
}
DestroyStmt
;
/* ----------------------
* Extend Index Statement
...
...
@@ -280,7 +282,7 @@ typedef struct ExtendStmt
Node
*
whereClause
;
/* qualifications */
List
*
rangetable
;
/* range table, filled in by
* transformStmt() */
}
ExtendStmt
;
}
ExtendStmt
;
/* ----------------------
* Begin Recipe Statement
...
...
@@ -290,7 +292,7 @@ typedef struct RecipeStmt
{
NodeTag
type
;
char
*
recipeName
;
/* name of the recipe */
}
RecipeStmt
;
}
RecipeStmt
;
/* ----------------------
* Fetch Statement
...
...
@@ -303,7 +305,7 @@ typedef struct FetchStmt
int
howMany
;
/* amount to fetch ("ALL" --> 0) */
char
*
portalname
;
/* name of portal (cursor) */
bool
ismove
;
/* TRUE if MOVE */
}
FetchStmt
;
}
FetchStmt
;
/* ----------------------
* Create Index Statement
...
...
@@ -322,7 +324,7 @@ typedef struct IndexStmt
* transformStmt() */
bool
*
lossy
;
/* is index lossy? */
bool
unique
;
/* is index unique? */
}
IndexStmt
;
}
IndexStmt
;
/* ----------------------
* Create Function Statement
...
...
@@ -339,7 +341,7 @@ typedef struct ProcedureStmt
List
*
withClause
;
/* a list of ParamString */
char
*
as
;
/* the SQL statement or filename */
char
*
language
;
/* C or SQL */
}
ProcedureStmt
;
}
ProcedureStmt
;
/* ----------------------
* Drop Aggregate Statement
...
...
@@ -350,7 +352,7 @@ typedef struct RemoveAggrStmt
NodeTag
type
;
char
*
aggname
;
/* aggregate to drop */
char
*
aggtype
;
/* for this type */
}
RemoveAggrStmt
;
}
RemoveAggrStmt
;
/* ----------------------
* Drop Function Statement
...
...
@@ -361,7 +363,7 @@ typedef struct RemoveFuncStmt
NodeTag
type
;
char
*
funcname
;
/* function to drop */
List
*
args
;
/* types of the arguments */
}
RemoveFuncStmt
;
}
RemoveFuncStmt
;
/* ----------------------
* Drop Operator Statement
...
...
@@ -372,7 +374,7 @@ typedef struct RemoveOperStmt
NodeTag
type
;
char
*
opname
;
/* operator to drop */
List
*
args
;
/* types of the arguments */
}
RemoveOperStmt
;
}
RemoveOperStmt
;
/* ----------------------
* Drop {Type|Index|Rule|View} Statement
...
...
@@ -383,7 +385,7 @@ typedef struct RemoveStmt
NodeTag
type
;
int
removeType
;
/* P_TYPE|INDEX|RULE|VIEW */
char
*
name
;
/* name to drop */
}
RemoveStmt
;
}
RemoveStmt
;
/* ----------------------
* Alter Table Statement
...
...
@@ -398,7 +400,7 @@ typedef struct RenameStmt
* the new name. Otherwise, rename this
* column name. */
char
*
newname
;
/* the new name */
}
RenameStmt
;
}
RenameStmt
;
/* ----------------------
* Create Rule Statement
...
...
@@ -413,7 +415,7 @@ typedef struct RuleStmt
struct
Attr
*
object
;
/* object affected */
bool
instead
;
/* is a 'do instead'? */
List
*
actions
;
/* the action statements */
}
RuleStmt
;
}
RuleStmt
;
/* ----------------------
* Notify Statement
...
...
@@ -423,7 +425,7 @@ typedef struct NotifyStmt
{
NodeTag
type
;
char
*
relname
;
/* relation to notify */
}
NotifyStmt
;
}
NotifyStmt
;
/* ----------------------
* Listen Statement
...
...
@@ -433,7 +435,7 @@ typedef struct ListenStmt
{
NodeTag
type
;
char
*
relname
;
/* relation to listen on */
}
ListenStmt
;
}
ListenStmt
;
/* ----------------------
* {Begin|Abort|End} Transaction Statement
...
...
@@ -443,7 +445,7 @@ typedef struct TransactionStmt
{
NodeTag
type
;
int
command
;
/* BEGIN|END|ABORT */
}
TransactionStmt
;
}
TransactionStmt
;
/* ----------------------
* Create View Statement
...
...
@@ -454,7 +456,7 @@ typedef struct ViewStmt
NodeTag
type
;
char
*
viewname
;
/* name of the view */
Query
*
query
;
/* the SQL statement */
}
ViewStmt
;
}
ViewStmt
;
/* ----------------------
* Load Statement
...
...
@@ -464,7 +466,7 @@ typedef struct LoadStmt
{
NodeTag
type
;
char
*
filename
;
/* file to load */
}
LoadStmt
;
}
LoadStmt
;
/* ----------------------
* Createdb Statement
...
...
@@ -475,7 +477,7 @@ typedef struct CreatedbStmt
NodeTag
type
;
char
*
dbname
;
/* database to create */
char
*
dbpath
;
/* location of database */
}
CreatedbStmt
;
}
CreatedbStmt
;
/* ----------------------
* Destroydb Statement
...
...
@@ -485,7 +487,7 @@ typedef struct DestroydbStmt
{
NodeTag
type
;
char
*
dbname
;
/* database to drop */
}
DestroydbStmt
;
}
DestroydbStmt
;
/* ----------------------
* Cluster Statement (support pbrown's cluster index implementation)
...
...
@@ -496,7 +498,7 @@ typedef struct ClusterStmt
NodeTag
type
;
char
*
relname
;
/* relation being indexed */
char
*
indexname
;
/* original index defined */
}
ClusterStmt
;
}
ClusterStmt
;
/* ----------------------
* Vacuum Statement
...
...
@@ -509,7 +511,7 @@ typedef struct VacuumStmt
bool
analyze
;
/* analyze data */
char
*
vacrel
;
/* table to vacuum */
List
*
va_spec
;
/* columns to analyse */
}
VacuumStmt
;
}
VacuumStmt
;
/* ----------------------
* Explain Statement
...
...
@@ -520,7 +522,7 @@ typedef struct ExplainStmt
NodeTag
type
;
Query
*
query
;
/* the query */
bool
verbose
;
/* print plan info */
}
ExplainStmt
;
}
ExplainStmt
;
/* ----------------------
* Set Statement
...
...
@@ -532,7 +534,7 @@ typedef struct VariableSetStmt
NodeTag
type
;
char
*
name
;
char
*
value
;
}
VariableSetStmt
;
}
VariableSetStmt
;
/* ----------------------
* Show Statement
...
...
@@ -543,7 +545,7 @@ typedef struct VariableShowStmt
{
NodeTag
type
;
char
*
name
;
}
VariableShowStmt
;
}
VariableShowStmt
;
/* ----------------------
* Reset Statement
...
...
@@ -554,7 +556,7 @@ typedef struct VariableResetStmt
{
NodeTag
type
;
char
*
name
;
}
VariableResetStmt
;
}
VariableResetStmt
;
/*****************************************************************************
...
...
@@ -584,7 +586,7 @@ typedef struct DeleteStmt
NodeTag
type
;
char
*
relname
;
/* relation to delete from */
Node
*
whereClause
;
/* qualifications */
}
DeleteStmt
;
}
DeleteStmt
;
/* ----------------------
* Update Statement
...
...
@@ -597,7 +599,7 @@ typedef struct ReplaceStmt
List
*
targetList
;
/* the target list (of ResTarget) */
Node
*
whereClause
;
/* qualifications */
List
*
fromClause
;
/* the from clause */
}
ReplaceStmt
;
}
ReplaceStmt
;
/* ----------------------
* Create Cursor Statement
...
...
@@ -614,7 +616,7 @@ typedef struct CursorStmt
Node
*
whereClause
;
/* qualifications */
List
*
groupClause
;
/* group by clause */
List
*
sortClause
;
/* sort clause (a list of SortGroupBy's) */
}
CursorStmt
;
}
CursorStmt
;
/* ----------------------
* Select Statement
...
...
@@ -632,7 +634,7 @@ typedef struct RetrieveStmt
Node
*
havingClause
;
/* having conditional-expression */
List
*
selectClause
;
/* subselect parameters */
List
*
sortClause
;
/* sort clause (a list of SortGroupBy's) */
}
RetrieveStmt
;
}
RetrieveStmt
;
/****************************************************************************
...
...
@@ -651,7 +653,7 @@ typedef struct SubSelect
Node
*
whereClause
;
/* qualifications */
List
*
groupClause
;
/* group by clause */
Node
*
havingClause
;
/* having conditional-expression */
}
SubSelect
;
}
SubSelect
;
/*
* TypeName - specifies a type in definitions
...
...
@@ -664,7 +666,7 @@ typedef struct TypeName
bool
setof
;
/* is a set? */
List
*
arrayBounds
;
/* array bounds */
int
typlen
;
/* length for char() and varchar() */
}
TypeName
;
}
TypeName
;
/*
* ParamNo - specifies a parameter reference
...
...
@@ -674,7 +676,7 @@ typedef struct ParamNo
NodeTag
type
;
int
number
;
/* the number of the parameter */
TypeName
*
typename
;
/* the typecast */
}
ParamNo
;
}
ParamNo
;
/*
* A_Expr - binary expressions
...
...
@@ -725,7 +727,8 @@ typedef struct ColumnDef
TypeName
*
typename
;
/* type of column */
bool
is_not_null
;
/* flag to NOT NULL constraint */
char
*
defval
;
/* default value of column */
}
ColumnDef
;
List
*
constraints
;
/* constraints on column */
}
ColumnDef
;
/*
* Ident -
...
...
@@ -741,7 +744,7 @@ typedef struct Ident
List
*
indirection
;
/* array references */
bool
isRel
;
/* is a relation - filled in by
* transformExpr() */
}
Ident
;
}
Ident
;
/*
* FuncCall - a function/aggregate invocation
...
...
@@ -751,7 +754,7 @@ typedef struct FuncCall
NodeTag
type
;
char
*
funcname
;
/* name of function */
List
*
args
;
/* the arguments (list of exprs) */
}
FuncCall
;
}
FuncCall
;
/*
* A_Indices - array reference or bounds ([lidx:uidx] or [uidx])
...
...
@@ -774,7 +777,7 @@ typedef struct ResTarget
List
*
indirection
;
/* array references */
Node
*
val
;
/* the value of the result (A_Expr or
* Attr) (or A_Const) */
}
ResTarget
;
}
ResTarget
;
/*
* ParamString - used in with clauses
...
...
@@ -784,7 +787,7 @@ typedef struct ParamString
NodeTag
type
;
char
*
name
;
char
*
val
;
}
ParamString
;
}
ParamString
;
/*
* RelExpr - relation expressions
...
...
@@ -794,7 +797,7 @@ typedef struct RelExpr
NodeTag
type
;
char
*
relname
;
/* the relation name */
bool
inh
;
/* inheritance query */
}
RelExpr
;
}
RelExpr
;
/*
* SortGroupBy - for order by clause
...
...
@@ -806,7 +809,7 @@ typedef struct SortGroupBy
char
*
range
;
char
*
name
;
/* name of column to sort on */
char
*
useOp
;
/* operator to use */
}
SortGroupBy
;
}
SortGroupBy
;
/*
* RangeVar - range variable, used in from clauses
...
...
@@ -816,7 +819,7 @@ typedef struct RangeVar
NodeTag
type
;
RelExpr
*
relExpr
;
/* the relation expression */
char
*
name
;
/* the name to be referenced (optional) */
}
RangeVar
;
}
RangeVar
;
/*
* IndexElem - index parameters (used in create index)
...
...
@@ -828,7 +831,7 @@ typedef struct IndexElem
List
*
args
;
/* if not NULL, function index */
char
*
class
;
TypeName
*
tname
;
/* type of index's keys (optional) */
}
IndexElem
;
}
IndexElem
;
/*
* DefElem -
...
...
@@ -839,7 +842,7 @@ typedef struct DefElem
NodeTag
type
;
char
*
defname
;
Node
*
arg
;
/* a (Value *) or a (TypeName *) */
}
DefElem
;
}
DefElem
;
/****************************************************************************
...
...
@@ -859,7 +862,7 @@ typedef struct TargetEntry
Resdom
*
resdom
;
/* fjoin overload this to be a list?? */
Fjoin
*
fjoin
;
Node
*
expr
;
/* can be a list too */
}
TargetEntry
;
}
TargetEntry
;
/*
* RangeTblEntry -
...
...
@@ -882,7 +885,7 @@ typedef struct RangeTblEntry
Oid
relid
;
bool
inh
;
/* inheritance? */
bool
inFromCl
;
/* comes from From Clause */
}
RangeTblEntry
;
}
RangeTblEntry
;
/*
* SortClause -
...
...
@@ -893,7 +896,7 @@ typedef struct SortClause
NodeTag
type
;
Resdom
*
resdom
;
/* attributes in tlist to be sorted */
Oid
opoid
;
/* sort operators */
}
SortClause
;
}
SortClause
;
/*
* GroupClause -
...
...
@@ -904,6 +907,6 @@ typedef struct GroupClause
NodeTag
type
;
TargetEntry
*
entry
;
/* attributes to group on */
Oid
grpOpoid
;
/* the sort operator to use */
}
GroupClause
;
}
GroupClause
;
#endif
/* PARSENODES_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment