fluent-plugin-droonga 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (163) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -4
  3. data/benchmark/watch/benchmark-notify.rb +2 -2
  4. data/benchmark/watch/benchmark-scan.rb +3 -0
  5. data/benchmark/watch/fluentd.conf +0 -1
  6. data/fluent-plugin-droonga.gemspec +2 -3
  7. data/lib/droonga/catalog.rb +10 -124
  8. data/lib/droonga/catalog/base.rb +140 -0
  9. data/lib/droonga/catalog/version1.rb +23 -0
  10. data/lib/droonga/catalog_loader.rb +33 -0
  11. data/lib/droonga/collector.rb +2 -71
  12. data/lib/droonga/collector_plugin.rb +2 -34
  13. data/lib/droonga/dispatcher.rb +141 -196
  14. data/lib/droonga/distribution_planner.rb +76 -0
  15. data/lib/droonga/distributor.rb +5 -7
  16. data/lib/droonga/distributor_plugin.rb +23 -15
  17. data/lib/droonga/engine.rb +2 -2
  18. data/lib/droonga/event_loop.rb +46 -0
  19. data/lib/droonga/farm.rb +9 -5
  20. data/lib/droonga/fluent_message_sender.rb +84 -0
  21. data/lib/droonga/forwarder.rb +43 -53
  22. data/lib/droonga/handler.rb +20 -68
  23. data/lib/droonga/handler_message.rb +61 -0
  24. data/lib/droonga/handler_messenger.rb +92 -0
  25. data/lib/droonga/handler_plugin.rb +10 -12
  26. data/lib/droonga/input_adapter.rb +52 -0
  27. data/lib/droonga/{adapter.rb → input_adapter_plugin.rb} +7 -13
  28. data/lib/droonga/input_message.rb +11 -11
  29. data/lib/droonga/logger.rb +4 -3
  30. data/lib/droonga/message_pack_packer.rb +62 -0
  31. data/lib/droonga/message_processing_error.rb +54 -0
  32. data/lib/droonga/message_pusher.rb +60 -0
  33. data/lib/droonga/message_receiver.rb +61 -0
  34. data/lib/droonga/output_adapter.rb +53 -0
  35. data/lib/droonga/{adapter_plugin.rb → output_adapter_plugin.rb} +3 -21
  36. data/lib/droonga/output_message.rb +37 -0
  37. data/lib/droonga/partition.rb +27 -5
  38. data/lib/droonga/pluggable.rb +9 -4
  39. data/lib/droonga/plugin.rb +12 -3
  40. data/lib/droonga/plugin/collector/basic.rb +91 -18
  41. data/lib/droonga/plugin/distributor/crud.rb +9 -9
  42. data/lib/droonga/plugin/distributor/distributed_search_planner.rb +401 -0
  43. data/lib/droonga/plugin/distributor/groonga.rb +5 -5
  44. data/lib/droonga/plugin/distributor/search.rb +4 -246
  45. data/lib/droonga/plugin/distributor/watch.rb +11 -6
  46. data/lib/droonga/plugin/handler/add.rb +69 -7
  47. data/lib/droonga/plugin/handler/groonga.rb +6 -6
  48. data/lib/droonga/plugin/handler/search.rb +5 -3
  49. data/lib/droonga/plugin/handler/watch.rb +19 -13
  50. data/lib/droonga/plugin/{adapter → input_adapter}/groonga.rb +5 -11
  51. data/lib/droonga/plugin/{adapter → input_adapter}/groonga/select.rb +2 -36
  52. data/lib/droonga/plugin/output_adapter/groonga.rb +30 -0
  53. data/lib/droonga/plugin/output_adapter/groonga/select.rb +54 -0
  54. data/lib/droonga/plugin_loader.rb +2 -2
  55. data/lib/droonga/processor.rb +21 -23
  56. data/lib/droonga/replier.rb +40 -0
  57. data/lib/droonga/searcher.rb +298 -174
  58. data/lib/droonga/server.rb +0 -67
  59. data/lib/droonga/session.rb +85 -0
  60. data/lib/droonga/test.rb +21 -0
  61. data/lib/droonga/test/stub_distributor.rb +31 -0
  62. data/lib/droonga/test/stub_handler.rb +37 -0
  63. data/lib/droonga/test/stub_handler_message.rb +35 -0
  64. data/lib/droonga/test/stub_handler_messenger.rb +34 -0
  65. data/lib/droonga/time_formatter.rb +37 -0
  66. data/lib/droonga/watcher.rb +1 -0
  67. data/lib/droonga/worker.rb +16 -19
  68. data/lib/fluent/plugin/out_droonga.rb +9 -9
  69. data/lib/groonga_command_converter.rb +5 -5
  70. data/sample/cluster/catalog.json +1 -1
  71. data/test/command/config/default/catalog.json +19 -1
  72. data/test/command/fixture/event.jsons +41 -0
  73. data/test/command/fixture/user-table.jsons +9 -0
  74. data/test/command/run-test.rb +2 -2
  75. data/test/command/suite/add/error/invalid-integer.expected +20 -0
  76. data/test/command/suite/add/error/invalid-integer.test +12 -0
  77. data/test/command/suite/add/error/invalid-time.expected +20 -0
  78. data/test/command/suite/add/error/invalid-time.test +12 -0
  79. data/test/command/suite/add/error/missing-key.expected +13 -0
  80. data/test/command/suite/add/error/missing-key.test +16 -0
  81. data/test/command/suite/add/error/missing-table.expected +13 -0
  82. data/test/command/suite/add/error/missing-table.test +16 -0
  83. data/test/command/suite/add/error/unknown-column.expected +20 -0
  84. data/test/command/suite/add/error/unknown-column.test +12 -0
  85. data/test/command/suite/add/error/unknown-table.expected +13 -0
  86. data/test/command/suite/add/error/unknown-table.test +17 -0
  87. data/test/command/suite/add/minimum.expected +1 -3
  88. data/test/command/suite/add/with-values.expected +1 -3
  89. data/test/command/suite/add/without-key.expected +1 -3
  90. data/test/command/suite/message/error/missing-dataset.expected +13 -0
  91. data/test/command/suite/message/error/missing-dataset.test +5 -0
  92. data/test/command/suite/message/error/unknown-command.expected +13 -0
  93. data/test/command/suite/message/error/unknown-command.test +6 -0
  94. data/test/command/suite/message/error/unknown-dataset.expected +13 -0
  95. data/test/command/suite/message/error/unknown-dataset.test +6 -0
  96. data/test/command/suite/search/{array-attribute-label.expected → attributes/array.expected} +0 -0
  97. data/test/command/suite/search/{array-attribute-label.test → attributes/array.test} +0 -0
  98. data/test/command/suite/search/{hash-attribute-label.expected → attributes/hash.expected} +0 -0
  99. data/test/command/suite/search/{hash-attribute-label.test → attributes/hash.test} +0 -0
  100. data/test/command/suite/search/{condition-nested.expected → condition/nested.expected} +0 -0
  101. data/test/command/suite/search/{condition-nested.test → condition/nested.test} +0 -0
  102. data/test/command/suite/search/{condition-query.expected → condition/query.expected} +0 -0
  103. data/test/command/suite/search/{condition-query.test → condition/query.test} +0 -0
  104. data/test/command/suite/search/{condition-script.expected → condition/script.expected} +0 -0
  105. data/test/command/suite/search/{condition-script.test → condition/script.test} +0 -0
  106. data/test/command/suite/search/error/cyclic-source.expected +18 -0
  107. data/test/command/suite/search/error/cyclic-source.test +12 -0
  108. data/test/command/suite/search/error/deeply-cyclic-source.expected +21 -0
  109. data/test/command/suite/search/error/deeply-cyclic-source.test +15 -0
  110. data/test/command/suite/search/error/missing-source-parameter.expected +17 -0
  111. data/test/command/suite/search/error/missing-source-parameter.test +11 -0
  112. data/test/command/suite/search/error/unknown-source.expected +18 -0
  113. data/test/command/suite/search/error/unknown-source.test +12 -0
  114. data/test/command/suite/search/{minimum.expected → group/count.expected} +2 -1
  115. data/test/command/suite/search/{minimum.test → group/count.test} +5 -3
  116. data/test/command/suite/search/group/limit.expected +19 -0
  117. data/test/command/suite/search/group/limit.test +20 -0
  118. data/test/command/suite/search/group/string.expected +36 -0
  119. data/test/command/suite/search/group/string.test +44 -0
  120. data/test/command/suite/search/{chained-queries.expected → multiple/chained.expected} +0 -0
  121. data/test/command/suite/search/{chained-queries.test → multiple/chained.test} +0 -0
  122. data/test/command/suite/search/{multiple-queries.expected → multiple/parallel.expected} +0 -0
  123. data/test/command/suite/search/{multiple-queries.test → multiple/parallel.test} +0 -0
  124. data/test/command/suite/search/{output-range.expected → range/only-output.expected} +0 -0
  125. data/test/command/suite/search/{output-range.test → range/only-output.test} +0 -0
  126. data/test/command/suite/search/{sort-range.expected → range/only-sort.expected} +0 -0
  127. data/test/command/suite/search/{sort-range.test → range/only-sort.test} +0 -0
  128. data/test/command/suite/search/{sort-and-output-range.expected → range/sort-and-output.expected} +0 -0
  129. data/test/command/suite/search/{sort-and-output-range.test → range/sort-and-output.test} +0 -0
  130. data/test/command/suite/search/range/too-large-output-offset.expected +16 -0
  131. data/test/command/suite/search/range/too-large-output-offset.test +25 -0
  132. data/test/command/suite/search/range/too-large-sort-offset.expected +16 -0
  133. data/test/command/suite/search/range/too-large-sort-offset.test +28 -0
  134. data/test/command/suite/search/response/records/value/time.expected +24 -0
  135. data/test/command/suite/search/response/records/value/time.test +24 -0
  136. data/test/command/suite/search/sort/default-offset-limit.expected +43 -0
  137. data/test/command/suite/search/sort/default-offset-limit.test +26 -0
  138. data/test/command/suite/search/{sort-with-invisible-column.expected → sort/invisible-column.expected} +0 -0
  139. data/test/command/suite/search/{sort-with-invisible-column.test → sort/invisible-column.test} +0 -0
  140. data/test/command/suite/watch/subscribe.expected +12 -0
  141. data/test/command/suite/watch/subscribe.test +9 -0
  142. data/test/command/suite/watch/unsubscribe.expected +12 -0
  143. data/test/command/suite/watch/unsubscribe.test +9 -0
  144. data/test/unit/{test_catalog.rb → catalog/test_version1.rb} +12 -4
  145. data/test/unit/fixtures/{catalog.json → catalog/version1.json} +0 -0
  146. data/test/unit/helper.rb +2 -0
  147. data/test/unit/plugin/collector/test_basic.rb +289 -33
  148. data/test/unit/plugin/distributor/test_search.rb +176 -861
  149. data/test/unit/plugin/distributor/test_search_planner.rb +1102 -0
  150. data/test/unit/plugin/handler/groonga/test_column_create.rb +17 -13
  151. data/test/unit/plugin/handler/groonga/test_table_create.rb +10 -10
  152. data/test/unit/plugin/handler/test_add.rb +74 -11
  153. data/test/unit/plugin/handler/test_groonga.rb +15 -1
  154. data/test/unit/plugin/handler/test_search.rb +33 -17
  155. data/test/unit/plugin/handler/test_watch.rb +43 -27
  156. data/test/unit/run-test.rb +2 -0
  157. data/test/unit/test_message_pack_packer.rb +51 -0
  158. data/test/unit/test_time_formatter.rb +29 -0
  159. metadata +208 -110
  160. data/lib/droonga/job_queue.rb +0 -87
  161. data/lib/droonga/job_queue_schema.rb +0 -65
  162. data/test/unit/test_adapter.rb +0 -51
  163. data/test/unit/test_job_queue_schema.rb +0 -45
