Before this patch, some nil conditions failed with internal filter library build error. This patch fixes this internal error, as well as normalize filters to behave similar to core indexes.
The logic in core Tarantool select is as follows. nil condition in index select is an absence of condition, thus all data is returned disregarding the condition (condition may affect the order). box.NULL condition is a condition for the null value -- in case of EQ, only records with null index value are returned, in case of GT, all non-null values are returned since nulls are in the beginning of an index and so on. nils and box.NULLs in tuple are both satisfy box.NULL equity.
After this patch, nil filter condition is treated as no condition. This is a breaking change since conditions for '>' and '<' operator with nil operand had resulted with empty response before this patch. But since it was inconsistent with scanning index conditions and wasn't intentional, we change it here.
Before this patch, some nil conditions failed with internal filter library build error. This patch fixes this internal error, as well as normalize filters to behave similar to core indexes.
The logic in core Tarantool select is as follows.
nil
condition in index select is an absence of condition, thus all data is returned disregarding the condition (condition may affect the order).box.NULL
condition is a condition for the null value -- in case of EQ, only records with null index value are returned, in case of GT, all non-null values are returned since nulls are in the beginning of an index and so on.nil
s andbox.NULL
s in tuple are both satisfybox.NULL
equity.After this patch,
nil
filter condition is treated as no condition. This is a breaking change since conditions for'>'
and'<'
operator withnil
operand had resulted with empty response before this patch. But since it was inconsistent with scanning index conditions and wasn't intentional, we change it here.Closes #422