Repair find_inheritance_children with no active snapshot
When working on a scan with only a catalog snapshot, we may not have an ActiveSnapshot set. If we were to come across a detached partition, that would cause a crash. Fix by only ignoring detached partitions when there's an active snapshot.
This commit is contained in:
parent
a3027e1e7f
commit
4131f755d5
@ -106,10 +106,13 @@ find_inheritance_children(Oid parentrelId, bool include_detached,
|
|||||||
*
|
*
|
||||||
* The reason for this check is that we want to avoid seeing the
|
* The reason for this check is that we want to avoid seeing the
|
||||||
* partition as alive in RI queries during REPEATABLE READ or
|
* partition as alive in RI queries during REPEATABLE READ or
|
||||||
* SERIALIZABLE transactions.
|
* SERIALIZABLE transactions. (If there's no active snapshot set,
|
||||||
|
* that means we're not running a user query, so it's OK to always
|
||||||
|
* include detached partitions in that case.)
|
||||||
*/
|
*/
|
||||||
if (((Form_pg_inherits) GETSTRUCT(inheritsTuple))->inhdetachpending &&
|
if (((Form_pg_inherits) GETSTRUCT(inheritsTuple))->inhdetachpending &&
|
||||||
!include_detached)
|
!include_detached &&
|
||||||
|
ActiveSnapshotSet())
|
||||||
{
|
{
|
||||||
TransactionId xmin;
|
TransactionId xmin;
|
||||||
Snapshot snap;
|
Snapshot snap;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user