"Kevin Grittner" <Kevin.Grittner@wicourts.gov> writes:
> create index t_sname on t (sname(t));
Huh, interesting. The reason the DROP misbehaves is that the index
doesn't have any dependency at all on table "t". Which appears to
be exposing the folly of this bit in find_expr_references_walker:
/*
* A whole-row Var references no specific columns, so adds no new
* dependency.
*/
if (var->varattno == InvalidAttrNumber)
return false;
This is broken at least as far back as 8.1. Surprising no one's noticed
before.
regards, tom lane