diff -Nurb ../postgresql-7.4.2.orig/src/backend/utils/adt/numutils.c ./src/backend/utils/adt/numutils.c --- ../postgresql-7.4.2.orig/src/backend/utils/adt/numutils.c 2003-09-25 08:58:04.000000000 +0200 +++ ./src/backend/utils/adt/numutils.c 2004-04-30 11:37:35.977932032 +0200 @@ -43,6 +43,9 @@ #endif +bool empty_equals_0; + + /* * pg_atoi: convert string to integer * @@ -67,6 +70,9 @@ if (s == (char *) NULL) elog(ERROR, "NULL pointer"); if (*s == 0) + if(empty_equals_0) + return (int32)0; + else ereport(ERROR, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("invalid input syntax for integer: \"%s\"", diff -Nurb ../postgresql-7.4.2.orig/src/backend/utils/misc/guc.c ./src/backend/utils/misc/guc.c --- ../postgresql-7.4.2.orig/src/backend/utils/misc/guc.c 2004-02-23 21:46:16.000000000 +0100 +++ ./src/backend/utils/misc/guc.c 2004-04-30 11:28:31.302735248 +0200 @@ -73,6 +73,7 @@ extern int CommitDelay; extern int CommitSiblings; extern char *preload_libraries_string; +extern int empty_equals_0; #ifdef HAVE_SYSLOG extern char *Syslog_facility; @@ -748,6 +749,14 @@ true, NULL, NULL }, { + {"empty_equals_0", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS, + gettext_noop("Treats the empty string as 0 when dealing with integers"), + NULL + }, + &empty_equals_0, + false, NULL, NULL + }, + { {"australian_timezones", PGC_USERSET, CLIENT_CONN_LOCALE, gettext_noop("Interprets ACST, CST, EST, and SAT as Australian time zones."), gettext_noop("Otherwise they are interpreted as North/South American " diff -Nurb ../postgresql-7.4.2.orig/src/bin/psql/tab-complete.c ./src/bin/psql/tab-complete.c --- ../postgresql-7.4.2.orig/src/bin/psql/tab-complete.c 2003-11-08 21:54:37.000000000 +0100 +++ ./src/bin/psql/tab-complete.c 2004-04-30 11:36:41.703183048 +0200 @@ -501,6 +501,7 @@ "default_transaction_read_only", "dynamic_library_path", "effective_cache_size", + "empty_equals_0", "enable_hashagg", "enable_hashjoin", "enable_indexscan",