Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitbe74113

Browse files
author
Thomas G. Lockhart
committed
Add initial backend support for SET/SHOW/RESET TIME ZONE.
Uses TZ environment variable. Needs additional schemes for brain-dead SQL92 time offsets.
1 parent0dd7381 commitbe74113

File tree

1 file changed

+46
-4
lines changed

1 file changed

+46
-4
lines changed

‎src/backend/tcop/variable.c

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/*
2-
* Routines for handling of 'SET var TO', 'SHOW var' and 'RESET var'
3-
* statements.
2+
* Routines for handling of 'SET var TO',
3+
* 'SHOW var' and 'RESET var'statements.
44
*
5-
* $Id: variable.c,v 1.17 1997/10/25 01:10:22 momjian Exp $
5+
* $Id: variable.c,v 1.18 1997/10/30 16:52:11 thomas Exp $
66
*
77
*/
88

@@ -136,6 +136,7 @@ get_token(char **tok, char **val, const char *str)
136136
}
137137

138138
/*-----------------------------------------------------------------------*/
139+
#ifFALSE
139140
staticbool
140141
parse_null(constchar*value)
141142
{
@@ -153,6 +154,7 @@ reset_null(const char *value)
153154
{
154155
return TRUE;
155156
}
157+
#endif
156158

157159
staticbool
158160
parse_geqo(constchar*value)
@@ -398,6 +400,46 @@ reset_date()
398400
return TRUE;
399401
}
400402

403+
staticbool
404+
parse_timezone(constchar*value)
405+
{
406+
char*tok;
407+
408+
while ((value=get_token(&tok,NULL,value))!=0)
409+
{
410+
setenv("TZ",tok, TRUE);
411+
tzset();
412+
PFREE(tok);
413+
}
414+
415+
return TRUE;
416+
}/* parse_timezone() */
417+
418+
staticbool
419+
show_timezone()
420+
{
421+
charbuf[64];
422+
char*tz;
423+
424+
tz=getenv("TZ");
425+
426+
strcpy(buf,"Time zone is ");
427+
strcat(buf, ((tz!=NULL)?tz:"unknown"));
428+
429+
elog(NOTICE,buf,NULL);
430+
431+
return TRUE;
432+
}/* show_timezone() */
433+
434+
staticbool
435+
reset_timezone()
436+
{
437+
unsetenv("TZ");
438+
tzset();
439+
440+
return TRUE;
441+
}/* reset_timezone() */
442+
401443
/*-----------------------------------------------------------------------*/
402444
structVariableParsers
403445
{
@@ -412,7 +454,7 @@ struct VariableParsers
412454
"datestyle",parse_date,show_date,reset_date
413455
},
414456
{
415-
"timezone",parse_null,show_null,reset_null
457+
"timezone",parse_timezone,show_timezone,reset_timezone
416458
},
417459
{
418460
"cost_heap",parse_cost_heap,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp