Skip to content

Commit c11c286

Browse files
committed
postgres_fdw: add missing test files and fix regression tests
Some essential files such as postgres_setup.bash and *_postgres_init.sql were missing, causing postgres_fdw regression tests to fail. These files existed in upstream GPDB. We restored them and fixed the tests so that all cases now pass.
1 parent d13a8cb commit c11c286

13 files changed

+892
-645
lines changed

contrib/postgres_fdw/Makefile

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
# contrib/postgres_fdw/Makefile
22

33
MODULE_big = postgres_fdw
4-
OBJS_FRONTEND = \
5-
link-canary.o
64

75
OBJS = \
86
$(WIN32RES) \
9-
$(OBJS_FRONTEND) \
107
connection.o \
118
deparse.o \
129
option.o \
@@ -16,7 +13,7 @@ OBJS = \
1613
PGFILEDESC = "postgres_fdw - foreign data wrapper for PostgreSQL"
1714

1815
PG_CPPFLAGS = -I$(libpq_srcdir)
19-
SHLIB_LINK_INTERNAL = -Wl,-Bsymbolic -Wl,-Bstatic -Wl,-Bstatic $(libpq) -Wl,-Bdynamic
16+
SHLIB_LINK_INTERNAL = $(libpq)
2017

2118
EXTENSION = postgres_fdw
2219
DATA = postgres_fdw--1.0.sql postgres_fdw--1.0--1.1.sql
@@ -36,17 +33,6 @@ include $(top_builddir)/src/Makefile.global
3633
include $(top_srcdir)/contrib/contrib-global.mk
3734
endif
3835

39-
link-canary.c : % : $(top_srcdir)/src/common/%
40-
rm -f $@ && $(LN_S) $< .
41-
42-
link-canary.o: link-canary.c
43-
$(CC) $(CFLAGS) -DFRONTEND $(CPPFLAGS) -c $< -o $@
44-
45-
clean: clean-symlinks
46-
47-
clean-symlinks:
48-
rm -f link-canary.c
49-
5036
# For postgres_fdw test
5137
export PG_PORT=5432
5238
installcheck: install prep_postgres

contrib/postgres_fdw/expected/gp2pg_postgres_fdw.out

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,13 @@ CREATE TABLE "S 1"."T 4" (
9393
);
9494
-- Disable autovacuum for these tables to avoid unexpected effects of that
9595
ALTER TABLE "S 1"."T 1" SET (autovacuum_enabled = 'false');
96-
WARNING: autovacuum is not supported in Greenplum
96+
WARNING: autovacuum is not supported in Cloudberry
9797
ALTER TABLE "S 1"."T 2" SET (autovacuum_enabled = 'false');
98-
WARNING: autovacuum is not supported in Greenplum
98+
WARNING: autovacuum is not supported in Cloudberry
9999
ALTER TABLE "S 1"."T 3" SET (autovacuum_enabled = 'false');
100-
WARNING: autovacuum is not supported in Greenplum
100+
WARNING: autovacuum is not supported in Cloudberry
101101
ALTER TABLE "S 1"."T 4" SET (autovacuum_enabled = 'false');
102-
WARNING: autovacuum is not supported in Greenplum
102+
WARNING: autovacuum is not supported in Cloudberry
103103
INSERT INTO "S 1"."T 1"
104104
SELECT id,
105105
id % 10,
@@ -7735,7 +7735,7 @@ CREATE TABLE a (aa TEXT);
77357735
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'aa' as the Greenplum Database data distribution key for this table.
77367736
HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
77377737
ALTER TABLE a SET (autovacuum_enabled = 'false');
7738-
WARNING: autovacuum is not supported in Greenplum
7738+
WARNING: autovacuum is not supported in Cloudberry
77397739
\! env PGOPTIONS='' psql -p ${PG_PORT} contrib_regression -c 'CREATE TABLE loct (aa TEXT, bb TEXT);'
77407740
CREATE TABLE
77417741
\! env PGOPTIONS='' psql -p ${PG_PORT} contrib_regression -c 'ALTER TABLE loct SET (autovacuum_enabled = 'false');'
@@ -7849,9 +7849,9 @@ ALTER TABLE
78497849
\! env PGOPTIONS='' psql -p ${PG_PORT} contrib_regression -c 'alter table loct2 set (autovacuum_enabled = 'false');'
78507850
ALTER TABLE
78517851
alter table loct1 set (autovacuum_enabled = 'false');
7852-
WARNING: autovacuum is not supported in Greenplum
7852+
WARNING: autovacuum is not supported in Cloudberry
78537853
alter table loct2 set (autovacuum_enabled = 'false');
7854-
WARNING: autovacuum is not supported in Greenplum
7854+
WARNING: autovacuum is not supported in Cloudberry
78557855
create table foo (f1 int, f2 int);
78567856
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'f1' as the Greenplum Database data distribution key for this table.
78577857
HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
@@ -7863,9 +7863,9 @@ HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sur
78637863
create foreign table bar2 (f3 int) inherits (bar)
78647864
server pgserver options (table_name 'loct2');
78657865
alter table foo set (autovacuum_enabled = 'false');
7866-
WARNING: autovacuum is not supported in Greenplum
7866+
WARNING: autovacuum is not supported in Cloudberry
78677867
alter table bar set (autovacuum_enabled = 'false');
7868-
WARNING: autovacuum is not supported in Greenplum
7868+
WARNING: autovacuum is not supported in Cloudberry
78697869
insert into foo values(1,1);
78707870
insert into foo values(3,3);
78717871
insert into foo2 values(2,2,2);

