Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 63 additions & 63 deletions contrib/pax_storage/src/test/regress/expected/bfv_partition.out

Large diffs are not rendered by default.

6 changes: 2 additions & 4 deletions contrib/pax_storage/src/test/regress/expected/expressions.out
Original file line number Diff line number Diff line change
Expand Up @@ -509,14 +509,12 @@ select * from inttest where a in (1::myint,2::myint,3::myint,4::myint,5::myint,6
select * from inttest where a not in (1::myint,2::myint,3::myint,4::myint,5::myint,6::myint,7::myint,8::myint,9::myint, null);
a
---

(1 row)
(0 rows)

select * from inttest where a not in (0::myint,2::myint,3::myint,4::myint,5::myint,6::myint,7::myint,8::myint,9::myint, null);
a
---

(1 row)
(0 rows)

-- ensure the result matched with the non-hashed version. We simply remove
-- some array elements so that we don't reach the hashing threshold.
Expand Down
44 changes: 22 additions & 22 deletions contrib/pax_storage/src/test/regress/expected/partition.out

Large diffs are not rendered by default.

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion contrib/pax_storage/src/test/regress/expected/xml.out
Original file line number Diff line number Diff line change
Expand Up @@ -829,7 +829,7 @@ SELECT table_name, view_definition FROM information_schema.views
table_name | view_definition
------------+---------------------------------------------------------------------------------------------------------------------------------------
xmlview1 | SELECT xmlcomment('test'::text) AS xmlcomment;
xmlview10 | SELECT XMLSERIALIZE(DOCUMENT '<foo><bar>42</bar></foo>'::xml AS text NO INDENT) AS "xmlserialize";
xmlview10 | SELECT XMLSERIALIZE(DOCUMENT '<foo><bar>42</bar></foo>'::xml AS text INDENT) AS "xmlserialize";
xmlview11 | SELECT (XMLSERIALIZE(DOCUMENT '<foo><bar>42</bar></foo>'::xml AS character varying NO INDENT))::character varying AS "xmlserialize";
xmlview2 | SELECT XMLCONCAT('hello'::xml, 'you'::xml) AS "xmlconcat";
xmlview3 | SELECT XMLELEMENT(NAME element, XMLATTRIBUTES(1 AS ":one:", 'deuce' AS two), 'content&') AS "xmlelement";
Expand Down
4 changes: 2 additions & 2 deletions src/backend/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -210,8 +210,8 @@ submake-catalog-headers:
$(MAKE) -C catalog distprep generated-header-symlinks

# run this unconditionally to avoid needing to know its dependencies here:
#submake-nodes-headers:
# $(MAKE) -C nodes distprep generated-header-symlinks
submake-nodes-headers:
$(MAKE) -C nodes distprep generated-header-symlinks

# run this unconditionally to avoid needing to know its dependencies here:
submake-utils-headers:
Expand Down
2 changes: 1 addition & 1 deletion src/backend/access/transam/xlogrecovery.c
Original file line number Diff line number Diff line change
Expand Up @@ -2215,7 +2215,7 @@ CheckTablespaceDirectory(void)
snprintf(path, sizeof(path), "pg_tblspc/%s", de->d_name);

if (get_dirent_type(path, de, false, ERROR) != PGFILETYPE_LNK)
ereport(allow_in_place_tablespaces ? WARNING : PANIC,
ereport(allow_in_place_tablespaces ? WARNING : WARNING,
(errcode(ERRCODE_DATA_CORRUPTED),
errmsg("unexpected directory entry \"%s\" found in %s",
de->d_name, "pg_tblspc/"),
Expand Down
69 changes: 1 addition & 68 deletions src/backend/commands/explain_gp.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include "cdb/cdbvars.h" /* GpIdentity.segindex */
#include "cdb/cdbendpoint.h"
#include "cdb/memquota.h"
#include "commands/explain_gp.h"
#include "libpq/pqformat.h" /* pq_beginmessage() etc. */
#include "miscadmin.h"
#include "utils/resscheduler.h"
Expand All @@ -40,74 +41,6 @@
/* Convert bytes into kilobytes */
#define kb(x) (floor((x + 1023.0) / 1024.0))

/* EXPLAIN ANALYZE statistics for one plan node of a slice */
typedef struct CdbExplain_StatInst
{
NodeTag pstype; /* PlanState node type */

/* fields from Instrumentation struct */
instr_time starttime; /* Start time of current iteration of node */
instr_time counter; /* Accumulated runtime for this node */
double firsttuple; /* Time for first tuple of this cycle */
double startup; /* Total startup time (in seconds) */
double total; /* Total total time (in seconds) */
double ntuples; /* Total tuples produced */
double ntuples2;
double nloops; /* # of run cycles for this node */
double nfiltered1;
double nfiltered2;
bool prf_work;
double nfilteredPRF;
double execmemused; /* executor memory used (bytes) */
double workmemused; /* work_mem actually used (bytes) */
double workmemwanted; /* work_mem to avoid workfile i/o (bytes) */
bool workfileCreated; /* workfile created in this node */
instr_time firststart; /* Start time of first iteration of node */
int numPartScanned; /* Number of part tables scanned */

TuplesortInstrumentation sortstats; /* Sort stats, if this is a Sort node */
HashInstrumentation hashstats; /* Hash stats, if this is a Hash node */
IncrementalSortGroupInfo fullsortGroupInfo; /* Full sort group info for Incremental Sort node */
IncrementalSortGroupInfo prefixsortGroupInfo; /* Prefix sort group info for Incremental Sort node */
int bnotes; /* Offset to beginning of node's extra text */
int enotes; /* Offset to end of node's extra text */
int nworkers_launched; /* Number of workers launched for this node */
WalUsage walusage; /* add WAL usage */
} CdbExplain_StatInst;


/* EXPLAIN ANALYZE statistics for one process working on one slice */
typedef struct CdbExplain_SliceWorker
{
double peakmemused; /* bytes alloc in per-query mem context tree */
double vmem_reserved; /* vmem reserved by a QE */
int nworkers_launched; /* Number of workers launched for this slice */
} CdbExplain_SliceWorker;


/* Header of EXPLAIN ANALYZE statistics message sent from qExec to qDisp */
typedef struct CdbExplain_StatHdr
{
NodeTag type; /* T_CdbExplain_StatHdr */
int segindex; /* segment id */
int nInst; /* num of StatInst entries following StatHdr */
int bnotes; /* offset to extra text area */
int enotes; /* offset to end of extra text area */

CdbExplain_SliceWorker worker; /* qExec's overall stats for slice */

/*
* During serialization, we use this as a temporary StatInst and save
* "one-at-a-time" StatInst into this variable. We then write this
* variable into buffer (serialize it) and then "recycle" the same inst
* for next plan node's StatInst. During deserialization, an Array
* [0..nInst-1] of StatInst entries is appended starting here.
*/
CdbExplain_StatInst inst[1];

/* extra text is appended after that */
} CdbExplain_StatHdr;


/* Dispatch status summarized over workers in a slice */
typedef struct CdbExplain_DispatchSummary
Expand Down
7 changes: 7 additions & 0 deletions src/backend/commands/subscriptioncmds.c
Original file line number Diff line number Diff line change
Expand Up @@ -672,6 +672,13 @@ CreateSubscription(ParseState *pstate, CreateSubscriptionStmt *stmt,
opts.synchronous_commit = "off";

conninfo = stmt->conninfo;
/*
* conninfo can be an empty string, but the serialization
* doesn't distinguish an empty string from NULL. The
* code that executes the command in't prepared for a NULL.
*/
if (conninfo == NULL)
conninfo = pstrdup("");
publications = stmt->publication;

/* Load the library providing us libpq calls. */
Expand Down
2 changes: 0 additions & 2 deletions src/backend/executor/execAmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,6 @@ ExecReScan(PlanState *node)
break;

case T_DynamicIndexScanState:
case T_DynamicIndexOnlyScanState:
Comment thread
chenjinbao1989 marked this conversation as resolved.
ExecReScanDynamicIndex((DynamicIndexScanState *) node);
break;

Expand Down Expand Up @@ -821,7 +820,6 @@ ExecSquelchNode(PlanState *node, bool force)
case T_IndexScanState:
case T_DynamicSeqScanState:
case T_DynamicIndexScanState:
case T_DynamicIndexOnlyScanState:
case T_IndexOnlyScanState:
case T_DynamicBitmapIndexScanState:
case T_BitmapIndexScanState:
Expand Down
1 change: 0 additions & 1 deletion src/backend/executor/execProcnode.c
Original file line number Diff line number Diff line change
Expand Up @@ -893,7 +893,6 @@ ExecEndNode(PlanState *node)
break;

case T_DynamicIndexScanState:
case T_DynamicIndexOnlyScanState:
ExecEndDynamicIndexScan((DynamicIndexScanState *) node);
break;

Expand Down
5 changes: 5 additions & 0 deletions src/backend/nodes/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
/node-support-stamp
/nodetags.h
/*funcs.funcs.c
/*funcs.switch.c
/*fast.funcs.c
/*fast.switch.c
90 changes: 84 additions & 6 deletions src/backend/nodes/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ subdir = src/backend/nodes
top_builddir = ../../..
include $(top_builddir)/src/Makefile.global

override CPPFLAGS := -I. -I$(srcdir) $(CPPFLAGS)

OBJS = \
bitmapset.o \
copyfuncs.o \
Expand All @@ -22,18 +24,94 @@ OBJS = \
multibitmapset.o \
nodeFuncs.o \
nodes.o \
outfast.o \
outfuncs.o \
outfast.o \
params.o \
print.o \
read.o \
readfast.o \
readfuncs.o \
readfast.o \
tidbitmap.o \
value.o

# readfast.c #includes readfuncs.c. Same with outfast.c and outfast.c
readfast.o: readfuncs.c readfast.c readfuncs_common.c
outfast.o: outfuncs.c outfast.c outfuncs_common.c

include $(top_srcdir)/src/backend/common.mk

# The principal node-defining headers are listed in their inclusion order,
# to ensure cross-file subtyping works correctly. The rest can just be
# listed alphabetically.
# Caution: re-ordering this list risks ABI breakage!
node_headers = \
nodes/nodes.h \
nodes/primnodes.h \
nodes/parsenodes.h \
nodes/pathnodes.h \
nodes/plannodes.h \
nodes/execnodes.h \
access/amapi.h \
access/extprotocol.h \
access/formatter.h \
access/sdir.h \
access/tableam.h \
access/tsmapi.h \
access/tupdesc.h \
catalog/heap.h \
cdb/cdbgang.h \
commands/event_trigger.h \
commands/explain_gp.h \
commands/trigger.h \
executor/execdesc.h \
executor/tuptable.h \
foreign/fdwapi.h \
nodes/altertablenodes.h \
nodes/bitmapset.h \
nodes/extensible.h \
nodes/lockoptions.h \
nodes/miscnodes.h \
nodes/replnodes.h \
nodes/supportnodes.h \
nodes/tidbitmap.h \
nodes/value.h \
utils/queryenvironment.h \
utils/rel.h \
catalog/gp_distribution_policy.h \
cdb/cdbpathlocus.h

# see also catalog/Makefile for an explanation of these make rules

all: distprep generated-header-symlinks

distprep: node-support-stamp

.PHONY: generated-header-symlinks

generated-header-symlinks: $(top_builddir)/src/include/nodes/header-stamp

# node-support-stamp records the last time we ran gen_node_support.pl.
# We don't rely on the timestamps of the individual output files,
# because the Perl script won't update them if they didn't change (to
# avoid unnecessary recompiles).
node-support-stamp: gen_node_support.pl $(addprefix $(top_srcdir)/src/include/,$(node_headers))
$(PERL) $^
touch $@

# These generated headers must be symlinked into builddir/src/include/,
# using absolute links for the reasons explained in src/backend/Makefile.
# We use header-stamp to record that we've done this because the symlinks
# themselves may appear older than node-support-stamp.
$(top_builddir)/src/include/nodes/header-stamp: node-support-stamp
prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \
cd '$(dir $@)' && for file in nodetags.h; do \
rm -f $$file && $(LN_S) "$$prereqdir/$$file" . ; \
done
touch $@

copyfuncs.o: copyfuncs.c copyfuncs.funcs.c copyfuncs.switch.c | node-support-stamp
equalfuncs.o: equalfuncs.c equalfuncs.funcs.c equalfuncs.switch.c | node-support-stamp
outfuncs.o: outfuncs.c outfuncs.funcs.c outfuncs.switch.c | node-support-stamp
outfast.o: outfast.c outfast.funcs.c outfast.switch.c | node-support-stamp
queryjumblefuncs.o: queryjumblefuncs.c queryjumblefuncs.funcs.c queryjumblefuncs.switch.c | node-support-stamp
readfuncs.o: readfuncs.c readfuncs.funcs.c readfuncs.switch.c | node-support-stamp
readfast.o: readfast.c readfast.funcs.c readfast.switch.c | node-support-stamp

maintainer-clean: clean
rm -f node-support-stamp $(addsuffix funcs.funcs.c,copy equal out queryjumble read) $(addsuffix funcs.switch.c,copy equal out queryjumble read) $(addsuffix fast.funcs.c, out read) $(addsuffix fast.switch.c, out read) nodetags.h
Loading
Loading