From 9f2845b44226b5e0379d69d4f202c6a08cfde5f9 Mon Sep 17 00:00:00 2001 From: Paul Guo Date: Wed, 1 Aug 2018 11:49:08 +0800 Subject: [PATCH] Fix pg_upgrade test failure caused by the DDL below. CREATE TABLE t111 ( a40 BIT VARYING(5) DEFAULT '1') The failure is caused by the pg_dump diff (before and after pg_upgrade) as below. CREATE TABLE public.t111 ( - a40 bit varying(5) DEFAULT B'1'::bit varying + a40 bit varying(5) DEFAULT (B'1'::"bit")::bit varying ); This patch is co-authored by Richard Guo --- contrib/btree_gist/expected/bit.out | 6 +++--- contrib/btree_gist/expected/varbit.out | 6 +++--- src/backend/utils/adt/ruleutils.c | 2 +- src/bin/pg_upgrade/test.sh | 0 4 files changed, 7 insertions(+), 7 deletions(-) mode change 100644 => 100755 src/bin/pg_upgrade/test.sh diff --git a/contrib/btree_gist/expected/bit.out b/contrib/btree_gist/expected/bit.out index 8606baf366..e57871f310 100644 --- a/contrib/btree_gist/expected/bit.out +++ b/contrib/btree_gist/expected/bit.out @@ -68,9 +68,9 @@ SELECT count(*) FROM bittmp WHERE a > '011011000100010111011000110000100'; SET enable_bitmapscan=off; EXPLAIN (COSTS OFF) SELECT a FROM bittmp WHERE a BETWEEN '1000000' and '1000001'; - QUERY PLAN ------------------------------------------------------------------------ + QUERY PLAN +--------------------------------------------------------------------- Index Only Scan using bitidx on bittmp - Index Cond: ((a >= B'1000000'::"bit") AND (a <= B'1000001'::"bit")) + Index Cond: ((a >= '1000000'::"bit") AND (a <= '1000001'::"bit")) (2 rows) diff --git a/contrib/btree_gist/expected/varbit.out b/contrib/btree_gist/expected/varbit.out index 538ace85c9..ede36bc3ea 100644 --- a/contrib/btree_gist/expected/varbit.out +++ b/contrib/btree_gist/expected/varbit.out @@ -68,9 +68,9 @@ SELECT count(*) FROM varbittmp WHERE a > '1110100111010'::varbit; SET enable_bitmapscan=off; EXPLAIN (COSTS OFF) SELECT a FROM bittmp WHERE a BETWEEN '1000000' and '1000001'; - QUERY PLAN ------------------------------------------------------------------------ + QUERY PLAN +--------------------------------------------------------------------- Index Only Scan using bitidx on bittmp - Index Cond: ((a >= B'1000000'::"bit") AND (a <= B'1000001'::"bit")) + Index Cond: ((a >= '1000000'::"bit") AND (a <= '1000001'::"bit")) (2 rows) diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 03e9a28a63..ea63e912df 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -9459,7 +9459,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: diff --git a/src/bin/pg_upgrade/test.sh b/src/bin/pg_upgrade/test.sh old mode 100644 new mode 100755 -- 2.14.3