contrib/postgres_fdw/expected/gp2pg_postgres_fdw_optimizer.out

Lines changed: 525 additions & 509 deletions
Large diffs are not rendered by default.

contrib/postgres_fdw/expected/gp_postgres_fdw_optimizer.out

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
-- ===================================================================
2-
-- Greenplum-specific features for postgres_fdw
2+
-- Cloudberry-specific features for postgres_fdw
33
-- ===================================================================
44
-- ===================================================================
55
-- Create source tables and populate with data
@@ -667,9 +667,9 @@ SELECT * FROM postgres_fdw_gp."GP 1" ORDER BY f1;
667667

668668
TRUNCATE TABLE postgres_fdw_gp."GP 1";
669669
-- ===================================================================
670-
-- validate writes on coordinator (mpp_execute set to coordinator)
670+
-- validate writes on master (mpp_execute set to master)
671671
-- ===================================================================
672-
ALTER FOREIGN TABLE gp_ft1 OPTIONS ( SET mpp_execute 'coordinator' );
672+
ALTER FOREIGN TABLE gp_ft1 OPTIONS ( SET mpp_execute 'master' );
673673
EXPLAIN (COSTS FALSE) INSERT INTO gp_ft1 SELECT * FROM table_dist_rand;
674674
QUERY PLAN
675675
------------------------------------------------
@@ -1365,27 +1365,27 @@ ALTER TABLE sub_part_1_prt_1 EXCHANGE PARTITION for(1) WITH TABLE sub_part_1_prt
13651365
ALTER TABLE sub_part_1_prt_1 EXCHANGE PARTITION for(2) WITH TABLE sub_part_1_prt_1_2_prt_two_foreign;
13661366
-- explain with ORCA should fall back to planner, rather than raise ERROR
13671367
explain select * from sub_part;
1368-
QUERY PLAN
1369-
---------------------------------------------------------------------------------------------
1368+
QUERY PLAN
1369+
---------------------------------------------------------------------------------------------------------
13701370
Append (cost=100.00..14631.81 rows=641404 width=12)
1371-
-> Foreign Scan on sub_part_1_prt_1_2_prt_one (cost=100.00..383.06 rows=9102 width=12)
1372-
-> Foreign Scan on sub_part_1_prt_1_2_prt_two (cost=100.00..383.06 rows=9102 width=12)
1371+
-> Foreign Scan on sub_part_1_prt_1_2_prt_one sub_part_1 (cost=100.00..383.06 rows=9102 width=12)
1372+
-> Foreign Scan on sub_part_1_prt_1_2_prt_two sub_part_2 (cost=100.00..383.06 rows=9102 width=12)
13731373
-> Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..1332.33 rows=77900 width=12)
1374-
-> Seq Scan on sub_part_1_prt_2_2_prt_one (cost=0.00..293.67 rows=25967 width=12)
1374+
-> Seq Scan on sub_part_1_prt_2_2_prt_one sub_part_3 (cost=0.00..293.67 rows=25967 width=12)
13751375
-> Gather Motion 3:1 (slice2; segments: 3) (cost=0.00..1332.33 rows=77900 width=12)
1376-
-> Seq Scan on sub_part_1_prt_2_2_prt_two (cost=0.00..293.67 rows=25967 width=12)
1376+
-> Seq Scan on sub_part_1_prt_2_2_prt_two sub_part_4 (cost=0.00..293.67 rows=25967 width=12)
13771377
-> Gather Motion 3:1 (slice3; segments: 3) (cost=0.00..1332.33 rows=77900 width=12)
1378-
-> Seq Scan on sub_part_1_prt_3_2_prt_one (cost=0.00..293.67 rows=25967 width=12)
1378+
-> Seq Scan on sub_part_1_prt_3_2_prt_one sub_part_5 (cost=0.00..293.67 rows=25967 width=12)
13791379
-> Gather Motion 3:1 (slice4; segments: 3) (cost=0.00..1332.33 rows=77900 width=12)
1380-
-> Seq Scan on sub_part_1_prt_3_2_prt_two (cost=0.00..293.67 rows=25967 width=12)
1380+
-> Seq Scan on sub_part_1_prt_3_2_prt_two sub_part_6 (cost=0.00..293.67 rows=25967 width=12)
13811381
-> Gather Motion 3:1 (slice5; segments: 3) (cost=0.00..1332.33 rows=77900 width=12)
1382-
-> Seq Scan on sub_part_1_prt_4_2_prt_one (cost=0.00..293.67 rows=25967 width=12)
1382+
-> Seq Scan on sub_part_1_prt_4_2_prt_one sub_part_7 (cost=0.00..293.67 rows=25967 width=12)
13831383
-> Gather Motion 3:1 (slice6; segments: 3) (cost=0.00..1332.33 rows=77900 width=12)
1384-
-> Seq Scan on sub_part_1_prt_4_2_prt_two (cost=0.00..293.67 rows=25967 width=12)
1384+
-> Seq Scan on sub_part_1_prt_4_2_prt_two sub_part_8 (cost=0.00..293.67 rows=25967 width=12)
13851385
-> Gather Motion 3:1 (slice7; segments: 3) (cost=0.00..1332.33 rows=77900 width=12)
1386-
-> Seq Scan on sub_part_1_prt_5_2_prt_one (cost=0.00..293.67 rows=25967 width=12)
1386+
-> Seq Scan on sub_part_1_prt_5_2_prt_one sub_part_9 (cost=0.00..293.67 rows=25967 width=12)
13871387
-> Gather Motion 3:1 (slice8; segments: 3) (cost=0.00..1332.33 rows=77900 width=12)
1388-
-> Seq Scan on sub_part_1_prt_5_2_prt_two (cost=0.00..293.67 rows=25967 width=12)
1388+
-> Seq Scan on sub_part_1_prt_5_2_prt_two sub_part_10 (cost=0.00..293.67 rows=25967 width=12)
13891389
Optimizer: Postgres query optimizer
13901390
(20 rows)
13911391