@@ -52,4 +52,6 @@ $LOAD_PATH.unshift(test_dir)
52
52
 
53
53
  require "helper"
54
54
 
55
+ ARGV.unshift("--max-diff-target-string-size=10000")
56
+
55
57
  exit Test::Unit::AutoRunner.run(true, test_dir)
@@ -0,0 +1,51 @@
1
+ # Copyright (C) 2013 Droonga Project
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License version 2.1 as published by the Free Software Foundation.
6
+ #
7
+ # This library is distributed in the hope that it will be useful,
8
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
9
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
+ # Lesser General Public License for more details.
11
+ #
12
+ # You should have received a copy of the GNU Lesser General Public
13
+ # License along with this library; if not, write to the Free Software
14
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15
+
16
+ require "droonga/message_pack_packer"
17
+
18
+ class MessagePackPackerTest < Test::Unit::TestCase
19
+ def test_integer
20
+ assert_equal(29, unpack(pack(29)))
21
+ end
22
+
23
+ def test_string
24
+ assert_equal("Droonga", unpack(pack("Droonga")))
25
+ end
26
+
27
+ def test_time
28
+ w3c_dtf_time = "2013-11-29T08:00:00.000000Z"
29
+ time = Time.parse(w3c_dtf_time)
30
+ assert_equal(w3c_dtf_time, unpack(pack(time)))
31
+ end
32
+
33
+ def test_hash
34
+ hash = {"key" => "value"}
35
+ assert_equal(hash, unpack(pack(hash)))
36
+ end
37
+
38
+ def test_array
39
+ array = ["Groonga", "Rroonga", "Droonga"]
40
+ assert_equal(array, unpack(pack(array)))
41
+ end
42
+
43
+ private
44
+ def pack(object)
45
+ Droonga::MessagePackPacker.pack(object)
46
+ end
47
+
48
+ def unpack(msgpack)
49
+ MessagePack.unpack(msgpack)
50
+ end
51
+ end
@@ -0,0 +1,29 @@
1
+ # Copyright (C) 2013 Droonga Project
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License version 2.1 as published by the Free Software Foundation.
6
+ #
7
+ # This library is distributed in the hope that it will be useful,
8
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
9
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
+ # Lesser General Public License for more details.
11
+ #
12
+ # You should have received a copy of the GNU Lesser General Public
13
+ # License along with this library; if not, write to the Free Software
14
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15
+
16
+ require "droonga/time_formatter"
17
+
18
+ class TimeFormatterTest < Test::Unit::TestCase
19
+ def test_fraction
20
+ w3c_dtf_time = "2013-11-29T08:00:00.292929Z"
21
+ time = Time.parse(w3c_dtf_time)
22
+ assert_equal(w3c_dtf_time, format(time))
23
+ end
24
+
25
+ private
26
+ def format(time)
27
+ Droonga::TimeFormatter.format(time)
28
+ end
29
+ end
metadata CHANGED
@@ -1,195 +1,181 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-droonga
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Droonga Project
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-29 00:00:00.000000000 Z
11
+ date: 2013-12-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rroonga
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
- version: 3.0.3
33
+ version: 3.1.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
- version: 3.0.3
40
+ version: 3.1.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: groonga-command-parser
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: fluent-logger
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
52
+ - - '>='
67
53
  - !ruby/object:Gem::Version
