Yasuhiro Horimoto 2018-10-26 18:15:06 +0900 (Fri, 26 Oct 2018) Revision: 4916b22f05dc690357e4939e43b84b737bcf86ac https://github.com/groonga/groonga-query-log/commit/4916b22f05dc690357e4939e43b84b737bcf86ac Merged 0602138: Merge pull request #31 from komainu8/add_new_rewrite_filter Message: run-regression-test: modify to rewrite to 'vector_size(vector) > 0' Modified files: lib/groonga-query-log/command/run-regression-test.rb lib/groonga-query-log/command/verify-server.rb lib/groonga-query-log/filter-rewriter.rb test/test-filter-rewriter.rb Modified: lib/groonga-query-log/command/run-regression-test.rb (+1 -1) =================================================================== --- lib/groonga-query-log/command/run-regression-test.rb 2018-10-23 17:20:00 +0900 (77349c9) +++ lib/groonga-query-log/command/run-regression-test.rb 2018-10-26 18:15:06 +0900 (d8d56f8) @@ -160,7 +160,7 @@ module GroongaQueryLog @rewrite_vector_equal = boolean end parser.on("--[no-]rewrite-vector-not-equal-empty-string", - "Rewrite 'vector != \"\"' with 'false'", + "Rewrite 'vector != \"\"'and 'vector.column != \"\"' with 'false'", "(#{@rewrite_vector_not_equal_empty_string})") do |boolean| @rewrite_vector_not_equal_empty_string = boolean end Modified: lib/groonga-query-log/command/verify-server.rb (+1 -1) =================================================================== --- lib/groonga-query-log/command/verify-server.rb 2018-10-23 17:20:00 +0900 (7dd379c) +++ lib/groonga-query-log/command/verify-server.rb 2018-10-26 18:15:06 +0900 (e783211) @@ -208,7 +208,7 @@ module GroongaQueryLog end parser.on("--[no-]rewrite-vector-not-equal-empty-string", - "Rewrite 'vector != \"\"' with 'false'", + "Rewrite 'vector != \"\"' and 'vector.column != \"\"' with 'false'", "(#{@options.rewrite_vector_not_equal_empty_string?})") do |boolean| @options.rewrite_vector_not_equal_empty_string = boolean end Modified: lib/groonga-query-log/filter-rewriter.rb (+7 -3) =================================================================== --- lib/groonga-query-log/filter-rewriter.rb 2018-10-23 17:20:00 +0900 (b16de46) +++ lib/groonga-query-log/filter-rewriter.rb 2018-10-26 18:15:06 +0900 (eaabc0d) @@ -46,10 +46,14 @@ module GroongaQueryLog end def rewrite_vector_not_equal_empty_string(filter) - filter.gsub(/([a-zA-Z0-9_.]+) *!= *(?:''|"")/) do |matched| - variable = $1 + 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) - "false" + "vector_size(#{variable}) > 0" else matched end Modified: test/test-filter-rewriter.rb (+8 -2) =================================================================== --- test/test-filter-rewriter.rb 2018-10-23 17:20:00 +0900 (6969dbf) +++ test/test-filter-rewriter.rb 2018-10-26 18:15:06 +0900 (4f77fd2) @@ -61,15 +61,21 @@ class FilterRewriterTest < Test::Unit::TestCase end def test_parenthesis - assert_equal("((false))", + assert_equal("((vector_size(vector) > 0))", rewrite("((vector != \"\"))", ["vector"])) end def test_under_score - assert_equal("false", + assert_equal("vector_size(vector_column) > 0", rewrite("vector_column != \"\"", ["vector_column"])) end + + def test_dot + assert_equal("vector_size(vector) > 0", + rewrite("vector.column != \"\"", + ["vector"])) + end end end -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20181026/738222b9/attachment-0001.html>