1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

MCOL-1734 CS now behaves similar to MDB in case of

NOT IN + correlated subquery if the subquery returns empty set.
CS now returns full outer record set.

gcc 8.2 complains about unused variable in ha_mcs_impl.cc
This commit is contained in:
drrtuy
2020-01-06 21:25:04 +03:00
committed by Roman Nozdrin
parent bf356cdb86
commit 8595fa0226
2 changed files with 5 additions and 2 deletions

View File

@ -2303,7 +2303,7 @@ int ha_mcs_impl_direct_update_delete_rows(bool execute, ha_rows *affected_rows)
*affected_rows = ci->affectedRows; *affected_rows = ci->affectedRows;
} }
return 0; return rc;
} }
int ha_mcs_impl_rnd_init(TABLE* table) int ha_mcs_impl_rnd_init(TABLE* table)

View File

@ -1174,6 +1174,7 @@ void BatchPrimitiveProcessor::executeTupleJoin()
break; break;
} }
if (LIKELY(!typelessJoin[j])) if (LIKELY(!typelessJoin[j]))
{ {
//cout << "not typeless join\n"; //cout << "not typeless join\n";
@ -1186,6 +1187,8 @@ void BatchPrimitiveProcessor::executeTupleJoin()
largeKey = oldRow.getIntField(colIndex); largeKey = oldRow.getIntField(colIndex);
uint bucket = bucketPicker((char *) &largeKey, 8, bpSeed) & ptMask; uint bucket = bucketPicker((char *) &largeKey, 8, bpSeed) & ptMask;
bool joinerIsEmpty = tJoiners[j][bucket]->empty() ? true : false;
found = (tJoiners[j][bucket]->find(largeKey) != tJoiners[j][bucket]->end()); found = (tJoiners[j][bucket]->find(largeKey) != tJoiners[j][bucket]->end());
isNull = oldRow.isNullValue(colIndex); isNull = oldRow.isNullValue(colIndex);
/* These conditions define when the row is NOT in the result set: /* These conditions define when the row is NOT in the result set:
@ -1195,7 +1198,7 @@ void BatchPrimitiveProcessor::executeTupleJoin()
*/ */
if (((!found || isNull) && !(joinTypes[j] & (LARGEOUTER | ANTI))) || if (((!found || isNull) && !(joinTypes[j] & (LARGEOUTER | ANTI))) ||
((joinTypes[j] & ANTI) && ((isNull && (joinTypes[j] & MATCHNULLS)) || (found && !isNull)))) ((joinTypes[j] & ANTI) && !joinerIsEmpty && ((isNull && (joinTypes[j] & MATCHNULLS)) || (found && !isNull))))
{ {
//cout << " - not in the result set\n"; //cout << " - not in the result set\n";
break; break;