68
54
  version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: serverengine
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ">="
59
+ - - '>='
74
60
  - !ruby/object:Gem::Version
75
61
  version: '0'
76
62
  type: :runtime
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - ">="
66
+ - - '>='
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rake
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - ">="
73
+ - - '>='
88
74
  - !ruby/object:Gem::Version
89
75
  version: '0'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - ">="
80
+ - - '>='
95
81
  - !ruby/object:Gem::Version
96
82
  version: '0'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: bundler
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
- - - ">="
87
+ - - '>='
102
88
  - !ruby/object:Gem::Version
103
89
  version: '0'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
- - - ">="
94
+ - - '>='
109
95
  - !ruby/object:Gem::Version
110
96
  version: '0'
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: droonga-client
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
- - - ">="
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
- - - ">="
108
+ - - '>='
123
109
  - !ruby/object:Gem::Version
124
110
  version: '0'
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: test-unit
127
113
  requirement: !ruby/object:Gem::Requirement
128
114
  requirements:
129
- - - ">="
115
+ - - '>='
130
116
  - !ruby/object:Gem::Version
131
117
  version: '0'
132
118
  type: :development
133
119
  prerelease: false
134
120
  version_requirements: !ruby/object:Gem::Requirement
135
121
  requirements:
136
- - - ">="
122
+ - - '>='
137
123
  - !ruby/object:Gem::Version
