mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
When given a nonzero column number, pg_get_indexdef() is only supposed to
print the index key variable or expression for that column. It was mistakenly printing ASC/DESC/NULLS FIRST/NULLS LAST decoration too --- and not only for the target column, but all columns. Someday we should have an option to extract that info (and the opclass decoration as well) for a single index column ... but today is not that day. Per bug #3829 and subsequent discussion.
This commit is contained in:
parent
1b1f7e977b
commit
ef6bac3323
@ -9,7 +9,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.266 2007/12/01 23:44:44 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.267 2007/12/20 00:23:19 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -769,25 +769,28 @@ pg_get_indexdef_worker(Oid indexrelid, int colno, bool showTblSpc,
|
||||
keycoltype = exprType(indexkey);
|
||||
}
|
||||
|
||||
/* Add the operator class name */
|
||||
/* Provide decoration only in the colno=0 case */
|
||||
if (!colno)
|
||||
{
|
||||
/* Add the operator class name, if not default */
|
||||
get_opclass_name(indclass->values[keyno], keycoltype, &buf);
|
||||
|
||||
/* Add options if relevant */
|
||||
if (amrec->amcanorder)
|
||||
{
|
||||
/* if it supports sort ordering, report DESC and NULLS opts */
|
||||
if (opt & INDOPTION_DESC)
|
||||
/* Add options if relevant */
|
||||
if (amrec->amcanorder)
|
||||
{
|
||||
appendStringInfo(&buf, " DESC");
|
||||
/* NULLS FIRST is the default in this case */
|
||||
if (!(opt & INDOPTION_NULLS_FIRST))
|
||||
appendStringInfo(&buf, " NULLS LAST");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (opt & INDOPTION_NULLS_FIRST)
|
||||
appendStringInfo(&buf, " NULLS FIRST");
|
||||
/* if it supports sort ordering, report DESC and NULLS opts */
|
||||
if (opt & INDOPTION_DESC)
|
||||
{
|
||||
appendStringInfo(&buf, " DESC");
|
||||
/* NULLS FIRST is the default in this case */
|
||||
if (!(opt & INDOPTION_NULLS_FIRST))
|
||||
appendStringInfo(&buf, " NULLS LAST");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (opt & INDOPTION_NULLS_FIRST)
|
||||
appendStringInfo(&buf, " NULLS FIRST");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user