Fix pg_get_indexdef()'s behavior for included index columns.
Tom Lane <tgl@sss.pgh.pa.us>
Fix pg_get_indexdef()'s behavior for included index columns. The multi-argument form of pg_get_indexdef() failed to print anything when asked to print a single index column that is an included column rather than a key column. This seems an unintentional result of someone having tried to take a short-cut and use the attrsOnly flag for two different purposes. To fix, split said flag into two flags, attrsOnly which suppresses non-attribute info, and keysOnly which suppresses included columns. Add a test case using psql's \d command, which relies on that function. (It's mighty tempting at this point to replace pg_get_indexdef_worker's mess of boolean flag arguments with a single bitmask-of-flags argument, which would allow making the call sites much more self-documenting. But I refrained for the moment.) Discussion: https://postgr.es/m/21724.1531943735@sss.pgh.pa.us
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/adt/ruleutils.c | modified | +27 −18 |
| src/test/regress/expected/index_including.out | modified | +10 −0 |
| src/test/regress/sql/index_including.sql | modified | +1 −0 |
Discussion
- psql's \d versus included-index-column feature 9 messages · 2018-07-18 → 2018-07-19