138
124
  version: '0'
139
125
  - !ruby/object:Gem::Dependency
140
126
  name: test-unit-notify
141
127
  requirement: !ruby/object:Gem::Requirement
142
128
  requirements:
143
- - - ">="
129
+ - - '>='
144
130
  - !ruby/object:Gem::Version
145
131
  version: '0'
146
132
  type: :development
147
133
  prerelease: false
148
134
  version_requirements: !ruby/object:Gem::Requirement
149
135
  requirements:
150
- - - ">="
136
+ - - '>='
151
137
  - !ruby/object:Gem::Version
152
138
  version: '0'
153
139
  - !ruby/object:Gem::Dependency
154
140
  name: test-unit-rr
155
141
  requirement: !ruby/object:Gem::Requirement
156
142
  requirements:
157
- - - ">="
143
+ - - '>='
158
144
  - !ruby/object:Gem::Version
159
145
  version: '0'
160
146
  type: :development
161
147
  prerelease: false
162
148
  version_requirements: !ruby/object:Gem::Requirement
163
149
  requirements:
164
- - - ">="
150
+ - - '>='
165
151
  - !ruby/object:Gem::Version
166
152
  version: '0'
167
153
  - !ruby/object:Gem::Dependency
168
154
  name: packnga
169
155
  requirement: !ruby/object:Gem::Requirement
170
156
  requirements:
171
- - - ">="
157
+ - - '>='
172
158
  - !ruby/object:Gem::Version
173
159
  version: '0'
174
160
  type: :development
175
161
  prerelease: false
176
162
  version_requirements: !ruby/object:Gem::Requirement
177
163
  requirements:
178
- - - ">="
164
+ - - '>='
179
165
  - !ruby/object:Gem::Version
180
166
  version: '0'
181
167
  - !ruby/object:Gem::Dependency
182
168
  name: kramdown
183
169
  requirement: !ruby/object:Gem::Requirement
184
170
  requirements:
185
- - - ">="
171
+ - - '>='
186
172
  - !ruby/object:Gem::Version
187
173
  version: '0'
188
174
  type: :development
189
175
  prerelease: false
190
176
  version_requirements: !ruby/object:Gem::Requirement
191
177
  requirements:
192
- - - ">="
178
+ - - '>='
193
179
  - !ruby/object:Gem::Version
194
180
  version: '0'
195
181
  description: Droonga(distributed Groonga) plugin for Fluent event collector
@@ -200,9 +186,9 @@ executables:
200
186
  extensions: []
201
187
  extra_rdoc_files: []
202
188
  files:
203
- - ".gitignore"
204
- - ".travis.yml"
205
- - ".yardopts"
189
+ - .gitignore
190
+ - .travis.yml
191
+ - .yardopts
206
192
  - Gemfile
207
193
  - LICENSE.txt
208
194
  - README.md
@@ -218,31 +204,43 @@ files:
218
204
  - bin/grn2jsons
219
205
  - doc/text/news.md
220
206
  - fluent-plugin-droonga.gemspec
221
- - lib/droonga/adapter.rb
222
- - lib/droonga/adapter_plugin.rb
223
207
  - lib/droonga/catalog.rb
208
+ - lib/droonga/catalog/base.rb
209
+ - lib/droonga/catalog/version1.rb
210
+ - lib/droonga/catalog_loader.rb
224
211
  - lib/droonga/collector.rb
225
212
  - lib/droonga/collector_plugin.rb
226
213
  - lib/droonga/command_mapper.rb
227
214
  - lib/droonga/dispatcher.rb
215
+ - lib/droonga/distribution_planner.rb
228
216
  - lib/droonga/distributor.rb
229
217
  - lib/droonga/distributor_plugin.rb
230
218
  - lib/droonga/engine.rb
219
+ - lib/droonga/event_loop.rb
231
220
  - lib/droonga/farm.rb
