Skip to content

Commit 4876bc6

Browse files
committed
Fixed hang when executing ALTER TABLE tableName DROP FIELD fieldName
1 parent 56c1952 commit 4876bc6

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

src/dsql/DdlNodes.epp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7134,11 +7134,13 @@ bool RelationNode::deleteLocalField(thread_db* tdbb, jrd_tra* transaction,
71347134
}
71357135
};
71367136

7137+
auto* metaTransaction = tdbb->getAttachment()->getMetaTransaction(tdbb);
7138+
71377139
AutoCacheRequest request(tdbb, drq_l_dep_flds, DYN_REQUESTS);
71387140

71397141
// Make sure that column is not referenced in any views.
71407142

7141-
FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
7143+
FOR(REQUEST_HANDLE request TRANSACTION_HANDLE metaTransaction)
71427144
X IN RDB$RELATION_FIELDS CROSS
71437145
Y IN RDB$RELATION_FIELDS CROSS
71447146
Z IN RDB$VIEW_RELATIONS
@@ -7176,7 +7178,7 @@ bool RelationNode::deleteLocalField(thread_db* tdbb, jrd_tra* transaction,
71767178

71777179
request.reset(tdbb, drq_g_rel_constr_nm, DYN_REQUESTS);
71787180

7179-
FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
7181+
FOR(REQUEST_HANDLE request TRANSACTION_HANDLE metaTransaction)
71807182
IDX IN RDB$INDICES CROSS
71817183
IDX_SEG IN RDB$INDEX_SEGMENTS CROSS
71827184
REL_CONST IN RDB$RELATION_CONSTRAINTS
@@ -7217,7 +7219,7 @@ bool RelationNode::deleteLocalField(thread_db* tdbb, jrd_tra* transaction,
72177219

72187220
request.reset(tdbb, drq_e_l_idx, DYN_REQUESTS);
72197221

7220-
FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
7222+
FOR(REQUEST_HANDLE request TRANSACTION_HANDLE metaTransaction)
72217223
IDX IN RDB$INDICES CROSS
72227224
IDX_SEG IN RDB$INDEX_SEGMENTS
72237225
WITH IDX.RDB$SCHEMA_NAME EQ IDX_SEG.RDB$SCHEMA_NAME AND

0 commit comments

Comments
 (0)