Description:
|
The logic in InLogicOperatorNode.mutateRowValueConstructorSyntaxInInListSyntax is only correct for IN statements but is applied to NOT IN statements as well.
For an example query of: where (col1, col2) not in ( ('val1', 'val2'), ('val3', 'val4') )
The current code translates this into: where (col1 = 'val1' and col2 = 'val2') or (col1 = 'val3' and val2 = 'val4')
The correct translation is: where (col1 <> 'val1'
and
or
col2 <> 'val2') and (col1 <> 'val3'
and
or
val2 <> 'val4')
|