diff options
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/parser/sysfunc.c | 12 | ||||
-rw-r--r-- | src/backend/postmaster/postmaster.c | 18 | ||||
-rw-r--r-- | src/backend/tcop/postgres.c | 19 | ||||
-rw-r--r-- | src/backend/utils/adt/datetimes.c | 40 | ||||
-rw-r--r-- | src/backend/utils/init/globals.c | 4 |
5 files changed, 59 insertions, 34 deletions
diff --git a/src/backend/parser/sysfunc.c b/src/backend/parser/sysfunc.c index 7cad3ab7ba5..18e3c5afe54 100644 --- a/src/backend/parser/sysfunc.c +++ b/src/backend/parser/sysfunc.c @@ -19,6 +19,8 @@ #include <time.h> #include <config.h> +#include <postgres.h> +#include <miscadmin.h> #include <parser/sysfunc.h> /* @@ -33,13 +35,13 @@ static char *Sysfunc_system_date(void) time(&cur_time_secs); cur_time_expanded = localtime(&cur_time_secs); -#if defined(EUROPEAN_DATES) - sprintf(buf, "%2.2d-%2.2d-%4.4d", cur_time_expanded->tm_mday, + if (EuroDates == 1) + sprintf(buf, "%2.2d-%2.2d-%4.4d", cur_time_expanded->tm_mday, cur_time_expanded->tm_mon+1, cur_time_expanded->tm_year+1900); -#else - sprintf(buf, "%2.2d-%2.2d-%4.4d", cur_time_expanded->tm_mon+1, + else + sprintf(buf, "%2.2d-%2.2d-%4.4d", cur_time_expanded->tm_mon+1, cur_time_expanded->tm_mday, cur_time_expanded->tm_year+1900); -#endif + return &buf[0]; } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index e8c0bf5719e..fc708d0d469 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.34 1997/01/24 18:27:29 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.35 1997/01/26 15:30:23 scrappy Exp $ * * NOTES * @@ -251,7 +251,7 @@ PostmasterMain(int argc, char *argv[]) DataDir = getenv("PGDATA"); /* default value */ opterr = 0; - while ((opt = getopt(argc, argv, "a:B:b:D:dmM:no:p:Ss")) != EOF) { + while ((opt = getopt(argc, argv, "a:B:b:D:demM:no:p:Ss")) != EOF) { switch (opt) { case 'a': /* Set the authentication system. */ @@ -294,13 +294,19 @@ PostmasterMain(int argc, char *argv[]) else DebugLvl = 1; break; - case 'm': + case 'e': + /* + * Use european date formats. + */ + EuroDates = 1; + break; + case 'm': MultiplexedBackends = 1; MultiplexedBackendPort = atoi(optarg); break; case 'M': /* ignore this flag. This may be passed in because the - program was run as 'postgres -M' instead of 'postmaster' */ + program was run as 'postgres -M' instead of 'postmaster' */ break; case 'n': /* Don't reinit shared mem after abnormal exit */ @@ -1128,6 +1134,10 @@ DoExec(StartupInfo *packet, int portFd) #endif /* WIN32 */ } + + /* tell the backend we're using European dates */ + if (EuroDates == 1) + av[ac++] = "-e"; /* tell the multiplexed backend to start on a certain port */ if (MultiplexedBackends) { diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 09ee96fca5f..07bae4af5fe 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.25 1997/01/14 08:05:26 bryanh Exp $ + * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.26 1997/01/26 15:30:48 scrappy Exp $ * * NOTES * this is the "main" module of the postgres backend and @@ -784,6 +784,7 @@ PostgresMain(int argc, char *argv[]) int flagQ; int flagS; int flagE; + int flagEu; int flag; char *DBName = NULL; @@ -842,7 +843,7 @@ PostgresMain(int argc, char *argv[]) * parse command line arguments * ---------------- */ - flagC = flagQ = flagS = flagE = ShowStats = 0; + flagC = flagQ = flagS = flagE = flagEu = ShowStats = 0; ShowParserStats = ShowPlannerStats = ShowExecutorStats = 0; /* get hostname is either the environment variable PGHOST @@ -856,7 +857,7 @@ PostgresMain(int argc, char *argv[]) DataDir = getenv("PGDATA"); /* default */ multiplexedBackend = false; /* default */ - while ((flag = getopt(argc, argv, "B:bCD:d:Ef:iLm:MNo:P:pQSst:x:F")) + while ((flag = getopt(argc, argv, "B:bCD:d:Eef:iLm:MNo:P:pQSst:x:F")) != EOF) switch (flag) { @@ -907,6 +908,14 @@ PostgresMain(int argc, char *argv[]) flagE = 1; break; + case 'e': + /* -------------------------- + * Use european date formats. + * -------------------------- + */ + flagEu = 1; + break; + case 'F': /* -------------------- * turn off fsync @@ -1135,6 +1144,7 @@ PostgresMain(int argc, char *argv[]) Noversion = flagC; Quiet = flagQ; EchoQuery = flagE; + EuroDates = flagEu; /* ---------------- * print flags @@ -1146,6 +1156,7 @@ PostgresMain(int argc, char *argv[]) printf("\tNoversion = %c\n", Noversion ? 't' : 'f'); printf("\tstable = %c\n", flagS ? 't' : 'f'); printf("\ttimings = %c\n", ShowStats ? 't' : 'f'); + printf("\tdates = %s\n", EuroDates ? "European" : "Normal"); printf("\tbufsize = %d\n", NBuffers); printf("\tquery echo = %c\n", EchoQuery ? 't' : 'f'); @@ -1271,7 +1282,7 @@ PostgresMain(int argc, char *argv[]) */ if (IsUnderPostmaster == false) { puts("\nPOSTGRES backend interactive interface"); - puts("$Revision: 1.25 $ $Date: 1997/01/14 08:05:26 $"); + puts("$Revision: 1.26 $ $Date: 1997/01/26 15:30:48 $"); } /* ---------------- diff --git a/src/backend/utils/adt/datetimes.c b/src/backend/utils/adt/datetimes.c index 693351a380e..614bccd72df 100644 --- a/src/backend/utils/adt/datetimes.c +++ b/src/backend/utils/adt/datetimes.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/datetimes.c,v 1.7 1996/11/14 21:38:58 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/datetimes.c,v 1.8 1997/01/26 15:31:12 scrappy Exp $ * *------------------------------------------------------------------------- */ @@ -15,6 +15,7 @@ #include <string.h> #include <postgres.h> +#include <miscadmin.h> #include <utils/builtins.h> #include <utils/datetime.h> @@ -50,19 +51,19 @@ date_in(char *datestr) # define CHECK_DATE_LEN(datestr) 1 #endif -#ifndef EUROPEAN_DATES - if (!CHECK_DATE_LEN(datestr) || - sscanf(datestr, "%d%*c%d%*c%d", &m, &d, &y) != 3) { - elog(WARN, "date_in: date \"%s\" not of the form mm-dd-yyyy", - datestr); - } -#else - if (!CHECK_DATE_LEN(datestr) || - sscanf(datestr, "%d%*c%d%*c%d", &d, &m, &y) != 3) { - elog(WARN, "date_in: date \"%s\" not of the form dd-mm-yyyy", - datestr); + if (EuroDates == 1) { /* Expect european format dates */ + if (!CHECK_DATE_LEN(datestr) || + sscanf(datestr, "%d%*c%d%*c%d", &d, &m, &y) != 3) { + elog(WARN, "date_in: date \"%s\" not of the form dd-mm-yyyy", + datestr); + } + } else { + if (!CHECK_DATE_LEN(datestr) || + sscanf(datestr, "%d%*c%d%*c%d", &m, &d, &y) != 3) { + elog(WARN, "date_in: date \"%s\" not of the form mm-dd-yyyy", + datestr); + } } -#endif if (y < 0 || y > 32767) elog(WARN, "date_in: year must be limited to values 0 through 32767 in \"%s\"", datestr); if (m < 1 || m > 12) @@ -94,13 +95,12 @@ date_out(int4 dateVal) date = (DateADT*)&dateStore; dateStore = dateVal; -#ifndef EUROPEAN_DATES - sprintf(datestr, "%02d-%02d-%04d", - (int)date->month, (int)date->day, (int)date->year); -#else - sprintf(datestr, "%02d-%02d-%04d", - (int)date->day, (int)date->month, (int)date->year); -#endif + if (EuroDates == 1) /* Output european format dates */ + sprintf(datestr, "%02d-%02d-%04d", + (int)date->day, (int)date->month, (int)date->year); + else + sprintf(datestr, "%02d-%02d-%04d", + (int)date->month, (int)date->day, (int)date->year); return datestr; } diff --git a/src/backend/utils/init/globals.c b/src/backend/utils/init/globals.c index ccc93783022..8ab5fa82f91 100644 --- a/src/backend/utils/init/globals.c +++ b/src/backend/utils/init/globals.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/init/globals.c,v 1.4 1997/01/14 08:05:36 bryanh Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/init/globals.c,v 1.5 1997/01/26 15:31:29 scrappy Exp $ * * NOTES * Globals used all over the place should be declared here and not @@ -65,6 +65,8 @@ bool IsPostmaster = false; short DebugLvl = 0; +int EuroDates = 0; + char *IndexedCatalogNames[] = { AttributeRelationName, ProcedureRelationName, |