221
+ - lib/droonga/fluent_message_sender.rb
232
222
  - lib/droonga/forwarder.rb
233
223
  - lib/droonga/handler.rb
224
+ - lib/droonga/handler_message.rb
225
+ - lib/droonga/handler_messenger.rb
234
226
  - lib/droonga/handler_plugin.rb
227
+ - lib/droonga/input_adapter.rb
228
+ - lib/droonga/input_adapter_plugin.rb
235
229
  - lib/droonga/input_message.rb
236
- - lib/droonga/job_queue.rb
237
- - lib/droonga/job_queue_schema.rb
238
230
  - lib/droonga/logger.rb
231
+ - lib/droonga/message_pack_packer.rb
232
+ - lib/droonga/message_processing_error.rb
233
+ - lib/droonga/message_pusher.rb
234
+ - lib/droonga/message_receiver.rb
235
+ - lib/droonga/output_adapter.rb
236
+ - lib/droonga/output_adapter_plugin.rb
237
+ - lib/droonga/output_message.rb
239
238
  - lib/droonga/partition.rb
240
239
  - lib/droonga/pluggable.rb
241
240
  - lib/droonga/plugin.rb
242
- - lib/droonga/plugin/adapter/groonga.rb
243
- - lib/droonga/plugin/adapter/groonga/select.rb
244
241
  - lib/droonga/plugin/collector/basic.rb
245
242
  - lib/droonga/plugin/distributor/crud.rb
243
+ - lib/droonga/plugin/distributor/distributed_search_planner.rb
246
244
  - lib/droonga/plugin/distributor/groonga.rb
247
245
  - lib/droonga/plugin/distributor/search.rb
248
246
  - lib/droonga/plugin/distributor/watch.rb
@@ -253,13 +251,25 @@ files:
253
251
  - lib/droonga/plugin/handler/groonga/table_create.rb
254
252
  - lib/droonga/plugin/handler/search.rb
255
253
  - lib/droonga/plugin/handler/watch.rb
254
+ - lib/droonga/plugin/input_adapter/groonga.rb
255
+ - lib/droonga/plugin/input_adapter/groonga/select.rb
256
+ - lib/droonga/plugin/output_adapter/groonga.rb
257
+ - lib/droonga/plugin/output_adapter/groonga/select.rb
256
258
  - lib/droonga/plugin_loader.rb
257
259
  - lib/droonga/plugin_registerable.rb
258
260
  - lib/droonga/plugin_repository.rb
259
261
  - lib/droonga/processor.rb
262
+ - lib/droonga/replier.rb
260
263
  - lib/droonga/searcher.rb
261
264
  - lib/droonga/server.rb
265
+ - lib/droonga/session.rb
262
266
  - lib/droonga/sweeper.rb
267
+ - lib/droonga/test.rb
268
+ - lib/droonga/test/stub_distributor.rb
269
+ - lib/droonga/test/stub_handler.rb
270
+ - lib/droonga/test/stub_handler_message.rb
271
+ - lib/droonga/test/stub_handler_messenger.rb
272
+ - lib/droonga/time_formatter.rb
263
273
  - lib/droonga/watch_schema.rb
264
274
  - lib/droonga/watcher.rb
265
275
  - lib/droonga/worker.rb
@@ -271,9 +281,22 @@ files:
271
281
  - test/command/config/default/catalog.json
272
282
  - test/command/config/default/fluentd.conf
273
283
  - test/command/fixture/documents.jsons
284
+ - test/command/fixture/event.jsons
274
285
  - test/command/fixture/user-table-array.jsons
275
286
  - test/command/fixture/user-table.jsons
276
287
  - test/command/run-test.rb
288
+ - test/command/suite/add/error/invalid-integer.expected
289
+ - test/command/suite/add/error/invalid-integer.test
290
+ - test/command/suite/add/error/invalid-time.expected
291
+ - test/command/suite/add/error/invalid-time.test
292
+ - test/command/suite/add/error/missing-key.expected
293
+ - test/command/suite/add/error/missing-key.test
294
+ - test/command/suite/add/error/missing-table.expected
295
+ - test/command/suite/add/error/missing-table.test
296
+ - test/command/suite/add/error/unknown-column.expected
297
+ - test/command/suite/add/error/unknown-column.test
298
+ - test/command/suite/add/error/unknown-table.expected
299
+ - test/command/suite/add/error/unknown-table.test
277
300
  - test/command/suite/add/minimum.expected
278
301
  - test/command/suite/add/minimum.test
279
302
  - test/command/suite/add/with-values.expected
@@ -290,36 +313,67 @@ files:
290
313
  - test/command/suite/groonga/table_create/array.test
291
314
  - test/command/suite/groonga/table_create/hash.expected
292
315
  - test/command/suite/groonga/table_create/hash.test
