On Thu, Feb 16, 2017 at 8:05 AM, Alexander Korotkov <a.korot...@postgrespro.ru> wrote: > My idea is that we need more general redesign of specifying ordering which > index can produce. Ideally, we should replace amcanorder, amcanbackward and > amcanorderbyop with single callback. Such callback should take a list of > pathkeys and return number of leading pathkeys index could satisfy (with > corresponding information for index scan). I'm not sure that other hackers > would agree with such design, but I'm very convinced that we need something > of this level of extendability. Otherwise we would have to hack our planner > <-> index_access_method interface each time we decide to cover another index > produced ordering.
Yeah. I'm not sure if that's exactly the right idea. But it seems like we need something. >> info->amcanorderbyop = (void (*)()) amroutine->amcanorderbyop; > > It's not necessary to use cast here. For instance, we don't use cast for > amcostestimate. In fact, it's bad to use the cast here, because if in future the signature of one of amroutine->amcanorderbyop is changed and info->amcanorderbyop is not changed to match, then the cast will prevent a compiler warning, but at runtime you may crash. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers