parsenodes.h

来自「PostgreSQL7.4.6 for Linux」· C头文件 代码 · 共 1,701 行 · 第 1/4 页

H
1,701
字号
	List	   *rangetable;		/* range table for qual and/or								 * expressions, filled in by								 * transformStmt() */	bool		unique;			/* is index unique? */	bool		primary;		/* is index on primary key? */	bool		isconstraint;	/* is it from a CONSTRAINT clause? */} IndexStmt;/* ---------------------- *		Create Function Statement * ---------------------- */typedef struct CreateFunctionStmt{	NodeTag		type;	bool		replace;		/* T => replace if already exists */	List	   *funcname;		/* qualified name of function to create */	List	   *argTypes;		/* list of argument types (TypeName nodes) */	TypeName   *returnType;		/* the return type */	List	   *options;		/* a list of DefElem */	List	   *withClause;		/* a list of DefElem */} CreateFunctionStmt;/* ---------------------- *		Drop Aggregate Statement * ---------------------- */typedef struct RemoveAggrStmt{	NodeTag		type;	List	   *aggname;		/* aggregate to drop */	TypeName   *aggtype;		/* TypeName for input datatype, or NULL */	DropBehavior behavior;		/* RESTRICT or CASCADE behavior */} RemoveAggrStmt;/* ---------------------- *		Drop Function Statement * ---------------------- */typedef struct RemoveFuncStmt{	NodeTag		type;	List	   *funcname;		/* function to drop */	List	   *args;			/* types of the arguments */	DropBehavior behavior;		/* RESTRICT or CASCADE behavior */} RemoveFuncStmt;/* ---------------------- *		Drop Operator Statement * ---------------------- */typedef struct RemoveOperStmt{	NodeTag		type;	List	   *opname;			/* operator to drop */	List	   *args;			/* types of the arguments */	DropBehavior behavior;		/* RESTRICT or CASCADE behavior */} RemoveOperStmt;/* ---------------------- *		Drop Operator Class Statement * ---------------------- */typedef struct RemoveOpClassStmt{	NodeTag		type;	List	   *opclassname;	/* qualified name (list of Value strings) */	char	   *amname;			/* name of index AM opclass is for */	DropBehavior behavior;		/* RESTRICT or CASCADE behavior */} RemoveOpClassStmt;/* ---------------------- *		Alter Object Rename Statement * ---------------------- */typedef struct RenameStmt{	NodeTag		type;	RangeVar   *relation;		/* in case it's a table */	List	   *object;			/* in case it's some other object */	List	   *objarg;			/* argument types, if applicable */	char	   *subname;		/* name of contained object (column, rule,								 * trigger, etc) */	char	   *newname;		/* the new name */	ObjectType	renameType;		/* OBJECT_TABLE, OBJECT_COLUMN, etc */} RenameStmt;/* ---------------------- *		Create Rule Statement * ---------------------- */typedef struct RuleStmt{	NodeTag		type;	RangeVar   *relation;		/* relation the rule is for */	char	   *rulename;		/* name of the rule */	Node	   *whereClause;	/* qualifications */	CmdType		event;			/* SELECT, INSERT, etc */	bool		instead;		/* is a 'do instead'? */	List	   *actions;		/* the action statements */	bool		replace;		/* OR REPLACE */} RuleStmt;/* ---------------------- *		Notify Statement * ---------------------- */typedef struct NotifyStmt{	NodeTag		type;	RangeVar   *relation;		/* qualified name to notify */} NotifyStmt;/* ---------------------- *		Listen Statement * ---------------------- */typedef struct ListenStmt{	NodeTag		type;	RangeVar   *relation;		/* qualified name to listen on */} ListenStmt;/* ---------------------- *		Unlisten Statement * ---------------------- */typedef struct UnlistenStmt{	NodeTag		type;	RangeVar   *relation;		/* qualified name to unlisten on, or '*' */} UnlistenStmt;/* ---------------------- *		{Begin|Commit|Rollback} Transaction Statement * ---------------------- */typedef enum TransactionStmtKind{	TRANS_STMT_BEGIN,	TRANS_STMT_START,			/* semantically identical to BEGIN */	TRANS_STMT_COMMIT,	TRANS_STMT_ROLLBACK} TransactionStmtKind;typedef struct TransactionStmt{	NodeTag		type;	TransactionStmtKind kind;	/* see above */	List	   *options;		/* for BEGIN/START only */} TransactionStmt;/* ---------------------- *		Create Type Statement, composite types * ---------------------- */typedef struct CompositeTypeStmt{	NodeTag		type;	RangeVar   *typevar;		/* the composite type to be created */	List	   *coldeflist;		/* list of ColumnDef nodes */} CompositeTypeStmt;/* ---------------------- *		Create View Statement * ---------------------- */typedef struct ViewStmt{	NodeTag		type;	RangeVar   *view;			/* the view to be created */	List	   *aliases;		/* target column names */	Query	   *query;			/* the SQL statement */	bool		replace;		/* replace an existing view? */} ViewStmt;/* ---------------------- *		Load Statement * ---------------------- */typedef struct LoadStmt{	NodeTag		type;	char	   *filename;		/* file to load */} LoadStmt;/* ---------------------- *		Createdb Statement * ---------------------- */typedef struct CreatedbStmt{	NodeTag		type;	char	   *dbname;			/* name of database to create */	List	   *options;		/* List of DefElem nodes */} CreatedbStmt;/* ---------------------- *	Alter Database * ---------------------- */typedef struct AlterDatabaseSetStmt{	NodeTag		type;	char	   *dbname;	char	   *variable;	List	   *value;} AlterDatabaseSetStmt;/* ---------------------- *		Dropdb Statement * ---------------------- */typedef struct DropdbStmt{	NodeTag		type;	char	   *dbname;			/* database to drop */} DropdbStmt;/* ---------------------- *		Cluster Statement (support pbrown's cluster index implementation) * ---------------------- */typedef struct ClusterStmt{	NodeTag		type;	RangeVar   *relation;		/* relation being indexed, or NULL if all */	char	   *indexname;		/* original index defined */} ClusterStmt;/* ---------------------- *		Vacuum and Analyze Statements * * Even though these are nominally two statements, it's convenient to use * just one node type for both. * ---------------------- */typedef struct VacuumStmt{	NodeTag		type;	bool		vacuum;			/* do VACUUM step */	bool		full;			/* do FULL (non-concurrent) vacuum */	bool		analyze;		/* do ANALYZE step */	bool		freeze;			/* early-freeze option */	bool		verbose;		/* print progress info */	RangeVar   *relation;		/* single table to process, or NULL */	List	   *va_cols;		/* list of column names, or NIL for all */} VacuumStmt;/* ---------------------- *		Explain Statement * ---------------------- */typedef struct ExplainStmt{	NodeTag		type;	Query	   *query;			/* the query */	bool		verbose;		/* print plan info */	bool		analyze;		/* get statistics by executing plan */} ExplainStmt;/* ---------------------- * Checkpoint Statement * ---------------------- */typedef struct CheckPointStmt{	NodeTag		type;} CheckPointStmt;/* ---------------------- * Set Statement * ---------------------- */typedef struct VariableSetStmt{	NodeTag		type;	char	   *name;	List	   *args;	bool		is_local;		/* SET LOCAL */} VariableSetStmt;/* ---------------------- * Show Statement * ---------------------- */typedef struct VariableShowStmt{	NodeTag		type;	char	   *name;} VariableShowStmt;/* ---------------------- * Reset Statement * ---------------------- */typedef struct VariableResetStmt{	NodeTag		type;	char	   *name;} VariableResetStmt;/* ---------------------- *		LOCK Statement * ---------------------- */typedef struct LockStmt{	NodeTag		type;	List	   *relations;		/* relations to lock */	int			mode;			/* lock mode */} LockStmt;/* ---------------------- *		SET CONSTRAINTS Statement * ---------------------- */typedef struct ConstraintsSetStmt{	NodeTag		type;	List	   *constraints;	/* List of names as Value strings */	bool		deferred;} ConstraintsSetStmt;/* ---------------------- *		REINDEX Statement * ---------------------- */typedef struct ReindexStmt{	NodeTag		type;	ObjectType	kind;			/* OBJECT_INDEX, OBJECT_TABLE,								 * OBJECT_DATABASE */	RangeVar   *relation;		/* Table or index to reindex */	const char *name;			/* name of database to reindex */	bool		force;	bool		all;} ReindexStmt;/* ---------------------- *		CREATE CONVERSION Statement * ---------------------- */typedef struct CreateConversionStmt{	NodeTag		type;	List	   *conversion_name;	/* Name of the conversion */	char	   *for_encoding_name;		/* source encoding name */	char	   *to_encoding_name;		/* destination encoding name */	List	   *func_name;		/* qualified conversion function name */	bool		def;			/* is this a default conversion? */} CreateConversionStmt;/* ---------------------- *	CREATE CAST Statement * ---------------------- */typedef struct CreateCastStmt{	NodeTag		type;	TypeName   *sourcetype;	TypeName   *targettype;	FuncWithArgs *func;	CoercionContext context;} CreateCastStmt;/* ---------------------- *	DROP CAST Statement * ---------------------- */typedef struct DropCastStmt{	NodeTag		type;	TypeName   *sourcetype;	TypeName   *targettype;	DropBehavior behavior;} DropCastStmt;/* ---------------------- *		PREPARE Statement * ---------------------- */typedef struct PrepareStmt{	NodeTag		type;	char	   *name;			/* Name of plan, arbitrary */	List	   *argtypes;		/* Types of parameters (TypeNames) */	List	   *argtype_oids;	/* Types of parameters (OIDs) */	Query	   *query;			/* The query itself */} PrepareStmt;/* ---------------------- *		EXECUTE Statement * ---------------------- */typedef struct ExecuteStmt{	NodeTag		type;	char	   *name;			/* The name of the plan to execute */	RangeVar   *into;			/* Optional table to store results in */	List	   *params;			/* Values to assign to parameters */} ExecuteStmt;/* ---------------------- *		DEALLOCATE Statement * ---------------------- */typedef struct DeallocateStmt{	NodeTag		type;	char	   *name;			/* The name of the plan to remove */} DeallocateStmt;#endif   /* PARSENODES_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?