293
- - test/command/suite/search/array-attribute-label.expected
294
- - test/command/suite/search/array-attribute-label.test
295
- - test/command/suite/search/chained-queries.expected
296
- - test/command/suite/search/chained-queries.test
316
+ - test/command/suite/message/error/missing-dataset.expected
317
+ - test/command/suite/message/error/missing-dataset.test
318
+ - test/command/suite/message/error/unknown-command.expected
319
+ - test/command/suite/message/error/unknown-command.test
320
+ - test/command/suite/message/error/unknown-dataset.expected
321
+ - test/command/suite/message/error/unknown-dataset.test
322
+ - test/command/suite/search/attributes/array.expected
323
+ - test/command/suite/search/attributes/array.test
324
+ - test/command/suite/search/attributes/hash.expected
325
+ - test/command/suite/search/attributes/hash.test
297
326
  - test/command/suite/search/complex.expected
298
327
  - test/command/suite/search/complex.test
299
- - test/command/suite/search/condition-nested.expected
300
- - test/command/suite/search/condition-nested.test
301
- - test/command/suite/search/condition-query.expected
302
- - test/command/suite/search/condition-query.test
303
- - test/command/suite/search/condition-script.expected
304
- - test/command/suite/search/condition-script.test
305
- - test/command/suite/search/hash-attribute-label.expected
306
- - test/command/suite/search/hash-attribute-label.test
307
- - test/command/suite/search/minimum.expected
308
- - test/command/suite/search/minimum.test
309
- - test/command/suite/search/multiple-queries.expected
310
- - test/command/suite/search/multiple-queries.test
311
- - test/command/suite/search/output-range.expected
312
- - test/command/suite/search/output-range.test
328
+ - test/command/suite/search/condition/nested.expected
329
+ - test/command/suite/search/condition/nested.test
330
+ - test/command/suite/search/condition/query.expected
331
+ - test/command/suite/search/condition/query.test
332
+ - test/command/suite/search/condition/script.expected
333
+ - test/command/suite/search/condition/script.test
334
+ - test/command/suite/search/error/cyclic-source.expected
335
+ - test/command/suite/search/error/cyclic-source.test
336
+ - test/command/suite/search/error/deeply-cyclic-source.expected
337
+ - test/command/suite/search/error/deeply-cyclic-source.test
338
+ - test/command/suite/search/error/missing-source-parameter.expected
339
+ - test/command/suite/search/error/missing-source-parameter.test
340
+ - test/command/suite/search/error/unknown-source.expected
341
+ - test/command/suite/search/error/unknown-source.test
342
+ - test/command/suite/search/group/count.expected
343
+ - test/command/suite/search/group/count.test
344
+ - test/command/suite/search/group/limit.expected
345
+ - test/command/suite/search/group/limit.test
346
+ - test/command/suite/search/group/string.expected
347
+ - test/command/suite/search/group/string.test
348
+ - test/command/suite/search/multiple/chained.expected
349
+ - test/command/suite/search/multiple/chained.test
350
+ - test/command/suite/search/multiple/parallel.expected
351
+ - test/command/suite/search/multiple/parallel.test
352
+ - test/command/suite/search/range/only-output.expected
353
+ - test/command/suite/search/range/only-output.test
354
+ - test/command/suite/search/range/only-sort.expected
355
+ - test/command/suite/search/range/only-sort.test
356
+ - test/command/suite/search/range/sort-and-output.expected
357
+ - test/command/suite/search/range/sort-and-output.test
358
+ - test/command/suite/search/range/too-large-output-offset.expected
359
+ - test/command/suite/search/range/too-large-output-offset.test
360
+ - test/command/suite/search/range/too-large-sort-offset.expected
361
+ - test/command/suite/search/range/too-large-sort-offset.test
362
+ - test/command/suite/search/response/records/value/time.expected
363
+ - test/command/suite/search/response/records/value/time.test
313
364
  - test/command/suite/search/simple.expected
314
365
  - test/command/suite/search/simple.test
315
- - test/command/suite/search/sort-and-output-range.expected
316
- - test/command/suite/search/sort-and-output-range.test
317
- - test/command/suite/search/sort-range.expected
318
- - test/command/suite/search/sort-range.test
319
- - test/command/suite/search/sort-with-invisible-column.expected
320
- - test/command/suite/search/sort-with-invisible-column.test
366
+ - test/command/suite/search/sort/default-offset-limit.expected
367
+ - test/command/suite/search/sort/default-offset-limit.test
368
+ - test/command/suite/search/sort/invisible-column.expected
369
+ - test/command/suite/search/sort/invisible-column.test
370
+ - test/command/suite/watch/subscribe.expected
371
+ - test/command/suite/watch/subscribe.test
372
+ - test/command/suite/watch/unsubscribe.expected
373
+ - test/command/suite/watch/unsubscribe.test
374
+ - test/unit/catalog/test_version1.rb
321
375
  - test/unit/fixtures/array.grn
322
- - test/unit/fixtures/catalog.json
376
+ - test/unit/fixtures/catalog/version1.json
323
377
  - test/unit/fixtures/document.grn
324
378
  - test/unit/fixtures/reference/array.grn
325
379
  - test/unit/fixtures/reference/hash.grn
@@ -332,6 +386,7 @@ files:
332
386
  - test/unit/plugin/adapter/groonga/test_select.rb
333
387
  - test/unit/plugin/collector/test_basic.rb
334
388
  - test/unit/plugin/distributor/test_search.rb
