8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 15:23:02 +01:00
This commit is contained in:
dimitr 2005-12-12 10:52:30 +00:00
parent 4b4a800320
commit 9c4e81ad19

View File

@ -457,18 +457,27 @@ bool RSE_get_record(thread_db* tdbb, RecordSource* rsb, RSE_GET_MODE mode)
// Skip nodes without streams
while (table_rsb->rsb_type == rsb_boolean ||
table_rsb->rsb_type == rsb_first ||
table_rsb->rsb_type == rsb_skip)
table_rsb->rsb_type == rsb_sort ||
table_rsb->rsb_type == rsb_first ||
table_rsb->rsb_type == rsb_skip)
{
table_rsb = table_rsb->rsb_next;
}
// Raise error if we cannot lock this kind of stream
if (table_rsb->rsb_type != rsb_sequential &&
table_rsb->rsb_type != rsb_indexed &&
table_rsb->rsb_type != rsb_navigate)
{
ERR_post(isc_record_lock_not_supp, 0);
}
record_param* org_rpb = request->req_rpb + table_rsb->rsb_stream;
jrd_rel* relation = org_rpb->rpb_relation;
// Raise error if we cannot lock this kind of stream
if (!relation || relation->rel_view_rse || relation->rel_file) {
ERR_post(isc_random, isc_arg_string, "Unsupported RSE construct for blr_writelock operation", 0);
ERR_post(isc_record_lock_not_supp, 0);
}
RLCK_reserve_relation(tdbb, transaction, relation, true, true);