mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	To: Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>
Subject: Re: [PATCHES] SET DateStyle patches
On Tue, 22 Apr 1997, Thomas Lockhart wrote:
> Some more patches! These (try to) finish implementing SET variable TO value
> for "DateStyle" (changed the name from simply "date" to be more descriptive).
> This is based on code from Martin and Bruce (?), which was easy to modify.
> The syntax is
>
> SET DateStyle TO 'iso'
> SET DateStyle TO 'postgres'
> SET DateStyle TO 'sql'
> SET DateStyle TO 'european'
> SET DateStyle TO 'noneuropean'
> SET DateStyle TO 'us'         (same as "noneuropean")
> SET DateStyle TO 'default'    (current same as "postgres,us")
>
> ("european" is just compared for the first 4 characters, and "noneuropean"
> is compared for the first 7 to allow less typing).
>
> Multiple arguments are allowed, so SET datestyle TO 'sql,euro' is valid.
>
> My mods also try to implement "SHOW variable" and "RESET variable", but
> that part just core dumps at the moment. I would guess that my errors
> are obvious to someone who knows what they are doing with the parser stuff,
> so if someone (Bruce and/or Martin??) could have it do the right thing
> we will have a more complete set of what we need.
>
> Also, I would like to have a floating point precision global variable to
> implement "SET precision TO 10" and perhaps "SET precision TO 10,2" for
> float8 and float4, but I don't know how to do that for integer types rather
> than strings. If someone is fixing the SHOW and RESET code, perhaps they can
> add some hooks for me to do the floats while they are at it.
>
> I've left some remnants of variable structures in the source code which
> I did not use in the interests of getting something working for v6.1.
> We'll have time to clean things up for the next release...
			
			
This commit is contained in:
		@@ -10,7 +10,7 @@
 | 
			
		||||
 *
 | 
			
		||||
 *
 | 
			
		||||
 * IDENTIFICATION
 | 
			
		||||
 *    $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.30 1997/04/05 06:25:59 vadim Exp $
 | 
			
		||||
 *    $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.31 1997/04/23 03:17:00 scrappy Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * HISTORY
 | 
			
		||||
 *    AUTHOR		DATE		MAJOR EVENT
 | 
			
		||||
@@ -108,7 +108,7 @@ static Node *makeA_Expr(int oper, char *opname, Node *lexpr, Node *rexpr);
 | 
			
		||||
        RevokeStmt, RuleStmt, TransactionStmt, ViewStmt, LoadStmt,
 | 
			
		||||
	CreatedbStmt, DestroydbStmt, VacuumStmt, RetrieveStmt, CursorStmt,
 | 
			
		||||
	ReplaceStmt, AppendStmt, NotifyStmt, DeleteStmt, ClusterStmt,
 | 
			
		||||
	ExplainStmt, VariableSetStmt
 | 
			
		||||
	ExplainStmt, VariableSetStmt, VariableShowStmt, VariableResetStmt
 | 
			
		||||
 | 
			
		||||
%type <str>	relation_name, copy_file_name, copy_delimiter, def_name,
 | 
			
		||||
	database_name, access_method_clause, access_method, attr_name,
 | 
			
		||||
@@ -190,8 +190,8 @@ static Node *makeA_Expr(int oper, char *opname, Node *lexpr, Node *rexpr);
 | 
			
		||||
	NONE, NOT, NOTHING, NOTIFY, NOTNULL, 
 | 
			
		||||
        OIDS, ON, OPERATOR, OPTION, OR, ORDER, 
 | 
			
		||||
        PNULL, PRIVILEGES, PUBLIC, PURGE, P_TYPE, 
 | 
			
		||||
        RENAME, REPLACE, RETRIEVE, RETURNS, REVOKE, ROLLBACK, RULE, 
 | 
			
		||||
        SELECT, SET, SETOF, STDIN, STDOUT, STORE, 
 | 
			
		||||
        RENAME, REPLACE, RESET, RETRIEVE, RETURNS, REVOKE, ROLLBACK, RULE, 
 | 
			
		||||
        SELECT, SET, SETOF, SHOW, STDIN, STDOUT, STORE, 
 | 
			
		||||
	TABLE, TO, TRANSACTION, UNIQUE, UPDATE, USING, VACUUM, VALUES
 | 
			
		||||
	VERBOSE, VERSION, VIEW, WHERE, WITH, WORK
 | 
			
		||||
