summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
authorSimon Riggs2017-09-06 20:46:01 +0000
committerSimon Riggs2017-09-06 20:46:01 +0000
commit5b6d13eec72b960eb0f78542199380e49c8583d4 (patch)
tree8893caeb77015bb2502f3795954b6f59b5b04305 /src/bin
parente09db94c0a5f3b440d96c5c9e8e6c1638d1ec39f (diff)
Allow SET STATISTICS on expression indexes
Index columns are referenced by ordinal number rather than name, e.g. CREATE INDEX coord_idx ON measured (x, y, (z + t)); ALTER INDEX coord_idx ALTER COLUMN 3 SET STATISTICS 1000; Incompatibility note for release notes: \d+ for indexes now also displays Stats Target Authors: Alexander Korotkov, with contribution by Adrien NAYRAT Review: Adrien NAYRAT, Simon Riggs Wordsmith: Simon Riggs
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/psql/describe.c2
-rw-r--r--src/bin/psql/tab-complete.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index f6049cc9e5c..6fb9bdd0635 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -1742,6 +1742,7 @@ describeOneTableDetails(const char *schemaname,
{
headers[cols++] = gettext_noop("Storage");
if (tableinfo.relkind == RELKIND_RELATION ||
+ tableinfo.relkind == RELKIND_INDEX ||
tableinfo.relkind == RELKIND_MATVIEW ||
tableinfo.relkind == RELKIND_FOREIGN_TABLE ||
tableinfo.relkind == RELKIND_PARTITIONED_TABLE)
@@ -1841,6 +1842,7 @@ describeOneTableDetails(const char *schemaname,
/* Statistics target, if the relkind supports this feature */
if (tableinfo.relkind == RELKIND_RELATION ||
+ tableinfo.relkind == RELKIND_INDEX ||
tableinfo.relkind == RELKIND_MATVIEW ||
tableinfo.relkind == RELKIND_FOREIGN_TABLE ||
tableinfo.relkind == RELKIND_PARTITIONED_TABLE)
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 7959f9ac16e..2ab8809fa59 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -1644,7 +1644,10 @@ psql_completion(const char *text, int start, int end)
"UNION SELECT 'ALL IN TABLESPACE'");
/* ALTER INDEX <name> */
else if (Matches3("ALTER", "INDEX", MatchAny))
- COMPLETE_WITH_LIST4("OWNER TO", "RENAME TO", "SET", "RESET");
+ COMPLETE_WITH_LIST5("ALTER COLUMN", "OWNER TO", "RENAME TO", "SET", "RESET");
+ /* ALTER INDEX <name> ALTER COLUMN <colnum> */
+ else if (Matches6("ALTER", "INDEX", MatchAny, "ALTER", "COLUMN", MatchAny))
+ COMPLETE_WITH_CONST("SET STATISTICS");
/* ALTER INDEX <name> SET */
else if (Matches4("ALTER", "INDEX", MatchAny, "SET"))
COMPLETE_WITH_LIST2("(", "TABLESPACE");