contrib/postgres_fdw/postgres_fdw.c

Lines changed: 2 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5881,27 +5881,7 @@ apply_server_options(PgFdwRelationInfo *fpinfo)
58815881
DefElem *def = (DefElem *) lfirst(lc);
58825882

58835883
if (strcmp(def->defname, "use_remote_estimate") == 0)
5884-
{
5885-
/*
5886-
* GPDB_13_MERGE_FIXME: For updable statement, different forked Backends by Master
5887-
* (QD and entrydb instances)
5888-
* will hold Exclusive lock on the same table, which causes lock hang issue.
5889-
* For Postgres, there is only one backend, and connnections have been shared,
5890-
* so the issue doesn't exist.
5891-
*
5892-
* For example, following query will hang:
5893-
* SELECT *
5894-
* FROM ft1, ft2, ft4, ft5, local_tbl
5895-
* WHERE ft1.c1 = ft2.c1 AND
5896-
* ft1.c2 = ft4.c1 AND
5897-
* ft1.c2 = ft5.c1 AND
5898-
* ft1.c2 = local_tbl.c1 AND
5899-
* ft1.c1 < 100 AND
5900-
* ft2.c1 < 100 FOR UPDATE;
5901-
*/
5902-
elog(WARNING, "fdw option 'use_remote_estimate' is not supported.");
5903-
fpinfo->use_remote_estimate = false;
5904-
}
5884+
fpinfo->use_remote_estimate = defGetBoolean(def);
59055885
else if (strcmp(def->defname, "fdw_startup_cost") == 0)
59065886
(void) parse_real(defGetString(def), &fpinfo->fdw_startup_cost, 0,
59075887
NULL);
@@ -5933,27 +5913,7 @@ apply_table_options(PgFdwRelationInfo *fpinfo)
59335913
DefElem *def = (DefElem *) lfirst(lc);
59345914