%token	EXECUTE, RECIPE, EXPLAIN, LIKE, SEQUENCE
 | 
			
		||||
@@ -275,6 +275,8 @@ stmt :	  AddAttrStmt
 | 
			
		||||
	| DestroydbStmt
 | 
			
		||||
	| VacuumStmt
 | 
			
		||||
	| VariableSetStmt
 | 
			
		||||
	| VariableShowStmt
 | 
			
		||||
	| VariableResetStmt
 | 
			
		||||
	;
 | 
			
		||||
 | 
			
		||||
/*****************************************************************************
 | 
			
		||||
@@ -289,7 +291,7 @@ VariableSetStmt: SET var_name TO var_value
 | 
			
		||||
		VariableSetStmt *n = makeNode(VariableSetStmt);
 | 
			
		||||
		n->name  = $2;
 | 
			
		||||
		n->value = $4;
 | 
			
		||||
		
 | 
			
		||||
 | 
			
		||||
		$$ = (Node *) n;
 | 
			
		||||
		}
 | 
			
		||||
	;
 | 
			
		||||
@@ -297,6 +299,26 @@ VariableSetStmt: SET var_name TO var_value
 | 
			
		||||
var_value:	Sconst		{ $$ = $1; }
 | 
			
		||||
	;
 | 
			
		||||
 | 
			
		||||
VariableShowStmt: SHOW var_name
 | 
			
		||||
		{
 | 
			
		||||
		VariableSetStmt *n = makeNode(VariableSetStmt);
 | 
			
		||||
		n->name  = $2;
 | 
			
		||||
		n->value = NULL;
 | 
			
		||||
 | 
			
		||||
		$$ = (Node *) n;
 | 
			
		||||
		}
 | 
			
		||||
	;
 | 
			
		||||
 | 
			
		||||
VariableResetStmt: RESET var_name
 | 
			
		||||
		{
 | 
			
		||||
		VariableSetStmt *n = makeNode(VariableSetStmt);
 | 
			
		||||
		n->name  = $2;
 | 
			
		||||
		n->value = NULL;
 | 
			
		||||
		
 | 
			
		||||
		$$ = (Node *) n;
 | 
			
		||||
		}
 | 
			
		||||
	;
 | 
			
		||||
 | 
			
		||||
/*****************************************************************************
 | 
			
		||||
 *
 | 
			
		||||
 *	QUERY :
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@
 | 
			
		||||
 *
 | 
			
		||||
 *
 | 
			
		||||
 * IDENTIFICATION
 | 
			
		||||
 *    $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.8 1997/04/02 04:49:13 vadim Exp $
 | 
			
		||||
 *    $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.9 1997/04/23 03:17:04 scrappy Exp $
 | 
			
		||||
 *
 | 
			
		||||
 *-------------------------------------------------------------------------
 | 
			
		||||
 */
 | 
			
		||||
@@ -116,6 +116,7 @@ static ScanKeyword ScanKeywords[] = {
 | 
			
		||||
	{ "recipe",             RECIPE          },
 | 
			
		||||
	{ "rename",		RENAME		},
 | 
			
		||||
	{ "replace",		REPLACE		},
 | 
			
		||||
	{ "reset",		RESET		},
 | 
			
		||||
	{ "retrieve",		RETRIEVE	},
 | 
			
		||||
	{ "returns",		RETURNS		},
 | 
			
		||||
        { "revoke",             REVOKE          },
 | 
			
		||||
@@ -125,6 +126,7 @@ static ScanKeyword ScanKeywords[] = {
 | 
			
		||||
	{ "sequence",		SEQUENCE	},
 | 
			
		||||
	{ "set",		SET		},
 | 
			
		||||
	{ "setof",		SETOF		},
 | 
			
		||||
	{ "show",		SHOW		},
 | 
			
		||||
	{ "stdin",		STDIN		},
 | 
			
		||||
	{ "stdout",		STDOUT		},
 | 
			
		||||
	{ "store",		STORE		},
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user