diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 826e504..41b7866 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -1444,9 +1444,11 @@ index_drop(Oid indexId, bool concurrent) /* * Now we must wait until no running transaction could be using the - * index for a query. Note we do not need to worry about xacts that - * open the table for reading after this point; they will see the - * index as invalid when they open the relation. + * index for a query. This is done with AccessExclusiveLock to check + * which running transaction has a lock of any kind on the table. + * Note we do not need to worry about xacts that open the table for + * reading after this point; they will see the index as invalid when + * they open the relation. * * Note: the reason we use actual lock acquisition here, rather than * just checking the ProcArray and sleeping, is that deadlock is diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 2155252..c952bc3 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -651,9 +651,10 @@ DefineIndex(IndexStmt *stmt, * for an overview of how this works) * * Now we must wait until no running transaction could have the table open - * with the old list of indexes. Note we do not need to worry about xacts - * that open the table for writing after this point; they will see the new - * index when they open it. + * with the old list of indexes. This is done with ShareLock to check + * which running transaction holds a lock that permits writing the table. + * Note we do not need to worry about xacts that open the table for + * writing after this point; they will see the new index when they open it. * * Note: the reason we use actual lock acquisition here, rather than just * checking the ProcArray and sleeping, is that deadlock is possible if