mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-24 00:03:03 +01:00
Misc
This commit is contained in:
parent
355d996462
commit
2faab16698
@ -177,4 +177,3 @@ public:
|
||||
} // namespace Firebird
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -4381,14 +4381,15 @@ plan_expression : plan_type '(' plan_item_list ')'
|
||||
{ $$ = make_node (nod_plan_expr, 1, make_list ($3)); }
|
||||
;
|
||||
|
||||
plan_type : JOIN
|
||||
| SORT MERGE
|
||||
| MERGE
|
||||
| HASH
|
||||
| SORT
|
||||
|
|
||||
{ $$ = NULL; }
|
||||
;
|
||||
plan_type
|
||||
:
|
||||
{ $$ = NULL; }
|
||||
| JOIN
|
||||
| SORT MERGE
|
||||
| MERGE
|
||||
| HASH
|
||||
| SORT
|
||||
;
|
||||
|
||||
plan_item_list : plan_item
|
||||
| plan_item ',' plan_item_list
|
||||
@ -5326,10 +5327,10 @@ window_function
|
||||
;
|
||||
|
||||
window_partition_opt
|
||||
: PARTITION BY value_list
|
||||
{ $$ = $3; }
|
||||
|
|
||||
:
|
||||
{ $$ = NULL; }
|
||||
| PARTITION BY value_list
|
||||
{ $$ = $3; }
|
||||
;
|
||||
|
||||
delimiter_opt
|
||||
|
@ -8204,7 +8204,7 @@ static dsql_nod* pass1_rse_impl( DsqlCompilerScratch* dsqlScratch, dsql_nod* inp
|
||||
}
|
||||
rse = parent_rse;
|
||||
|
||||
// Here we shouldn't have any window mapping.
|
||||
// Here we shouldn't have any window mapping. We could have 1 or no map for the aggregate.
|
||||
size_t mapCount = parent_context->ctx_maps.getCount();
|
||||
fb_assert(mapCount <= 1);
|
||||
|
||||
@ -11695,6 +11695,7 @@ void DSQL_pretty(const dsql_nod* node, int column)
|
||||
dsql_map* map = (*nodeMap)->map;
|
||||
if (map != NULL)
|
||||
trace_line("%s map\n", buffer);
|
||||
|
||||
while (map)
|
||||
{
|
||||
trace_line("%s position %d\n", buffer, map->map_position);
|
||||
|
@ -37,7 +37,7 @@ using Firebird::TempFile;
|
||||
|
||||
// Static definitions/initializations
|
||||
|
||||
const size_t MIN_TEMP_BLOCK_SIZE = 64 * 1024;
|
||||
const size_t MIN_TEMP_BLOCK_SIZE = 64 * 1024;
|
||||
|
||||
Firebird::GlobalPtr<Firebird::Mutex> TempSpace::initMutex;
|
||||
Firebird::TempDirectoryList* TempSpace::tempDirs = NULL;
|
||||
|
@ -3656,7 +3656,7 @@ void MET_scan_partners(thread_db* tdbb, jrd_rel* relation)
|
||||
**************************************
|
||||
*
|
||||
* Functional description
|
||||
* Scan of foreign references on other relations' primary keys and
|
||||
* Scan of foreign references on other relations' primary keys and
|
||||
* scan of primary dependencies on relation's primary key.
|
||||
*
|
||||
**************************************/
|
||||
@ -3665,7 +3665,7 @@ void MET_scan_partners(thread_db* tdbb, jrd_rel* relation)
|
||||
Database* dbb = tdbb->getDatabase();
|
||||
Database::CheckoutLockGuard guard(dbb, dbb->dbb_meta_mutex);
|
||||
|
||||
if (relation->rel_flags & REL_check_partners)
|
||||
if (relation->rel_flags & REL_check_partners)
|
||||
{
|
||||
scan_partners(tdbb, relation);
|
||||
}
|
||||
@ -5075,7 +5075,7 @@ void scan_partners(thread_db* tdbb, jrd_rel* relation)
|
||||
**************************************
|
||||
*
|
||||
* Functional description
|
||||
* Scan of foreign references on other relations' primary keys and
|
||||
* Scan of foreign references on other relations' primary keys and
|
||||
* scan of primary dependencies on relation's primary key.
|
||||
*
|
||||
**************************************/
|
||||
|
@ -126,4 +126,3 @@ Firebird::MetaName MET_get_relation_field(Jrd::thread_db*, const Firebird::MetaN
|
||||
void MET_update_partners(Jrd::thread_db*);
|
||||
|
||||
#endif // JRD_MET_PROTO_H
|
||||
|
||||
|
@ -595,7 +595,7 @@ PAG PAG_allocate(thread_db* tdbb, WIN* window)
|
||||
start, init_pages);
|
||||
}
|
||||
|
||||
if (init_pages)
|
||||
if (init_pages)
|
||||
{
|
||||
CCH_MARK(tdbb, &pip_window);
|
||||
pipMarked = true;
|
||||
|
@ -2437,8 +2437,8 @@ void VIO_modify(thread_db* tdbb, record_param* org_rpb, record_param* new_rpb, j
|
||||
}
|
||||
}
|
||||
|
||||
// hvlad: prepare_update() take EX lock on data page. Subsequent call of
|
||||
// IDX_modify_flag_uk_modified() will read database - if relation's partners
|
||||
// hvlad: prepare_update() take EX lock on data page. Subsequent call of
|
||||
// IDX_modify_flag_uk_modified() will read database - if relation's partners
|
||||
// list has not been scanned yet. It could lead to single thread deadlock
|
||||
// if the same page should be fetched for read.
|
||||
// Explicit scan of relation's partners allows to avoid possible deadlock.
|
||||
|
Loading…
Reference in New Issue
Block a user