tree: ce1f81cd5e01deb1c92785bb8b996e49b13d9eb4
  1. README.md
  2. test_disable_root_variant_match.groovy
  3. test_search_boundary_cases.groovy
  4. test_search_cache.groovy
  5. test_search_default_field_operator.groovy
  6. test_search_dsl_operators.groovy
  7. test_search_dsl_syntax.groovy
  8. test_search_escape.groovy
  9. test_search_exact_basic.groovy
  10. test_search_exact_lowercase.groovy
  11. test_search_exact_match.groovy
  12. test_search_exact_multi_index.groovy
  13. test_search_field_group_query.groovy
  14. test_search_function.groovy
  15. test_search_function.groovy.backup
  16. test_search_inverted_index.groovy
  17. test_search_inverted_index_profile.groovy
  18. test_search_inverted_is_null_pushdown.groovy
  19. test_search_lucene_mode.groovy
  20. test_search_mow_support.groovy
  21. test_search_multi_analyzer_lucene.groovy
  22. test_search_multi_field.groovy
  23. test_search_not_null_bitmap.groovy
  24. test_search_null_regression.groovy
  25. test_search_null_semantics.groovy
  26. test_search_regexp_lowercase.groovy
  27. test_search_slash_in_term.groovy
  28. test_search_usage_restrictions.groovy
  29. test_search_variant_dual_index_reader.groovy
  30. test_search_variant_subcolumn_analyzer.groovy
  31. test_search_variant_wildcard.groovy
  32. test_search_variant_wildcard_custom_analyzer.groovy
  33. test_search_vs_match_consistency.groovy
regression-test/suites/search/README.md

Search Function NULL Semantics Tests

This directory contains regression tests for search function NULL value handling fixes.

Background

Fixed two major issues:

  1. OR Query Inconsistency: search() vs match functions returned different results
  2. NOT Query Inconsistency: Internal NOT vs external NOT returned different results

Test Files

  • test_search_null_semantics.groovy: Basic NULL semantics tests
  • test_search_vs_match_consistency.groovy: search() vs match() consistency tests
  • test_search_null_regression.groovy: Specific regression tests for original bugs
  • test_search_boundary_cases.groovy: Edge cases and boundary conditions

Expected Behavior

After the fix:

  • OR queries: search('A or B') consistent with A match ... or B match ...
  • NOT queries: search('not A') consistent with not search('A')
  • Proper SQL three-value logic for NULL handling

Running Tests

cd regression-test
./run-regression-test.sh --suite search