mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-24 06:03:02 +01:00
Misc.
This commit is contained in:
parent
721a168477
commit
fbba8ad798
@ -642,7 +642,7 @@ void Jrd::ProtectRelations::relLock::releaseLock(thread_db* tdbb, jrd_tra* trans
|
|||||||
if (*lock == m_lock)
|
if (*lock == m_lock)
|
||||||
{
|
{
|
||||||
LCK_release(tdbb, m_lock);
|
LCK_release(tdbb, m_lock);
|
||||||
*lock = 0;
|
*lock = NULL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2669,7 +2669,7 @@ static bool create_expression_index(thread_db* tdbb, SSHORT phase, DeferredWork*
|
|||||||
if (IDX.RDB$INDEX_TYPE == 1)
|
if (IDX.RDB$INDEX_TYPE == 1)
|
||||||
idx.idx_flags |= idx_descending;
|
idx.idx_flags |= idx_descending;
|
||||||
|
|
||||||
CompilerScratch* csb = 0;
|
CompilerScratch* csb = NULL;
|
||||||
// allocate a new pool to contain the expression tree for the expression index
|
// allocate a new pool to contain the expression tree for the expression index
|
||||||
new_pool = attachment->createPool();
|
new_pool = attachment->createPool();
|
||||||
{ // scope
|
{ // scope
|
||||||
@ -3454,7 +3454,7 @@ static bool create_index(thread_db* tdbb, SSHORT phase, DeferredWork* work, jrd_
|
|||||||
Arg::Gds(isc_partner_idx_incompat_type) << Arg::Num(bad_segment + 1));
|
Arg::Gds(isc_partner_idx_incompat_type) << Arg::Num(bad_segment + 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* hvlad: this code was never called but i preserve it for Claudio review and decision
|
/*** hvlad: this code was never called but i preserve it for Claudio review and decision
|
||||||
|
|
||||||
// CVC: Currently, the server doesn't enforce FK creation more than at DYN level.
|
// CVC: Currently, the server doesn't enforce FK creation more than at DYN level.
|
||||||
// If DYN is bypassed, then FK creation succeeds and operation will fail at run-time.
|
// If DYN is bypassed, then FK creation succeeds and operation will fail at run-time.
|
||||||
@ -3474,7 +3474,7 @@ static bool create_index(thread_db* tdbb, SSHORT phase, DeferredWork* work, jrd_
|
|||||||
SCL_check_index(tdbb, partner_relation->rel_name,
|
SCL_check_index(tdbb, partner_relation->rel_name,
|
||||||
idx.idx_id + 1, SCL_references);
|
idx.idx_id + 1, SCL_references);
|
||||||
}
|
}
|
||||||
*/
|
***/
|
||||||
}
|
}
|
||||||
|
|
||||||
protectRelations.lock();
|
protectRelations.lock();
|
||||||
@ -3494,7 +3494,8 @@ static bool create_index(thread_db* tdbb, SSHORT phase, DeferredWork* work, jrd_
|
|||||||
LCK_lock(tdbb, relation->rel_partners_lock, LCK_EX, LCK_WAIT);
|
LCK_lock(tdbb, relation->rel_partners_lock, LCK_EX, LCK_WAIT);
|
||||||
LCK_release(tdbb, relation->rel_partners_lock);
|
LCK_release(tdbb, relation->rel_partners_lock);
|
||||||
|
|
||||||
if (relation != partner_relation) {
|
if (relation != partner_relation)
|
||||||
|
{
|
||||||
partner_relation->rel_flags |= REL_check_partners;
|
partner_relation->rel_flags |= REL_check_partners;
|
||||||
LCK_lock(tdbb, partner_relation->rel_partners_lock, LCK_EX, LCK_WAIT);
|
LCK_lock(tdbb, partner_relation->rel_partners_lock, LCK_EX, LCK_WAIT);
|
||||||
LCK_release(tdbb, partner_relation->rel_partners_lock);
|
LCK_release(tdbb, partner_relation->rel_partners_lock);
|
||||||
|
@ -775,7 +775,7 @@ void Trigger::compile(thread_db* tdbb)
|
|||||||
if (extTrigger)
|
if (extTrigger)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!statement /*&& !compile_in_progress*/)
|
if (!statement)
|
||||||
{
|
{
|
||||||
compile_in_progress = true;
|
compile_in_progress = true;
|
||||||
// Allocate statement memory pool
|
// Allocate statement memory pool
|
||||||
|
@ -1036,6 +1036,7 @@ bool SCL_role_granted(thread_db* tdbb, const UserId& usr, const TEXT* sql_role)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: Remove recursion. See dfw.epp/check_computed_dependencies as a model.
|
||||||
void SCL_find_granted_roles(thread_db* tdbb, const Firebird::MetaName& object, bool isRole,
|
void SCL_find_granted_roles(thread_db* tdbb, const Firebird::MetaName& object, bool isRole,
|
||||||
Firebird::SortedArray<Firebird::MetaName>& grantedRoles, bool defaultOnly)
|
Firebird::SortedArray<Firebird::MetaName>& grantedRoles, bool defaultOnly)
|
||||||
{
|
{
|
||||||
@ -1089,8 +1090,8 @@ bool SCL_admin_role(thread_db* tdbb, const Firebird::SortedArray<Firebird::MetaN
|
|||||||
AutoCacheRequest request(tdbb, irq_is_admin_role, IRQ_REQUESTS);
|
AutoCacheRequest request(tdbb, irq_is_admin_role, IRQ_REQUESTS);
|
||||||
|
|
||||||
FOR(REQUEST_HANDLE request) R IN RDB$ROLES
|
FOR(REQUEST_HANDLE request) R IN RDB$ROLES
|
||||||
WITH R.RDB$ROLE_NAME EQ roles[i].c_str()
|
WITH R.RDB$ROLE_NAME EQ roles[i].c_str() AND
|
||||||
AND R.RDB$SYSTEM_FLAG != 0
|
R.RDB$SYSTEM_FLAG != 0
|
||||||
{
|
{
|
||||||
adminRole = true;
|
adminRole = true;
|
||||||
break;
|
break;
|
||||||
@ -1171,6 +1172,7 @@ void SCL_init(thread_db* tdbb, bool create, const UserId& tempId)
|
|||||||
user->usr_granted_roles.add(user->usr_sql_role_name);
|
user->usr_granted_roles.add(user->usr_sql_role_name);
|
||||||
SCL_find_granted_roles(tdbb, user->usr_sql_role_name, true, user->usr_granted_roles, false);
|
SCL_find_granted_roles(tdbb, user->usr_sql_role_name, true, user->usr_granted_roles, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add all default roles granted to user
|
// Add all default roles granted to user
|
||||||
SCL_find_granted_roles(tdbb, user->usr_user_name, false, user->usr_granted_roles, true);
|
SCL_find_granted_roles(tdbb, user->usr_user_name, false, user->usr_granted_roles, true);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user