Robert Haas <robertmhaas@gmail.com> writes:
> On Sat, Nov 13, 2010 at 10:41 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> OK, this is an artifact of the "HOT update" optimization. �Before
>> creating the index, you did updates on the table that would have been
>> executed differently if the index had existed. �When the index does get
>> created, its entries for those updates are incomplete, so the index
>> can't be used in transactions that could in principle see the unmodified
>> rows.
> Is the "in principle" here because there might be an open snapshot
> other than the one under which CREATE INDEX is running, like a cursor?
Well, the test is based on xmin alone, not cmin, so it can't really tell
the difference. It's unclear that it'd be worth trying.
regards, tom lane