parsenodes.h

来自「PostgreSQL 8.2中增加了很多企业用户所需要的功能和性能上的提高,其开」· C头文件 代码 · 共 1,961 行 · 第 1/5 页

H
1,961
字号
 * ---------------------- */typedef struct AlterOwnerStmt{	NodeTag		type;	ObjectType objectType;		/* OBJECT_TABLE, OBJECT_TYPE, etc */	RangeVar   *relation;		/* in case it's a table */	List	   *object;			/* in case it's some other object */	List	   *objarg;			/* argument types, if applicable */	char	   *addname;		/* additional name if needed */	char	   *newowner;		/* the new owner */} AlterOwnerStmt;/* ---------------------- *		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,	TRANS_STMT_SAVEPOINT,	TRANS_STMT_RELEASE,	TRANS_STMT_ROLLBACK_TO,	TRANS_STMT_PREPARE,	TRANS_STMT_COMMIT_PREPARED,	TRANS_STMT_ROLLBACK_PREPARED} TransactionStmtKind;typedef struct TransactionStmt{	NodeTag		type;	TransactionStmtKind kind;	/* see above */	List	   *options;		/* for BEGIN/START and savepoint commands */	char	   *gid;			/* for two-phase-commit related commands */} 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 AlterDatabaseStmt{	NodeTag		type;	char	   *dbname;			/* name of database to alter */	List	   *options;		/* List of DefElem nodes */} AlterDatabaseStmt;typedef struct AlterDatabaseSetStmt{	NodeTag		type;	char	   *dbname;	char	   *variable;	List	   *value;} AlterDatabaseSetStmt;/* ---------------------- *		Dropdb Statement * ---------------------- */typedef struct DropdbStmt{	NodeTag		type;	char	   *dbname;			/* database to drop */	bool		missing_ok;		/* skip error if db is missing? */} 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		verbose;		/* print progress info */	int			freeze_min_age;	/* min freeze age, or -1 to use default */	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 */	bool		nowait;			/* no wait mode */} LockStmt;/* ---------------------- *		SET CONSTRAINTS Statement * ---------------------- */typedef struct ConstraintsSetStmt{	NodeTag		type;	List	   *constraints;	/* List of names as RangeVars */	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		do_system;		/* include system tables in database case */	bool		do_user;		/* include user tables in database case */} 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;	bool		missing_ok;		/* skip error if a missing? */} 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	   *intoOptions;	/* Options from WITH clause */	OnCommitAction into_on_commit;		/* What do we do at COMMIT? */	char	   *into_tbl_space; /* Tablespace to use, or NULL */	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;/* *		DROP OWNED statement */typedef struct DropOwnedStmt{	NodeTag		type;	List	   *roles;	DropBehavior behavior;} DropOwnedStmt;/* *		REASSIGN OWNED statement */typedef struct ReassignOwnedStmt{	NodeTag		type;	List	   *roles;	char	   *newrole;} ReassignOwnedStmt;#endif   /* PARSENODES_H */

⌨️ 快捷键说明

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