59355915
if (strcmp(def->defname, "use_remote_estimate") == 0)
5936-
{
5937-
/*
5938-
* GPDB_13_MERGE_FIXME: For updable statement, different forked Backends by Master
5939-
* (QD and entrydb instances)
5940-
* will hold Exclusive lock on the same table, which causes lock hang issue.
5941-
* For Postgres, there is only one backend, and connnections have been shared,
5942-
* so the issue doesn't exist.
5943-
*
5944-
* For example, following query will hang:
5945-
* SELECT *
5946-
* FROM ft1, ft2, ft4, ft5, local_tbl
5947-
* WHERE ft1.c1 = ft2.c1 AND
5948-
* ft1.c2 = ft4.c1 AND
5949-
* ft1.c2 = ft5.c1 AND
5950-
* ft1.c2 = local_tbl.c1 AND
5951-
* ft1.c1 < 100 AND
5952-
* ft2.c1 < 100 FOR UPDATE;
5953-
*/
5954-
elog(WARNING, "fdw option 'use_remote_estimate' is not supported.");
5955-
fpinfo->use_remote_estimate = false;
5956-
}
5916+
fpinfo->use_remote_estimate = defGetBoolean(def);
59575917
else if (strcmp(def->defname, "fetch_size") == 0)
59585918
(void) parse_int(defGetString(def), &fpinfo->fetch_size, 0, NULL);
59595919
else if (strcmp(def->defname, "async_capable") == 0)

contrib/postgres_fdw/postgres_fdw.h

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,33 +19,7 @@
1919
#include "nodes/pathnodes.h"
2020
#include "utils/relcache.h"
2121

