From: | Paul Guo <paulguo(at)gmail(dot)com> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Cc: | guofenglinux(at)gmail(dot)com |
Subject: | pg_ugprade test failure on data set with column with default value with type bit/varbit |
Date: | 2018-03-30 09:36:10 |
Message-ID: | CABQrizdTra=2JEqA6+Ms1D1k1Kqw+aiBBhC9TreuZRX2JzxLAA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hello,
While testing pg_upgrade we seemed to find an issue related to default
value of a column with type bit/varbit.
Below are the steps to reproduce. In this case we added two 'create table'
DDLs in the regression database.
Obviously we saw diff after pg_upgrade testing. The pg binaries are based
on the code pulled a couple of days ago.
[pguo(at)host67:/data2/postgres/src/bin/pg_upgrade]$ git diff
diff --git a/src/bin/pg_upgrade/test.sh b/src/bin/pg_upgrade/test.sh
old mode 100644
new mode 100755
index 39983abea1..a41105859e
--- a/src/bin/pg_upgrade/test.sh
+++ b/src/bin/pg_upgrade/test.sh
@@ -188,6 +188,9 @@ if "$MAKE" -C "$oldsrc" installcheck; then
psql -X -d regression -c "$fix_sql;" || psql_fix_sql_status=$?
fi
+ psql -X -d regression -c "CREATE TABLE t111 ( a40 bit varying(5)
DEFAULT '1');"
+ psql -X -d regression -c "CREATE TABLE t222 ( a40 bit varying(5)
DEFAULT B'1');"
+
pg_dumpall --no-sync -f "$temp_root"/dump1.sql || pg_dumpall1_status=$?
if [ "$newsrc" != "$oldsrc" ]; then
[pguo(at)host67:/data2/postgres/src/bin/pg_upgrade]$ make check
[pguo(at)host67:/data2/postgres/src/bin/pg_upgrade]$ diff -du
tmp_check/dump1.sql tmp_check/dump2.sql
--- tmp_check/dump1.sql 2018-03-30 16:31:44.329021348 +0800
+++ tmp_check/dump2.sql 2018-03-30 16:31:54.100478202 +0800
@@ -10956,7 +10956,7 @@
--
CREATE TABLE public.t111 (
- a40 bit varying(5) DEFAULT B'1'::bit varying
+ a40 bit varying(5) DEFAULT (B'1'::"bit")::bit varying
);
There is no diff in functionality of the dump SQLs, but it is annoying. The
simple patch below could fix this. Thanks.
[pguo(at)host67:/data2/postgres/src/bin/pg_upgrade]$ git diff
diff --git a/src/backend/utils/adt/ruleutils.c
b/src/backend/utils/adt/ruleutils.c
index 2cd54ec33f..ef2ab2d681 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -9389,7 +9389,7 @@ get_const_expr(Const *constval, deparse_context
*context, int showtype)
case BITOID:
case VARBITOID:
- appendStringInfo(buf, "B'%s'", extval);
+ appendStringInfo(buf, "'%s'", extval);
break;
case BOOLOID:
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2018-03-30 09:45:16 | Re: csv format for psql |
Previous Message | Kyotaro HORIGUCHI | 2018-03-30 08:31:49 | Re: Commit 4dba331cb3 broke ATTACH PARTITION behaviour. |