⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parsenodes.h

📁 PostgreSQL 8.1.4的源码 适用于Linux下的开源数据库系统
💻 H
📖 第 1 页 / 共 4 页
字号:
typedef enum FunctionParameterMode{	/* the assigned enum values appear in pg_proc, don't change 'em! */	FUNC_PARAM_IN = 'i',		/* input only */	FUNC_PARAM_OUT = 'o',		/* output only */	FUNC_PARAM_INOUT = 'b'		/* both */} FunctionParameterMode;typedef struct FunctionParameter{	NodeTag		type;	char	   *name;			/* parameter name, or NULL if not given */	TypeName   *argType;		/* TypeName for parameter type */	FunctionParameterMode mode; /* IN/OUT/INOUT */} FunctionParameter;typedef struct AlterFunctionStmt{	NodeTag		type;	FuncWithArgs *func;			/* name and args of function */	List	   *actions;		/* list of DefElem */} AlterFunctionStmt;/* ---------------------- *		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;	ObjectType	renameType;		/* OBJECT_TABLE, OBJECT_COLUMN, 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	   *subname;		/* name of contained object (column, rule,								 * trigger, etc) */	char	   *newname;		/* the new name */} RenameStmt;/* ---------------------- *		ALTER object SET SCHEMA Statement * ---------------------- */typedef struct AlterObjectSchemaStmt{	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	   *newschema;		/* the new schema */} AlterObjectSchemaStmt;/* ---------------------- *		Alter Object Owner Statement * ---------------------- */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 */} 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 */	bool		nowait;			/* no wait 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		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;} 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -