commit 237909c440054e97c09dc6e7711a4ca92892465b Author: Alvaro Herrera AuthorDate: Thu Apr 20 18:19:06 2017 -0300 CommitDate: Thu Apr 20 18:19:06 2017 -0300 Put WITH clause at the end diff --git a/doc/src/sgml/ref/create_statistics.sgml b/doc/src/sgml/ref/create_statistics.sgml index edbcf5840b..910d6be8ab 100644 --- a/doc/src/sgml/ref/create_statistics.sgml +++ b/doc/src/sgml/ref/create_statistics.sgml @@ -22,9 +22,9 @@ PostgreSQL documentation CREATE STATISTICS [ IF NOT EXISTS ] statistics_name - WITH ( option [= value] [, ... ] ) ON ( column_name, column_name [, ...]) FROM table_name + WITH ( option [= value] [, ... ] ) @@ -158,7 +158,7 @@ CREATE TABLE t1 ( INSERT INTO t1 SELECT i/100, i/500 FROM generate_series(1,1000000) s(i); -CREATE STATISTICS s1 WITH (dependencies) ON (a, b) FROM t1; +CREATE STATISTICS s1 ON (a, b) FROM t1 WITH (dependencies); ANALYZE t1; diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 89d2836c49..92e9aa8b28 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -3847,28 +3847,28 @@ ExistingIndex: USING INDEX index_name { $$ = $3; } /***************************************************************************** * * QUERY : - * CREATE STATISTICS stats_name WITH (options) ON (columns) FROM relname + * CREATE STATISTICS stats_name ON (columns) FROM relname WITH (options) * *****************************************************************************/ -CreateStatsStmt: CREATE STATISTICS any_name opt_reloptions ON '(' columnList ')' FROM qualified_name +CreateStatsStmt: CREATE STATISTICS any_name ON '(' columnList ')' FROM qualified_name opt_reloptions { CreateStatsStmt *n = makeNode(CreateStatsStmt); n->defnames = $3; - n->relation = $10; - n->keys = $7; - n->options = $4; + n->relation = $9; + n->keys = $6; + n->options = $10; n->if_not_exists = false; $$ = (Node *)n; } - | CREATE STATISTICS IF_P NOT EXISTS any_name opt_reloptions ON '(' columnList ')' FROM qualified_name + | CREATE STATISTICS IF_P NOT EXISTS any_name ON '(' columnList ')' FROM qualified_name opt_reloptions { CreateStatsStmt *n = makeNode(CreateStatsStmt); n->defnames = $6; - n->relation = $13; - n->keys = $10; - n->options = $7; + n->relation = $12; + n->keys = $9; + n->options = $13; n->if_not_exists = true; $$ = (Node *)n; } diff --git a/src/test/regress/expected/stats_ext.out b/src/test/regress/expected/stats_ext.out index 0d6f65e604..7dc6011e6b 100644 --- a/src/test/regress/expected/stats_ext.out +++ b/src/test/regress/expected/stats_ext.out @@ -389,7 +389,7 @@ EXPLAIN (COSTS OFF) (2 rows) -- create statistics -CREATE STATISTICS func_deps_stat WITH (dependencies) ON (a, b, c) FROM functional_dependencies; +CREATE STATISTICS func_deps_stat ON (a, b, c) FROM functional_dependencies WITH (dependencies); ANALYZE functional_dependencies; EXPLAIN (COSTS OFF) SELECT * FROM functional_dependencies WHERE a = 1 AND b = '1'; @@ -432,7 +432,7 @@ EXPLAIN (COSTS OFF) (2 rows) -- create statistics -CREATE STATISTICS func_deps_stat WITH (dependencies) ON (a, b, c) FROM functional_dependencies; +CREATE STATISTICS func_deps_stat ON (a, b, c) FROM functional_dependencies WITH (dependencies); ANALYZE functional_dependencies; EXPLAIN (COSTS OFF) SELECT * FROM functional_dependencies WHERE a = 1 AND b = '1'; diff --git a/src/test/regress/sql/stats_ext.sql b/src/test/regress/sql/stats_ext.sql index 72c7659c4b..0e21519dbb 100644 --- a/src/test/regress/sql/stats_ext.sql +++ b/src/test/regress/sql/stats_ext.sql @@ -233,7 +233,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM functional_dependencies WHERE a = 1 AND b = '1' AND c = 1; -- create statistics -CREATE STATISTICS func_deps_stat WITH (dependencies) ON (a, b, c) FROM functional_dependencies; +CREATE STATISTICS func_deps_stat ON (a, b, c) FROM functional_dependencies WITH (dependencies); ANALYZE functional_dependencies; @@ -259,7 +259,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM functional_dependencies WHERE a = 1 AND b = '1' AND c = 1; -- create statistics -CREATE STATISTICS func_deps_stat WITH (dependencies) ON (a, b, c) FROM functional_dependencies; +CREATE STATISTICS func_deps_stat ON (a, b, c) FROM functional_dependencies WITH (dependencies); ANALYZE functional_dependencies;