On 9/1/08, Tom Lane <[EMAIL PROTECTED]> wrote:
> Marko Kreen <[EMAIL PROTECTED]> writes:
>  > - In attempt to preserve maximum range of values for INT64_IS_BUSTED
>  >   systems, the code is written rather non-obvious way.
>
> I do not personally object a bit to making the units comparisons
>  case-insensitive (I think it's mainly Peter who wants to be strict
>  about it).  I don't think there are any other good ideas in this
>  patch, however, and exposing ourselves to intermediate overflows in
>  the name of simplicity is definitely not one.

For all practical purposes, the overflow is insignificant when int64
works.  I'll look if I can avoid it on INT64_IS_BUSTED case.

In the meantime, here is simple patch for case-insensivity.

-- 
marko
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 4ca25dc..b10be22 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -4182,7 +4182,7 @@ parse_int(const char *value, int *result, int flags, const char **hintmsg)
 #error XLOG_BLCKSZ must be between 1KB and 1MB
 #endif
 
-			if (strncmp(endptr, "kB", 2) == 0)
+			if (pg_strncasecmp(endptr, "kB", 2) == 0)
 			{
 				endptr += 2;
 				switch (flags & GUC_UNIT_MEMORY)
@@ -4195,7 +4195,7 @@ parse_int(const char *value, int *result, int flags, const char **hintmsg)
 						break;
 				}
 			}
-			else if (strncmp(endptr, "MB", 2) == 0)
+			else if (pg_strncasecmp(endptr, "MB", 2) == 0)
 			{
 				endptr += 2;
 				switch (flags & GUC_UNIT_MEMORY)
@@ -4211,7 +4211,7 @@ parse_int(const char *value, int *result, int flags, const char **hintmsg)
 						break;
 				}
 			}
-			else if (strncmp(endptr, "GB", 2) == 0)
+			else if (pg_strncasecmp(endptr, "GB", 2) == 0)
 			{
 				endptr += 2;
 				switch (flags & GUC_UNIT_MEMORY)
@@ -4234,7 +4234,7 @@ parse_int(const char *value, int *result, int flags, const char **hintmsg)
 			if (hintmsg)
 				*hintmsg = gettext_noop("Valid units for this parameter are \"ms\", \"s\", \"min\", \"h\", and \"d\".");
 
-			if (strncmp(endptr, "ms", 2) == 0)
+			if (pg_strncasecmp(endptr, "ms", 2) == 0)
 			{
 				endptr += 2;
 				switch (flags & GUC_UNIT_TIME)
@@ -4247,7 +4247,7 @@ parse_int(const char *value, int *result, int flags, const char **hintmsg)
 						break;
 				}
 			}
-			else if (strncmp(endptr, "s", 1) == 0)
+			else if (pg_strncasecmp(endptr, "s", 1) == 0)
 			{
 				endptr += 1;
 				switch (flags & GUC_UNIT_TIME)
@@ -4260,7 +4260,7 @@ parse_int(const char *value, int *result, int flags, const char **hintmsg)
 						break;
 				}
 			}
-			else if (strncmp(endptr, "min", 3) == 0)
+			else if (pg_strncasecmp(endptr, "min", 3) == 0)
 			{
 				endptr += 3;
 				switch (flags & GUC_UNIT_TIME)
@@ -4273,7 +4273,7 @@ parse_int(const char *value, int *result, int flags, const char **hintmsg)
 						break;
 				}
 			}
-			else if (strncmp(endptr, "h", 1) == 0)
+			else if (pg_strncasecmp(endptr, "h", 1) == 0)
 			{
 				endptr += 1;
 				switch (flags & GUC_UNIT_TIME)
@@ -4289,7 +4289,7 @@ parse_int(const char *value, int *result, int flags, const char **hintmsg)
 						break;
 				}
 			}
-			else if (strncmp(endptr, "d", 1) == 0)
+			else if (pg_strncasecmp(endptr, "d", 1) == 0)
 			{
 				endptr += 1;
 				switch (flags & GUC_UNIT_TIME)
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to