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

📄 preproc.y

📁 postgresql8.3.4源码,开源数据库
💻 Y
📖 第 1 页 / 共 5 页
字号:
	/*****************************************************************************	 *	 * Create a postgresql group	 *	 *	 ****************************************************************************/	CreateGroupStmt:  CREATE GROUP_P RoleId opt_with OptRoleList			{ $$ = cat_str(4, make_str("create group"), $3, $4, $5); }		;	/*****************************************************************************	 *	 * Alter a postgresql group	 *	 *	 *****************************************************************************/	AlterGroupStmt: ALTER GROUP_P RoleId add_drop USER name_list			{ $$ = cat_str(5, make_str("alter group"), $3, $4, make_str("user"), $6); }		;	add_drop: ADD_P		{ $$ = make_str("add"); }		| DROP 		{ $$ = make_str("drop"); }		;	/*****************************************************************************	 *	 * Drop a postgresql group	 *	 *	 *****************************************************************************/	DropGroupStmt: DROP GROUP_P name_list			{ $$ = cat2_str(make_str("drop group"), $3); }		     | DROP GROUP_P IF_P EXISTS name_list			{ $$ = cat2_str(make_str("drop group if exists"), $5); }		;	/*****************************************************************************	 *	 * Manipulate a schema	 *	 *	 *****************************************************************************/	CreateSchemaStmt:  CREATE SCHEMA OptSchemaName AUTHORIZATION RoleId OptSchemaEltList			{ $$ = cat_str(5, make_str("create schema"), $3, make_str("authorization"), $5, $6); }		| CREATE SCHEMA ColId OptSchemaEltList			{ $$ = cat_str(3, make_str("create schema"), $3, $4); }		;	OptSchemaName: ColId		{ $$ = $1; }		| /* EMPTY */	{ $$ = EMPTY; }		;OptSchemaEltList: OptSchemaEltList schema_stmt         { $$ = cat2_str($1, $2); }		| /* EMPTY */   { $$ = EMPTY; }		;/* *     schema_stmt are the ones that can show up inside a CREATE SCHEMA *     statement (in addition to by themselves). */schema_stmt: CreateStmt		{ $$ = $1; }		   | IndexStmt		{ $$ = $1; }		   | CreateSeqStmt	{ $$ = $1; }		   | CreateTrigStmt { $$ = $1; }		   | GrantStmt		{ $$ = $1; }		   | ViewStmt		{ $$ = $1; }		   ;/***************************************************************************** * * Set PG internal variable *	  SET name TO 'var_value' * Include SQL92 syntax (thomas 1997-10-22): *	  SET TIME ZONE 'var_value' * *****************************************************************************/VariableSetStmt:  SET set_rest			{ $$ = cat2_str(make_str("set"), $2 ); }		| SET LOCAL set_rest			{ $$ = cat2_str(make_str("set local"), $3 ); }		| SET SESSION set_rest			{ $$ = cat2_str(make_str("set session"), $3 ); }		;set_rest:	/* Generic SET syntaxes: */		var_name TO var_list			{ $$ = cat_str(3, $1, make_str("to"), $3); }		| var_name "=" var_list			{ $$ = cat_str(3, $1, make_str("="), $3); }		| var_name TO DEFAULT			{ $$ = cat2_str($1, make_str("to default")); }		| var_name "=" DEFAULT			{ $$ = cat2_str($1, make_str("= default")); }		| var_name FROM CURRENT_P			{ $$ = cat2_str($1, make_str("from current")); }		/* Special syntaxes mandated by SQL standard: */		| TIME ZONE zone_value			{ $$ = cat2_str(make_str("time zone"), $3); }		| TRANSACTION transaction_mode_list			{ $$ = cat2_str(make_str("transaction"), $2); }		| SESSION CHARACTERISTICS AS TRANSACTION transaction_mode_list			{ $$ = cat2_str(make_str("session characteristics as transaction"), $5); }		| NAMES opt_encoding			{ $$ = cat2_str(make_str("names"), $2); }		| ROLE ColId_or_Sconst			{ $$ = cat2_str(make_str("role"), $2); }		| SESSION AUTHORIZATION ColId_or_Sconst			{ $$ = cat2_str(make_str("session authorization"), $3); }		| SESSION AUTHORIZATION DEFAULT			{ $$ = make_str("session authorization default"); }		| XML_P OPTION document_or_content			{ $$ = cat2_str(make_str("xml option"), $3); }		;var_name:	ECPGColId		{ $$ = $1; }		| var_name '.' ColId	{ $$ = cat_str(3, $1, make_str("."), $3); }		;var_list:  var_value			{ $$ = $1; }		| var_list ',' var_value			{ $$ = cat_str(3, $1, make_str(","), $3); }		;iso_level:	READ UNCOMMITTED	{ $$ = make_str("read uncommitted"); }		| READ COMMITTED		{ $$ = make_str("read committed"); }		| REPEATABLE READ		{ $$ = make_str("repeatable read"); }		| SERIALIZABLE			{ $$ = make_str("serializable"); }		;var_value:	opt_boolean		{ $$ = $1; }		| AllConst			{ 	/* we have to check for a variable here because it has to be						     	replaced with its value on the client side */							if ($1[1] == '$')							{								$$ = make_str("$0");								free($1);							}							else								$$ = $1;						}		| ColId				{ $$ = $1; }		;opt_boolean:  TRUE_P		{ $$ = make_str("true"); }		| FALSE_P			{ $$ = make_str("false"); }		| ON				{ $$ = make_str("on"); }		| OFF				{ $$ = make_str("off"); }		;/* Timezone values can be: * - a string such as 'pst8pdt' * - a column identifier such as "pst8pdt" * - an integer or floating point number * - a time interval per SQL99 * ConstInterval and ColId give shift/reduce errors, * so use IDENT and reject anything which is a reserved word. */zone_value:  AllConst		{ $$ = $1; }		| ident		{ $$ = $1; }		| ConstInterval StringConst opt_interval			{ $$ = cat_str(3, $1, $2, $3); }		| ConstInterval '(' PosIntConst ')' StringConst opt_interval			{ $$ = cat_str(6, $1, make_str("("), $3, make_str(")"), $5, $6); }		| DEFAULT			{ $$ = make_str("default"); }		| LOCAL			{ $$ = make_str("local"); }		;opt_encoding:	StringConst		{ $$ = $1; }		| DEFAULT				{ $$ = make_str("default"); }		| /*EMPTY*/				{ $$ = EMPTY; }		;ColId_or_Sconst: ColId			{ $$ = $1; }		| StringConst			{ $$ = $1; }		;VariableShowStmt:  SHOW var_name ecpg_into			{ $$ = cat2_str(make_str("show"), $2); }		| SHOW TIME ZONE ecpg_into			{ $$ = make_str("show time zone"); }		| SHOW TRANSACTION ISOLATION LEVEL ecpg_into			{ $$ = make_str("show transaction isolation level"); }		| SHOW SESSION AUTHORIZATION ecpg_into			{ $$ = make_str("show session authorization"); }		| SHOW ALL		   	{				mmerror(PARSE_ERROR, ET_ERROR, "SHOW ALL not implemented");				$$ = EMPTY;			}		;VariableResetStmt:	RESET var_name			{ $$ = cat2_str(make_str("reset"), $2); }		| RESET TIME ZONE			{ $$ = make_str("reset time zone"); }		| RESET TRANSACTION ISOLATION LEVEL			{ $$ = make_str("reset transaction isolation level"); }		| RESET SESSION AUTHORIZATION			{ $$ = make_str("reset session authorization"); }		| RESET ALL			{ $$ = make_str("reset all"); }		;/* SetResetClause allows SET or RESET without LOCAL */SetResetClause:		SET set_rest		{ $$ = cat2_str(make_str("set"), $2); }		| VariableResetStmt 	{ $$ = $1; }		;ConstraintsSetStmt:    SET CONSTRAINTS constraints_set_list constraints_set_mode			{ $$ = cat_str(3, make_str("set constraints"), $3, $4); }		;constraints_set_list:  ALL			{ $$ = make_str("all"); }		| qualified_name_list			{ $$ = $1; }		;constraints_set_mode:  DEFERRED		{ $$ = make_str("deferred"); }		| IMMEDIATE		{ $$ = make_str("immediate"); }		;/* * Checkpoint statement */CheckPointStmt: CHECKPOINT	   { $$= make_str("checkpoint"); }		;DiscardStmt:		DISCARD ALL		{ $$ = make_str("discard all"); }		| DISCARD TEMP		{ $$ = make_str("discard temp"); }		| DISCARD TEMPORARY	{ $$ = make_str("discard temporary"); }		| DISCARD PLANS		{ $$ = make_str("discard plans"); }		;/***************************************************************************** * *	ALTER [ TABLE | INDEX ] variations * *****************************************************************************/AlterTableStmt:		ALTER TABLE relation_expr alter_table_cmds			{ $$ = cat_str(3, make_str("alter table"), $3, $4); }		|       ALTER INDEX relation_expr alter_rel_cmds			{ $$ = cat_str(3, make_str("alter table"), $3, $4); }		;/* Subcommands that are for ALTER TABLE only */alter_table_cmds:		alter_table_cmd 			{ $$ = $1; }		| alter_table_cmds ',' alter_table_cmd	{ $$ = cat_str(3, $1, make_str(","), $3); }		;alter_table_cmd:		ADD_P opt_column columnDef/* ALTER TABLE <relation> ADD [COLUMN] <coldef> */			{ $$ = cat_str(3, make_str("add"), $2, $3); }/* ALTER TABLE <relation> ALTER [COLUMN] <colname> {SET DEFAULT <expr>|DROP DEFAULT} */		| ALTER opt_column ColId alter_column_default			{ $$ = cat_str(4, make_str("alter"), $2, $3, $4); }/* ALTER TABLE <relation> ALTER [COLUMN] <colname> DROP NOT NULL */		| ALTER opt_column ColId DROP NOT NULL_P			{ $$ = cat_str(4, make_str("alter"), $2, $3, make_str("drop not null")); }/* ALTER TABLE <relation> ALTER [COLUMN] <colname> SET NOT NULL */		| ALTER opt_column ColId SET NOT NULL_P			{ $$ = cat_str(4, make_str("alter"), $2, $3, make_str("set not null")); }/* ALTER TABLE <relation> ALTER [COLUMN] <colname> SET STATISTICS <IntegerOnly> */		| ALTER opt_column ColId SET STATISTICS PosIntConst			{ $$ = cat_str(5, make_str("alter"), $2, $3, make_str("set statistics"), $6); }/* ALTER TABLE <relation> ALTER [COLUMN] <colname> SET STORAGE <storagemode> */		| ALTER opt_column ColId SET STORAGE ColId			{ $$ = cat_str(5, make_str("alter"), $2, $3, make_str("set storage"), $6); }/* ALTER TABLE <relation> DROP [COLUMN] <colname> {RESTRICT|CASCADE} */		| DROP opt_column ColId opt_drop_behavior			{ $$ = cat_str(4, make_str("drop"), $2, $3, $4); }/* ALTER TABLE <relation> ALTER [COLUMN] <colname> TYPE <typename> [ USING <expression> ] */		| ALTER opt_column ColId TYPE_P Typename alter_using			{ $$ = cat_str(6, make_str("alter"), $2, $3, make_str("type"), $5, $6); }/* ALTER TABLE <relation> ADD CONSTRAINT ... */		| ADD_P TableConstraint			{ $$ = cat_str(2, make_str("add"), $2); }/* ALTER TABLE <relation> DROP CONSTRAINT ... */		| DROP CONSTRAINT name opt_drop_behavior			{ $$ = cat_str(3, make_str("drop constraint"), $3, $4); }/* ALTER TABLE <relation> SET WITHOUT OIDS  */		| SET WITHOUT OIDS			{ $$ = make_str("set without oids"); }/* ALTER TABLE <name> CLUSTER ON <indexname> */		| CLUSTER ON name			{ $$ = cat_str(2, make_str("cluster on"), $3); }/* ALTER TABLE <name> SET WITHOUT CLUSTER */		| SET WITHOUT CLUSTER			{ $$ = make_str("set without cluster"); }/* ALTER TABLE <name> ENABLE TRIGGER <trig> */		| ENABLE_P TRIGGER name			{ $$ = cat2_str(make_str("enable trigger"), $3); }/* ALTER TABLE <name> ENABLE ALWAYS TRIGGER <trig> */		| ENABLE_P ALWAYS TRIGGER name			{ $$ = cat2_str(make_str("enable always trigger"), $4); }/* ALTER TABLE <name> ENABLE REPLICA TRIGGER <trig> */		| ENABLE_P REPLICA TRIGGER name			{ $$ = cat2_str(make_str("enable replica trigger"), $4); }/* ALTER TABLE <name> ENABLE TRIGGER ALL */		| ENABLE_P TRIGGER ALL			{ $$ = make_str("enable trigger all"); }/* ALTER TABLE <name> ENABLE TRIGGER USER */		| ENABLE_P TRIGGER USER			{ $$ = make_str("enable trigger user"); }/* ALTER TABLE <name> DISABLE TRIGGER <trig> */		| DISABLE_P TRIGGER name			{ $$ = cat2_str(make_str("disable trigger"), $3); }/* ALTER TABLE <name> DISABLE TRIGGER ALL */		| DISABLE_P TRIGGER ALL			{ $$ = make_str("disable trigger all"); }/* ALTER TABLE <name> DISABLE TRIGGER USER */		| DISABLE_P TRIGGER USER			{ $$ = make_str("disable trigger user"); }/* ALTER TABLE <name> ENABLE RULE <rule> */		| ENABLE_P RULE name			{ $$ = cat2_str(make_str("enable rule"), $3); }/* ALTER TABLE <name> ENABLE ALWAYS RULE <rule> */		| ENABLE_P ALWAYS RULE name			{ $$ = cat2_str(make_str("enable always rule"), $4); }/* ALTER TABLE <name> ENABLE REPLICA RULE <rule> */		| ENABLE_P REPLICA RULE name			{ $$ = cat2_str(make_str("enable replica rule"), $4); }/* ALTER TABLE <name> DISABLE RULE <rule> */		| DISABLE_P RULE name			{ $$ = cat2_str(make_str("disable rule"), $3); }/* ALTER TABLE <name> ALTER INHERITS ADD <parent> */		| INHERIT qualified_name			{ $$ = cat2_str(make_str("inherit"), $2); }/* ALTER TABLE <name> NO INHERITS <parent> */		| NO INHERIT qualified_name			{ $$ = cat2_str(make_str("no inherit"), $3); }		| alter_rel_cmd			{ $$ = $1; }		;alter_rel_cmds: alter_rel_cmd  				{ $$ = $1; }		| alter_rel_cmds ',' alter_rel_cmd	{ $$ = cat_str(3, $1, make_str(","), $3); }		;/* Subcommands that are for ALTER TABLE or ALTER INDEX */alter_rel_cmd:		/* ALTER [TABLE|INDEX] <name> OWNER TO RoleId */		OWNER TO RoleId			{ $$ = cat2_str(make_str("owner to"), $3); }		/* ALTER [TABLE|INDEX] <name> SET TABLESPACE <tablespacename> */		| SET TABLESPACE name			{ $$ = cat2_str(make_str("set tablespace"), $3); }		| SET definition			{ $$ = cat2_str(make_str("set"), $2); }		| RESET definition			{ $$ = cat2_str(make_str("reset"), $2); }		;alter_column_default:		SET DEFAULT a_expr		{ $$ = cat2_str(make_str("set default"), $3); }		| DROP DEFAULT			{ $$ = make_str("drop default"); }		;

⌨️ 快捷键说明

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