22-
/* GPDB_13_MERGE_FIXME: Do we still needs this patch? */
23-
/* postgres_fdw is compiled as a backend, it needs the server's
24-
* header files such as executor/tuptable.h. It also needs libpq
25-
* to connect to a remote postgres database, so it's statically
26-
* linked to libpq.a which is compiled as a frontend using
27-
* -DFRONTEND.
28-
*
29-
* But the struct PQconninfoOption's length is different between
30-
* backend and frontend, there is no "connofs" field in frontend.
31-
* When postgres_fdw calls the function "PQconndefaults" implemented
32-
* in libpq.a and uses the returned PQconninfoOption variable, it crashs,
33-
* because the PQconninfoOption variable returned by libpq.a doesn't contain
34-
* the "connofs" value, but the postgres_fdw thinks it has, so it crashes.
35-
*
36-
* We define FRONTEND here to include frontend libpq header files.
37-
*/
38-
#ifdef LIBPQ_FE_H
39-
#error "postgres_fdw.h" must be included before "libpq-fe.h"
40-
#endif /* LIBPQ_FE_H */
41-
42-
#ifndef FRONTEND
43-
#define FRONTEND
44-
#include "libpq-fe.h"
45-
#undef FRONTEND
46-
#else
4722
#include "libpq-fe.h"
48-
#endif /* FRONTEND */
4923

