Merged PRs
dolt
go-mysql-server
- 3302: Wrap nullable hoisted filter in IsTrue
fixes #10070
Filters that evaluate to null in anEXISTSorINsubquery context should be treated the same as false. When hoisted out of the subquery, nullable filters need to be wrapped in anIsTrueexpression to ensure that they are still treated the same as false when they evaluate to null.
Not doing so was causing a bug where rows were being dropped fromNOT EXISTSif the filter evaluated to null. Since the filter expression was evaluated to null, theNOTexpression wrapping it would evaluate to null as well. This caused the filter iterator to reject the row because it did not evaluate to true. Wrapping the filter expression withIsTrueensures that nulls are then evaluated to false, which will then evaluate to true withNOT. - 3300: Move
hoistOutOfScopeFiltersrule toDefaultRules
fixes #10064
hoistOutOfScopeFilterswas not running as part offinalizeUnions, causing us to not correctly analyze queries that were parts of unions - 3297: #10050: Fix JSON conversion for
doltwhen usingTextStorage
Fix #10050- Extended
JsonType.Convertto unwrapsql.StringWrappervalues before decoding. - Add
convertJSONValueto handlestringand[]bytelike inputs.
- Extended
- 3296: use type switch instead of
Fprintffor grouping key
FPrintfis slow; it's quicker to usestrconvforints/floats +hash.WriteStringandSprintf+hash.WriteStringfor all other types.
benchmarks: #10054 (comment)