summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/rewrite/rewriteHandler.c3
-rw-r--r--src/test/regress/expected/stats_1.out29
-rw-r--r--src/test/regress/sql/stats.sql2
3 files changed, 19 insertions, 15 deletions
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c
index 1ce3063bc1..81bce011a0 100644
--- a/src/backend/rewrite/rewriteHandler.c
+++ b/src/backend/rewrite/rewriteHandler.c
@@ -2625,9 +2625,8 @@ QueryRewriteCTAS(Query *parsetree)
appendStringInfo(&cquery, " %s", selectstr);
raw_parsetree_list = pg_parse_query(cquery.data);
- parsetree = parse_analyze(linitial(raw_parsetree_list), cquery.data,
+ return pg_analyze_and_rewrite(linitial(raw_parsetree_list), cquery.data,
NULL, 0);
- return(list_make1(parsetree));
}
#endif
diff --git a/src/test/regress/expected/stats_1.out b/src/test/regress/expected/stats_1.out
index b122817adf..53b9e5bc2e 100644
--- a/src/test/regress/expected/stats_1.out
+++ b/src/test/regress/expected/stats_1.out
@@ -19,6 +19,7 @@ SELECT pg_sleep(2.0);
(1 row)
+SET enforce_two_phase_commit TO off;
-- save counters
CREATE TEMP TABLE prevstats AS
SELECT t.seq_scan, t.seq_tup_read, t.idx_scan, t.idx_tup_fetch,
@@ -27,7 +28,6 @@ SELECT t.seq_scan, t.seq_tup_read, t.idx_scan, t.idx_tup_fetch,
FROM pg_catalog.pg_stat_user_tables AS t,
pg_catalog.pg_statio_user_tables AS b
WHERE t.relname='tenk2' AND b.relname='tenk2';
-ERROR: INTO clause not yet supported
-- function to wait for counters to advance
create function wait_for_stats() returns void as $$
declare
@@ -81,12 +81,11 @@ SELECT pg_sleep(1.0);
-- wait for stats collector to update
SELECT wait_for_stats();
-ERROR: relation "prevstats" does not exist
-LINE 1: ... FROM pg_stat_user_tables AS st, pg_class AS cl, prevstats ...
- ^
-QUERY: SELECT (st.idx_scan >= pr.idx_scan + 1) FROM pg_stat_user_tables AS st, pg_class AS cl, prevstats AS pr
- WHERE st.relname='tenk2' AND cl.relname='tenk2'
-CONTEXT: PL/pgSQL function "wait_for_stats" line 10 at SQL statement
+ wait_for_stats
+----------------
+
+(1 row)
+
-- check effects
SELECT st.seq_scan >= pr.seq_scan + 1,
st.seq_tup_read >= pr.seq_tup_read + cl.reltuples,
@@ -94,14 +93,18 @@ SELECT st.seq_scan >= pr.seq_scan + 1,
st.idx_tup_fetch >= pr.idx_tup_fetch + 1
FROM pg_stat_user_tables AS st, pg_class AS cl, prevstats AS pr
WHERE st.relname='tenk2' AND cl.relname='tenk2';
-ERROR: relation "prevstats" does not exist
-LINE 5: FROM pg_stat_user_tables AS st, pg_class AS cl, prevstats ...
- ^
+ ?column? | ?column? | ?column? | ?column?
+----------+----------+----------+----------
+ f | t | f | f
+(1 row)
+
SELECT st.heap_blks_read + st.heap_blks_hit >= pr.heap_blks + cl.relpages,
st.idx_blks_read + st.idx_blks_hit >= pr.idx_blks + 1
FROM pg_statio_user_tables AS st, pg_class AS cl, prevstats AS pr
WHERE st.relname='tenk2' AND cl.relname='tenk2';
-ERROR: relation "prevstats" does not exist
-LINE 3: ...FROM pg_statio_user_tables AS st, pg_class AS cl, prevstats ...
- ^
+ ?column? | ?column?
+----------+----------
+ t | f
+(1 row)
+
-- End of Stats Test
diff --git a/src/test/regress/sql/stats.sql b/src/test/regress/sql/stats.sql
index 4a72a949f2..a4a88ca931 100644
--- a/src/test/regress/sql/stats.sql
+++ b/src/test/regress/sql/stats.sql
@@ -12,6 +12,8 @@ SHOW track_counts; -- must be on
-- else our messages might get lost due to contention
SELECT pg_sleep(2.0);
+SET enforce_two_phase_commit TO off;
+
-- save counters
CREATE TEMP TABLE prevstats AS
SELECT t.seq_scan, t.seq_tup_read, t.idx_scan, t.idx_tup_fetch,