5024
/*
5125
* FDW-specific planner information kept in RelOptInfo.fdw_private for a
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#!/bin/bash
2+
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
3+
if [ ! -d testdata ]; then
4+
mkdir testdata
5+
fi
6+
pushd ${DIR}/testdata
7+
GPPORT=${PGPORT}
8+
GPOPTIONS=${PGOPTIONS}
9+
export PGPORT=${PG_PORT}
10+
# set PGOPTIONS to be empty and restart the GP.
11+
# Becuase PGOPTIONS='-c optimizer=off' is sometimes set on gp cluster
12+
# and it will be sent to pg through postgres_fdw, but pg can not
13+
# recognize the 'optimizer' config. PGOPTIONS is not useful for gp
14+
# cluster, it is used by psql.
15+
export PGOPTIONS=''
16+
pgbin="pgsql"
17+
18+
# install postgres
19+
if [ ! -d "${pgbin}" ] ; then
20+
mkdir ${pgbin}
21+
if [ ! -d postgresql-14.4 ]; then
22+
wget https://ftp.postgresql.org/pub/source/v14.4/postgresql-14.4.tar.gz
23+
tar -xf postgresql-14.4.tar.gz
24+
fi
25+
pushd postgresql-14.4
26+
./configure --prefix=${DIR}/testdata/${pgbin}
27+
make -sj$(nproc) MAKELEVEL=0 install
28+
rm -rf postgresql-14.4.tar.gz
29+
popd
30+
fi
31+
32+
# start postgres 1
33+
# there may be already a postgres postgres running, anyway, stop it
34+
if [ -d "pgdata" ] ; then
35+
${pgbin}/bin/pg_ctl -D pgdata stop || true
36+
rm -r pgdata
37+
fi
38+
${pgbin}/bin/initdb -D pgdata
39+
${pgbin}/bin/pg_ctl -D pgdata -l pglog start
40+
41+
# init postgres 1
42+
${pgbin}/bin/dropdb --if-exists contrib_regression
43+
${pgbin}/bin/createdb contrib_regression
44+
45+
# start postgres 2
46+
# listening to port 5555
47+
# there may be already a postgres postgres running, anyway, stop it
48+
if [ -d "pgdata2" ] ; then
49+
${pgbin}/bin/pg_ctl -D pgdata2 stop || true
50+
rm -r pgdata2
51+
fi
52+
${pgbin}/bin/initdb -D pgdata2
53+
${pgbin}/bin/pg_ctl -D pgdata2 -l pglog2 -o "-p 5555" start
54+
55+
# init postgres 2
56+
${pgbin}/bin/dropdb -p 5555 --if-exists contrib_regression
57+
${pgbin}/bin/createdb -p 5555 contrib_regression
58+
59+
export PGPORT=${GPPORT}
60+
# export PGOPTIONS=${GPOPTIONS}
61+
popd
62+
gpstop -ar

contrib/postgres_fdw/sql/gp2pg_postgres_fdw.sql

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
-- 2.3 gpdb don't support REINDEX CONCURRENTLY.
99
-- 3. gpdb will generate different PLAN from postgres, such as join local table and remote table, select for update/share and so on.
1010

11+
-- start_matchignore
12+
-- m/^DETAIL: Falling back to Postgres-based planner because GPORCA does not support the following feature: .*$
13+
-- end_matchignore
14+
1115
-- ===================================================================
1216
-- create FDW objects
1317
-- ===================================================================
@@ -303,7 +307,7 @@ EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM ft1 t1 WHERE c1 IS NULL; -- Nu
303307
EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM ft1 t1 WHERE c1 IS NOT NULL; -- NullTest
304308
EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM ft1 t1 WHERE round(abs(c1), 0) = 1; -- FuncExpr
305309
EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM ft1 t1 WHERE c1 = -c1; -- OpExpr(l)
306-
EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM ft1 t1 WHERE 1 = c1!; -- OpExpr(r)
310+
EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM ft1 t1 WHERE 1 = c1; -- OpExpr(r)
307311
EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM ft1 t1 WHERE (c1 IS NOT NULL) IS DISTINCT FROM (c1 IS NOT NULL); -- DistinctExpr
308312
EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM ft1 t1 WHERE c1 = ANY(ARRAY[c2, 1, c1 + 0]); -- ScalarArrayOpExpr
309313
EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM ft1 t1 WHERE c1 = (ARRAY[c1,c2,3])[1]; -- SubscriptingRef

contrib/postgres_fdw/sql/gp_postgres_fdw.sql

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -20,34 +20,6 @@ $d$;
2020

2121
CREATE USER MAPPING IF NOT EXISTS FOR CURRENT_USER SERVER loopback;
2222

23-
CREATE EXTENSION postgres_fdw;
24-
25-
CREATE SERVER testserver1 FOREIGN DATA WRAPPER postgres_fdw;
26-
DO $d$
27-
BEGIN
28-
EXECUTE $$CREATE SERVER loopback FOREIGN DATA WRAPPER postgres_fdw
29-
OPTIONS (dbname '$$||current_database()||$$',
30-
port '$$||current_setting('port')||$$'
31-
)$$;
32-
EXECUTE $$CREATE SERVER loopback2 FOREIGN DATA WRAPPER postgres_fdw
33-
OPTIONS (dbname '$$||current_database()||$$',
34-
port '$$||current_setting('port')||$$'
35-
)$$;
36-
EXECUTE $$CREATE SERVER loopback3 FOREIGN DATA WRAPPER postgres_fdw
37-
OPTIONS (dbname '$$||current_database()||$$',
38-
port '$$||current_setting('port')||$$'
39-
)$$;
40-
END;
41-
$d$;
42-
43-
CREATE USER MAPPING FOR public SERVER testserver1
44-
OPTIONS (user 'value', password 'value');
45-
CREATE USER MAPPING FOR CURRENT_USER SERVER loopback;
46-
CREATE USER MAPPING FOR CURRENT_USER SERVER loopback2;
47-
CREATE USER MAPPING FOR public SERVER loopback3;
48-
49-
CREATE SCHEMA "S 1";
50-
5123
CREATE TABLE table_dist_rand
5224
(
5325
f1 int,

contrib/postgres_fdw/sql/mpp_postgres_fdw.sql

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
-- start_ignore
2+
alter system set optimizer = off;
3+
select pg_reload_conf();
4+
-- end_ignore
5+
16
CREATE EXTENSION IF NOT EXISTS postgres_fdw;
27

38
CREATE SERVER testserver2 FOREIGN DATA WRAPPER postgres_fdw;
@@ -135,3 +140,7 @@ explain (costs off) select count(*) from fs1, fs2 where fs1.a = fs2.a and fs1.gp
135140
select count(*) from fs1,fs2 where fs1.a = fs2.a and fs1.gp_foreign_server = fs2.gp_foreign_server;
136141

137142
reset enable_parallel;
143+
-- start_ignore
144+
alter system reset optimizer;
145+
select pg_reload_conf();
146+
-- end_ignore

0 commit comments

Comments
 (0)