389
+ - test/unit/plugin/distributor/test_search_planner.rb
335
390
  - test/unit/plugin/handler/groonga/test_column_create.rb
336
391
  - test/unit/plugin/handler/groonga/test_table_create.rb
337
392
  - test/unit/plugin/handler/test_add.rb
@@ -339,15 +394,14 @@ files:
339
394
  - test/unit/plugin/handler/test_search.rb
340
395
  - test/unit/plugin/handler/test_watch.rb
341
396
  - test/unit/run-test.rb
342
- - test/unit/test_adapter.rb
343
- - test/unit/test_catalog.rb
344
397
  - test/unit/test_command_mapper.rb
345
398
  - test/unit/test_groonga_command_converter.rb
346
- - test/unit/test_job_queue_schema.rb
399
+ - test/unit/test_message_pack_packer.rb
347
400
  - test/unit/test_output.rb
348
401
  - test/unit/test_plugin.rb
349
402
  - test/unit/test_plugin_repository.rb
350
403
  - test/unit/test_sweeper.rb
404
+ - test/unit/test_time_formatter.rb
351
405
  - test/unit/test_watch_schema.rb
352
406
  - test/unit/test_watcher.rb
353
407
  homepage: https://github.com/droonga/fluent-plugin-droonga
@@ -359,17 +413,17 @@ require_paths:
359
413
  - lib
360
414
  required_ruby_version: !ruby/object:Gem::Requirement
361
415
  requirements:
362
- - - ">="
416
+ - - '>='
363
417
  - !ruby/object:Gem::Version
364
418
  version: '0'
365
419
  required_rubygems_version: !ruby/object:Gem::Requirement
366
420
  requirements:
367
- - - ">="
421
+ - - '>='
368
422
  - !ruby/object:Gem::Version
369
423
  version: '0'
370
424
  requirements: []
371
425
  rubyforge_project:
372
- rubygems_version: 2.2.0
426
+ rubygems_version: 2.0.14
373
427
  signing_key:
374
428
  specification_version: 4
375
429
  summary: Droonga(distributed Groonga) plugin for Fluent event collector
@@ -377,9 +431,22 @@ test_files:
377
431
  - test/command/config/default/catalog.json
378
432
  - test/command/config/default/fluentd.conf
379
433
  - test/command/fixture/documents.jsons
434
+ - test/command/fixture/event.jsons
380
435
  - test/command/fixture/user-table-array.jsons
381
436
  - test/command/fixture/user-table.jsons
382
437
  - test/command/run-test.rb
438
+ - test/command/suite/add/error/invalid-integer.expected
439
+ - test/command/suite/add/error/invalid-integer.test
440
+ - test/command/suite/add/error/invalid-time.expected
441
+ - test/command/suite/add/error/invalid-time.test
442
+ - test/command/suite/add/error/missing-key.expected
443
+ - test/command/suite/add/error/missing-key.test
444
+ - test/command/suite/add/error/missing-table.expected
445
+ - test/command/suite/add/error/missing-table.test
446
+ - test/command/suite/add/error/unknown-column.expected
447
+ - test/command/suite/add/error/unknown-column.test
448
+ - test/command/suite/add/error/unknown-table.expected
449
+ - test/command/suite/add/error/unknown-table.test
383
450
  - test/command/suite/add/minimum.expected
384
451
  - test/command/suite/add/minimum.test
385
452
  - test/command/suite/add/with-values.expected
@@ -396,36 +463,67 @@ test_files:
396
463
  - test/command/suite/groonga/table_create/array.test
397
464
  - test/command/suite/groonga/table_create/hash.expected
398
465
  - test/command/suite/groonga/table_create/hash.test
399
- - test/command/suite/search/array-attribute-label.expected
400
- - test/command/suite/search/array-attribute-label.test
401
- - test/command/suite/search/chained-queries.expected
402
- - test/command/suite/search/chained-queries.test
466
+ - test/command/suite/message/error/missing-dataset.expected
467
+ - test/command/suite/message/error/missing-dataset.test
468
+ - test/command/suite/message/error/unknown-command.expected
469
+ - test/command/suite/message/error/unknown-command.test
470
+ - test/command/suite/message/error/unknown-dataset.expected
471
+ - test/command/suite/message/error/unknown-dataset.test
472
+ - test/command/suite/search/attributes/array.expected
473
+ - test/command/suite/search/attributes/array.test
474
+ - test/command/suite/search/attributes/hash.expected
475
+ - test/command/suite/search/attributes/hash.test
403
476
  - test/command/suite/search/complex.expected
404
477
  - test/command/suite/search/complex.test
