8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-24 12:03:02 +01:00

Fixed CORE-1274 (Wrong results when PLAN MERGE is chosen and datatypes of the equality predicate arguments are different) and CORE-1752 (Results of a join with different collations depend on the execution plan).

This commit is contained in:
dimitr 2010-01-14 12:25:13 +00:00
parent fdfeb61a95
commit 2f28556820

View File

@ -3618,6 +3618,15 @@ static bool gen_equi_join(thread_db* tdbb, OptimizerBlk* opt, RiverList& org_riv
jrd_nod* node1 = node->nod_arg[0]; jrd_nod* node1 = node->nod_arg[0];
jrd_nod* node2 = node->nod_arg[1]; jrd_nod* node2 = node->nod_arg[1];
dsc desc1, desc2;
CMP_get_desc(tdbb, csb, node1, &desc1);
CMP_get_desc(tdbb, csb, node2, &desc2);
if (!DSC_EQUIV(&desc1, &desc2, true) || desc1.isBlob() || desc2.isBlob())
{
continue;
}
USHORT number1 = 0; USHORT number1 = 0;
for (River** iter1 = org_rivers.begin(); iter1 < org_rivers.end(); iter1++, number1++) for (River** iter1 = org_rivers.begin(); iter1 < org_rivers.end(); iter1++, number1++)
{ {