Kouhei Sutou 2018-10-29 13:50:04 +0900 (Mon, 29 Oct 2018) Revision: 95f6cc794c097486f92b10c02dea22a37046f99b https://github.com/groonga/groonga-query-log/commit/95f6cc794c097486f92b10c02dea22a37046f99b Merged 0602138: Merge pull request #31 from komainu8/add_new_rewrite_filter Message: Support vector column after reference column case Modified files: lib/groonga-query-log/filter-rewriter.rb test/test-filter-rewriter.rb Modified: lib/groonga-query-log/filter-rewriter.rb (+11 -10) =================================================================== --- lib/groonga-query-log/filter-rewriter.rb 2018-10-29 13:44:28 +0900 (eaabc0d) +++ lib/groonga-query-log/filter-rewriter.rb 2018-10-29 13:50:04 +0900 (e413150) @@ -46,17 +46,18 @@ module GroongaQueryLog end def rewrite_vector_not_equal_empty_string(filter) - filter.gsub(/(?:([a-zA-Z0-9_.]+)\.[a-zA-Z0-9_.]+|([a-zA-Z0-9_.]+)) *!= *(?:''|"")/) do |matched| - if $1 - variable = $1 - else - variable = $2 - end - if @vector_accessors.include?(variable) - "vector_size(#{variable}) > 0" - else - matched + filter.gsub(/([a-zA-Z0-9_.]+) *!= *(?:''|"")/) do |matched| + variable = $1 + path = variable.split(".") + replaced = matched + path.size.downto(1) do |i| + sub_path = path[0, i].join(".") + if @vector_accessors.include?(sub_path) + replaced = "vector_size(#{sub_path}) > 0" + break + end end + replaced end end end Modified: test/test-filter-rewriter.rb (+7 -1) =================================================================== --- test/test-filter-rewriter.rb 2018-10-29 13:44:28 +0900 (4f77fd2) +++ test/test-filter-rewriter.rb 2018-10-29 13:50:04 +0900 (d3885d4) @@ -72,10 +72,16 @@ class FilterRewriterTest < Test::Unit::TestCase ["vector_column"])) end - def test_dot + def test_vector_sub_path assert_equal("vector_size(vector) > 0", rewrite("vector.column != \"\"", ["vector"])) end + + def test_reference_vector + assert_equal("vector_size(reference.vector) > 0", + rewrite("reference.vector != \"\"", + ["reference.vector"])) + end end end -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20181029/7fcd60a8/attachment-0001.html>