405
- - test/command/suite/search/condition-nested.expected
406
- - test/command/suite/search/condition-nested.test
407
- - test/command/suite/search/condition-query.expected
408
- - test/command/suite/search/condition-query.test
409
- - test/command/suite/search/condition-script.expected
410
- - test/command/suite/search/condition-script.test
411
- - test/command/suite/search/hash-attribute-label.expected
412
- - test/command/suite/search/hash-attribute-label.test
413
- - test/command/suite/search/minimum.expected
414
- - test/command/suite/search/minimum.test
415
- - test/command/suite/search/multiple-queries.expected
416
- - test/command/suite/search/multiple-queries.test
417
- - test/command/suite/search/output-range.expected
418
- - test/command/suite/search/output-range.test
478
+ - test/command/suite/search/condition/nested.expected
479
+ - test/command/suite/search/condition/nested.test
480
+ - test/command/suite/search/condition/query.expected
481
+ - test/command/suite/search/condition/query.test
482
+ - test/command/suite/search/condition/script.expected
483
+ - test/command/suite/search/condition/script.test
484
+ - test/command/suite/search/error/cyclic-source.expected
485
+ - test/command/suite/search/error/cyclic-source.test
486
+ - test/command/suite/search/error/deeply-cyclic-source.expected
487
+ - test/command/suite/search/error/deeply-cyclic-source.test
488
+ - test/command/suite/search/error/missing-source-parameter.expected
489
+ - test/command/suite/search/error/missing-source-parameter.test
490
+ - test/command/suite/search/error/unknown-source.expected
491
+ - test/command/suite/search/error/unknown-source.test
492
+ - test/command/suite/search/group/count.expected
493
+ - test/command/suite/search/group/count.test
494
+ - test/command/suite/search/group/limit.expected
495
+ - test/command/suite/search/group/limit.test
496
+ - test/command/suite/search/group/string.expected
497
+ - test/command/suite/search/group/string.test
498
+ - test/command/suite/search/multiple/chained.expected
499
+ - test/command/suite/search/multiple/chained.test
500
+ - test/command/suite/search/multiple/parallel.expected
501
+ - test/command/suite/search/multiple/parallel.test
502
+ - test/command/suite/search/range/only-output.expected
503
+ - test/command/suite/search/range/only-output.test
504
+ - test/command/suite/search/range/only-sort.expected
505
+ - test/command/suite/search/range/only-sort.test
506
+ - test/command/suite/search/range/sort-and-output.expected
507
+ - test/command/suite/search/range/sort-and-output.test
508
+ - test/command/suite/search/range/too-large-output-offset.expected
509
+ - test/command/suite/search/range/too-large-output-offset.test
510
+ - test/command/suite/search/range/too-large-sort-offset.expected
511
+ - test/command/suite/search/range/too-large-sort-offset.test
512
+ - test/command/suite/search/response/records/value/time.expected
513
+ - test/command/suite/search/response/records/value/time.test
419
514
  - test/command/suite/search/simple.expected
420
515
  - test/command/suite/search/simple.test
421
- - test/command/suite/search/sort-and-output-range.expected
422
- - test/command/suite/search/sort-and-output-range.test
423
- - test/command/suite/search/sort-range.expected
424
- - test/command/suite/search/sort-range.test
425
- - test/command/suite/search/sort-with-invisible-column.expected
426
- - test/command/suite/search/sort-with-invisible-column.test
516
+ - test/command/suite/search/sort/default-offset-limit.expected
517
+ - test/command/suite/search/sort/default-offset-limit.test
518
+ - test/command/suite/search/sort/invisible-column.expected
519
+ - test/command/suite/search/sort/invisible-column.test
520
+ - test/command/suite/watch/subscribe.expected
521
+ - test/command/suite/watch/subscribe.test
522
+ - test/command/suite/watch/unsubscribe.expected
523
+ - test/command/suite/watch/unsubscribe.test
524
+ - test/unit/catalog/test_version1.rb
427
525
  - test/unit/fixtures/array.grn
428
- - test/unit/fixtures/catalog.json
526
+ - test/unit/fixtures/catalog/version1.json
429
527
  - test/unit/fixtures/document.grn
430
528
  - test/unit/fixtures/reference/array.grn
431
529
  - test/unit/fixtures/reference/hash.grn
@@ -438,6 +536,7 @@ test_files:
438
536
  - test/unit/plugin/adapter/groonga/test_select.rb
439
537
  - test/unit/plugin/collector/test_basic.rb
440
538
  - test/unit/plugin/distributor/test_search.rb
539
+ - test/unit/plugin/distributor/test_search_planner.rb
441
540
  - test/unit/plugin/handler/groonga/test_column_create.rb
442
541
  - test/unit/plugin/handler/groonga/test_table_create.rb
443
542
  - test/unit/plugin/handler/test_add.rb
@@ -445,15 +544,14 @@ test_files:
445
544
  - test/unit/plugin/handler/test_search.rb
446
545
  - test/unit/plugin/handler/test_watch.rb
447
546
  - test/unit/run-test.rb
448
- - test/unit/test_adapter.rb
449
- - test/unit/test_catalog.rb
450
547
  - test/unit/test_command_mapper.rb
451
548
  - test/unit/test_groonga_command_converter.rb
452
- - test/unit/test_job_queue_schema.rb
549
+ - test/unit/test_message_pack_packer.rb
453
550
  - test/unit/test_output.rb
454
551
  - test/unit/test_plugin.rb
455
552
  - test/unit/test_plugin_repository.rb
456
553
  - test/unit/test_sweeper.rb
554
+ - test/unit/test_time_formatter.rb
457
555
  - test/unit/test_watch_schema.rb
458
556
  - test/unit/test_watcher.rb
459
557
  has_rdoc: