mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-24 07:23:03 +01:00
Fix node compare function for derived fields.
Fixes field test-item #1449377.
This commit is contained in:
parent
3bbcd56815
commit
ce6eeb13c7
@ -2871,8 +2871,20 @@ static bool node_match(const dsql_nod* node1, const dsql_nod* node2,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Handle derived fields.
|
// Handle derived fields.
|
||||||
if ((node1->nod_type == nod_derived_field) || (node2->nod_type == nod_derived_field)) {
|
if ((node1->nod_type == nod_derived_field) || (node2->nod_type == nod_derived_field))
|
||||||
if ((node1->nod_type == nod_derived_field) && (node2->nod_type == nod_derived_field)) {
|
{
|
||||||
|
if ((node1->nod_type == nod_derived_field) && (node2->nod_type == nod_derived_field))
|
||||||
|
{
|
||||||
|
const USHORT scope_level1 = (USHORT)(U_IPTR)node1->nod_arg[e_derived_field_scope];
|
||||||
|
const USHORT scope_level2 = (USHORT)(U_IPTR)node2->nod_arg[e_derived_field_scope];
|
||||||
|
if (scope_level1 != scope_level2)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
dsql_str* alias1 = (dsql_str*) node1->nod_arg[e_derived_field_name];
|
||||||
|
dsql_str* alias2 = (dsql_str*) node2->nod_arg[e_derived_field_name];
|
||||||
|
if (strcmp(alias1->str_data, alias2->str_data))
|
||||||
|
return false;
|
||||||
|
|
||||||
return node_match(node1->nod_arg[e_derived_field_value],
|
return node_match(node1->nod_arg[e_derived_field_value],
|
||||||
node2->nod_arg[e_derived_field_value], ignore_map_cast);
|
node2->nod_arg[e_derived_field_value], ignore_map_cast);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user