rroonga 3.0.2-x86-mingw32 → 3.0.4-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (375) hide show
  1. data/doc/text/news.textile +30 -1
  2. data/ext/groonga/extconf.rb +49 -26
  3. data/ext/groonga/rb-grn-array.c +56 -1
  4. data/ext/groonga/rb-grn-column.c +1 -1
  5. data/ext/groonga/rb-grn-double-array-trie.c +1 -1
  6. data/ext/groonga/rb-grn-exception.c +3 -3
  7. data/ext/groonga/rb-grn-expression.c +14 -9
  8. data/ext/groonga/rb-grn-index-column.c +1 -1
  9. data/ext/groonga/rb-grn-operator.c +10 -3
  10. data/ext/groonga/rb-grn-patricia-trie.c +1 -1
  11. data/ext/groonga/rb-grn-table.c +71 -25
  12. data/ext/groonga/rb-grn-utils.c +3 -1
  13. data/ext/groonga/rb-grn-variable.c +17 -4
  14. data/ext/groonga/rb-grn.h +2 -1
  15. data/lib/1.9/groonga.so +0 -0
  16. data/lib/2.0/groonga.so +0 -0
  17. data/lib/groonga/record.rb +9 -2
  18. data/lib/groonga/sub-records.rb +62 -0
  19. data/rroonga-build.rb +2 -1
  20. data/rroonga.gemspec +1 -1
  21. data/test/test-array.rb +35 -0
  22. data/test/test-context.rb +2 -1
  23. data/test/test-database.rb +2 -1
  24. data/test/test-expression.rb +14 -4
  25. data/test/test-sub-records.rb +109 -0
  26. data/test/test-table.rb +104 -0
  27. data/vendor/local/bin/groonga-benchmark.exe +0 -0
  28. data/vendor/local/bin/groonga.exe +0 -0
  29. data/vendor/local/bin/libgroonga-0.dll +0 -0
  30. data/vendor/local/bin/libmecab-1.dll +0 -0
  31. data/vendor/local/bin/libmsgpack-3.dll +0 -0
  32. data/vendor/local/bin/libmsgpackc-2.dll +0 -0
  33. data/vendor/local/bin/mecab.exe +0 -0
  34. data/vendor/local/include/groonga/groonga.h +20 -2
  35. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.a +0 -0
  36. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll +0 -0
  37. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll.a +0 -0
  38. data/vendor/local/lib/groonga/plugins/suggest/suggest.a +0 -0
  39. data/vendor/local/lib/groonga/plugins/suggest/suggest.dll +0 -0
  40. data/vendor/local/lib/groonga/plugins/suggest/suggest.dll.a +0 -0
  41. data/vendor/local/lib/groonga/plugins/table/table.a +0 -0
  42. data/vendor/local/lib/groonga/plugins/table/table.dll +0 -0
  43. data/vendor/local/lib/groonga/plugins/table/table.dll.a +0 -0
  44. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.a +0 -0
  45. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll +0 -0
  46. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll.a +0 -0
  47. data/vendor/local/lib/libgroonga.a +0 -0
  48. data/vendor/local/lib/libgroonga.dll.a +0 -0
  49. data/vendor/local/lib/libmecab.a +0 -0
  50. data/vendor/local/lib/libmecab.dll.a +0 -0
  51. data/vendor/local/lib/libmsgpack.a +0 -0
  52. data/vendor/local/lib/libmsgpack.dll.a +0 -0
  53. data/vendor/local/lib/libmsgpackc.a +0 -0
  54. data/vendor/local/lib/libmsgpackc.dll.a +0 -0
  55. data/vendor/local/lib/pkgconfig/groonga.pc +2 -2
  56. data/vendor/local/libexec/mecab/mecab-cost-train.exe +0 -0
  57. data/vendor/local/libexec/mecab/mecab-dict-gen.exe +0 -0
  58. data/vendor/local/libexec/mecab/mecab-dict-index.exe +0 -0
  59. data/vendor/local/libexec/mecab/mecab-system-eval.exe +0 -0
  60. data/vendor/local/libexec/mecab/mecab-test-gen.exe +0 -0
  61. data/vendor/local/share/doc/groonga/en/html/.buildinfo +1 -1
  62. data/vendor/local/share/doc/groonga/en/html/_sources/contribution/development/release.txt +1 -1
  63. data/vendor/local/share/doc/groonga/en/html/_sources/install/centos.txt +3 -3
  64. data/vendor/local/share/doc/groonga/en/html/_sources/install/debian.txt +3 -3
  65. data/vendor/local/share/doc/groonga/en/html/_sources/install/fedora.txt +3 -3
  66. data/vendor/local/share/doc/groonga/en/html/_sources/install/mac_os_x.txt +3 -3
  67. data/vendor/local/share/doc/groonga/en/html/_sources/install/others.txt +3 -3
  68. data/vendor/local/share/doc/groonga/en/html/_sources/install/solaris.txt +3 -3
  69. data/vendor/local/share/doc/groonga/en/html/_sources/install/ubuntu.txt +3 -3
  70. data/vendor/local/share/doc/groonga/en/html/_sources/install/windows.txt +9 -9
  71. data/vendor/local/share/doc/groonga/en/html/_sources/news.txt +43 -0
  72. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/tokenize.txt +2 -2
  73. data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/html_untag.txt +75 -0
  74. data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/query.txt +14 -6
  75. data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/sub_filter.txt +28 -17
  76. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/data.txt +5 -0
  77. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/micro_blog.txt +19 -0
  78. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/network.txt +5 -1
  79. data/vendor/local/share/doc/groonga/en/html/characteristic.html +5 -5
  80. data/vendor/local/share/doc/groonga/en/html/community.html +5 -5
  81. data/vendor/local/share/doc/groonga/en/html/contribution.html +5 -5
  82. data/vendor/local/share/doc/groonga/en/html/contribution/development.html +5 -5
  83. data/vendor/local/share/doc/groonga/en/html/contribution/development/com.html +5 -5
  84. data/vendor/local/share/doc/groonga/en/html/contribution/development/document.html +5 -5
  85. data/vendor/local/share/doc/groonga/en/html/contribution/development/query.html +5 -5
  86. data/vendor/local/share/doc/groonga/en/html/contribution/development/release.html +6 -6
  87. data/vendor/local/share/doc/groonga/en/html/contribution/development/repository.html +5 -5
  88. data/vendor/local/share/doc/groonga/en/html/contribution/development/test.html +5 -5
  89. data/vendor/local/share/doc/groonga/en/html/contribution/documentation.html +5 -5
  90. data/vendor/local/share/doc/groonga/en/html/contribution/documentation/c-api.html +5 -5
  91. data/vendor/local/share/doc/groonga/en/html/contribution/documentation/i18n.html +5 -5
  92. data/vendor/local/share/doc/groonga/en/html/contribution/report.html +5 -5
  93. data/vendor/local/share/doc/groonga/en/html/development.html +5 -5
  94. data/vendor/local/share/doc/groonga/en/html/development/travis-ci.html +5 -5
  95. data/vendor/local/share/doc/groonga/en/html/genindex.html +5 -5
  96. data/vendor/local/share/doc/groonga/en/html/geolocation_search.html +5 -5
  97. data/vendor/local/share/doc/groonga/en/html/index.html +11 -10
  98. data/vendor/local/share/doc/groonga/en/html/install.html +5 -5
  99. data/vendor/local/share/doc/groonga/en/html/install/centos.html +8 -8
  100. data/vendor/local/share/doc/groonga/en/html/install/debian.html +8 -8
  101. data/vendor/local/share/doc/groonga/en/html/install/fedora.html +8 -8
  102. data/vendor/local/share/doc/groonga/en/html/install/mac_os_x.html +8 -8
  103. data/vendor/local/share/doc/groonga/en/html/install/others.html +8 -8
  104. data/vendor/local/share/doc/groonga/en/html/install/solaris.html +8 -8
  105. data/vendor/local/share/doc/groonga/en/html/install/ubuntu.html +8 -8
  106. data/vendor/local/share/doc/groonga/en/html/install/windows.html +14 -14
  107. data/vendor/local/share/doc/groonga/en/html/limitations.html +5 -5
  108. data/vendor/local/share/doc/groonga/en/html/news.html +187 -137
  109. data/vendor/local/share/doc/groonga/en/html/news/0.x.html +5 -5
  110. data/vendor/local/share/doc/groonga/en/html/news/1.0.x.html +5 -5
  111. data/vendor/local/share/doc/groonga/en/html/news/1.1.x.html +5 -5
  112. data/vendor/local/share/doc/groonga/en/html/news/1.2.x.html +5 -5
  113. data/vendor/local/share/doc/groonga/en/html/news/senna.html +5 -5
  114. data/vendor/local/share/doc/groonga/en/html/objects.inv +0 -0
  115. data/vendor/local/share/doc/groonga/en/html/reference.html +11 -10
  116. data/vendor/local/share/doc/groonga/en/html/reference/api.html +5 -5
  117. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ctx.html +5 -5
  118. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_expr.html +5 -5
  119. data/vendor/local/share/doc/groonga/en/html/reference/cast.html +5 -5
  120. data/vendor/local/share/doc/groonga/en/html/reference/command.html +5 -5
  121. data/vendor/local/share/doc/groonga/en/html/reference/command/command_version.html +5 -5
  122. data/vendor/local/share/doc/groonga/en/html/reference/command/output_format.html +5 -5
  123. data/vendor/local/share/doc/groonga/en/html/reference/command/return_code.html +5 -5
  124. data/vendor/local/share/doc/groonga/en/html/reference/commands/cache_limit.html +5 -5
  125. data/vendor/local/share/doc/groonga/en/html/reference/commands/check.html +5 -5
  126. data/vendor/local/share/doc/groonga/en/html/reference/commands/clearlock.html +5 -5
  127. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_create.html +5 -5
  128. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_list.html +5 -5
  129. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_remove.html +5 -5
  130. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_rename.html +5 -5
  131. data/vendor/local/share/doc/groonga/en/html/reference/commands/define_selector.html +5 -5
  132. data/vendor/local/share/doc/groonga/en/html/reference/commands/defrag.html +5 -5
  133. data/vendor/local/share/doc/groonga/en/html/reference/commands/delete.html +5 -5
  134. data/vendor/local/share/doc/groonga/en/html/reference/commands/dump.html +5 -5
  135. data/vendor/local/share/doc/groonga/en/html/reference/commands/load.html +5 -5
  136. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_level.html +5 -5
  137. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_put.html +5 -5
  138. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_reopen.html +5 -5
  139. data/vendor/local/share/doc/groonga/en/html/reference/commands/normalize.html +16 -6
  140. data/vendor/local/share/doc/groonga/en/html/reference/commands/quit.html +5 -5
  141. data/vendor/local/share/doc/groonga/en/html/reference/commands/register.html +5 -5
  142. data/vendor/local/share/doc/groonga/en/html/reference/commands/select.html +6 -6
  143. data/vendor/local/share/doc/groonga/en/html/reference/commands/shutdown.html +5 -5
  144. data/vendor/local/share/doc/groonga/en/html/reference/commands/status.html +10 -10
  145. data/vendor/local/share/doc/groonga/en/html/reference/commands/suggest.html +5 -5
  146. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_create.html +5 -5
  147. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_list.html +5 -5
  148. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_remove.html +5 -5
  149. data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenize.html +514 -7
  150. data/vendor/local/share/doc/groonga/en/html/reference/commands/truncate.html +5 -5
  151. data/vendor/local/share/doc/groonga/en/html/reference/commands_not_implemented/add.html +5 -5
  152. data/vendor/local/share/doc/groonga/en/html/reference/commands_not_implemented/get.html +5 -5
  153. data/vendor/local/share/doc/groonga/en/html/reference/commands_not_implemented/set.html +5 -5
  154. data/vendor/local/share/doc/groonga/en/html/reference/executables.html +5 -5
  155. data/vendor/local/share/doc/groonga/en/html/reference/executables/grnslap.html +5 -5
  156. data/vendor/local/share/doc/groonga/en/html/reference/executables/grntest.html +6 -6
  157. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-httpd.html +8 -8
  158. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-server-http.html +5 -5
  159. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-create-dataset.html +5 -5
  160. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga.html +5 -5
  161. data/vendor/local/share/doc/groonga/en/html/reference/function.html +11 -10
  162. data/vendor/local/share/doc/groonga/en/html/reference/functions/edit_distance.html +5 -5
  163. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_distance.html +5 -5
  164. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_circle.html +5 -5
  165. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_rectangle.html +10 -10
  166. data/vendor/local/share/doc/groonga/en/html/reference/functions/html_untag.html +231 -0
  167. data/vendor/local/share/doc/groonga/en/html/reference/functions/now.html +26 -26
  168. data/vendor/local/share/doc/groonga/en/html/reference/functions/query.html +55 -49
  169. data/vendor/local/share/doc/groonga/en/html/reference/functions/rand.html +27 -27
  170. data/vendor/local/share/doc/groonga/en/html/reference/functions/snippet_html.html +27 -27
  171. data/vendor/local/share/doc/groonga/en/html/reference/functions/sub_filter.html +53 -44
  172. data/vendor/local/share/doc/groonga/en/html/reference/grn_expr.html +5 -5
  173. data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/query_syntax.html +5 -5
  174. data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/script_syntax.html +5 -5
  175. data/vendor/local/share/doc/groonga/en/html/reference/indexing.html +9 -9
  176. data/vendor/local/share/doc/groonga/en/html/reference/log.html +5 -5
  177. data/vendor/local/share/doc/groonga/en/html/reference/normalizers.html +5 -5
  178. data/vendor/local/share/doc/groonga/en/html/reference/output.html +5 -5
  179. data/vendor/local/share/doc/groonga/en/html/reference/pseudo_column.html +5 -5
  180. data/vendor/local/share/doc/groonga/en/html/reference/query_expanders.html +5 -5
  181. data/vendor/local/share/doc/groonga/en/html/reference/query_expanders/tsv.html +5 -5
  182. data/vendor/local/share/doc/groonga/en/html/reference/tables.html +5 -5
  183. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers.html +5 -5
  184. data/vendor/local/share/doc/groonga/en/html/reference/types.html +5 -5
  185. data/vendor/local/share/doc/groonga/en/html/search.html +5 -5
  186. data/vendor/local/share/doc/groonga/en/html/searchindex.js +1 -1
  187. data/vendor/local/share/doc/groonga/en/html/server.html +5 -5
  188. data/vendor/local/share/doc/groonga/en/html/server/gqtp.html +5 -5
  189. data/vendor/local/share/doc/groonga/en/html/server/http.html +5 -5
  190. data/vendor/local/share/doc/groonga/en/html/server/http/comparison.html +5 -5
  191. data/vendor/local/share/doc/groonga/en/html/server/http/groonga-httpd.html +5 -5
  192. data/vendor/local/share/doc/groonga/en/html/server/http/groonga.html +5 -5
  193. data/vendor/local/share/doc/groonga/en/html/server/package.html +5 -5
  194. data/vendor/local/share/doc/groonga/en/html/spec.html +5 -5
  195. data/vendor/local/share/doc/groonga/en/html/spec/gqtp.html +5 -5
  196. data/vendor/local/share/doc/groonga/en/html/spec/search.html +5 -5
  197. data/vendor/local/share/doc/groonga/en/html/suggest.html +5 -5
  198. data/vendor/local/share/doc/groonga/en/html/suggest/completion.html +5 -5
  199. data/vendor/local/share/doc/groonga/en/html/suggest/correction.html +5 -5
  200. data/vendor/local/share/doc/groonga/en/html/suggest/introduction.html +5 -5
  201. data/vendor/local/share/doc/groonga/en/html/suggest/suggestion.html +5 -5
  202. data/vendor/local/share/doc/groonga/en/html/suggest/tutorial.html +5 -5
  203. data/vendor/local/share/doc/groonga/en/html/troubleshooting.html +5 -5
  204. data/vendor/local/share/doc/groonga/en/html/troubleshooting/different_results_with_the_same_keyword.html +5 -5
  205. data/vendor/local/share/doc/groonga/en/html/tutorial.html +5 -5
  206. data/vendor/local/share/doc/groonga/en/html/tutorial/data.html +10 -5
  207. data/vendor/local/share/doc/groonga/en/html/tutorial/drilldown.html +5 -5
  208. data/vendor/local/share/doc/groonga/en/html/tutorial/index.html +5 -5
  209. data/vendor/local/share/doc/groonga/en/html/tutorial/introduction.html +8 -8
  210. data/vendor/local/share/doc/groonga/en/html/tutorial/lexicon.html +5 -5
  211. data/vendor/local/share/doc/groonga/en/html/tutorial/match_columns.html +5 -5
  212. data/vendor/local/share/doc/groonga/en/html/tutorial/micro_blog.html +29 -11
  213. data/vendor/local/share/doc/groonga/en/html/tutorial/network.html +17 -12
  214. data/vendor/local/share/doc/groonga/en/html/tutorial/patricia_trie.html +5 -5
  215. data/vendor/local/share/doc/groonga/en/html/tutorial/query_expansion.html +5 -5
  216. data/vendor/local/share/doc/groonga/en/html/tutorial/search.html +5 -5
  217. data/vendor/local/share/doc/groonga/ja/html/.buildinfo +1 -1
  218. data/vendor/local/share/doc/groonga/ja/html/_sources/contribution/development/release.txt +1 -1
  219. data/vendor/local/share/doc/groonga/ja/html/_sources/install/centos.txt +3 -3
  220. data/vendor/local/share/doc/groonga/ja/html/_sources/install/debian.txt +3 -3
  221. data/vendor/local/share/doc/groonga/ja/html/_sources/install/fedora.txt +3 -3
  222. data/vendor/local/share/doc/groonga/ja/html/_sources/install/mac_os_x.txt +3 -3
  223. data/vendor/local/share/doc/groonga/ja/html/_sources/install/others.txt +3 -3
  224. data/vendor/local/share/doc/groonga/ja/html/_sources/install/solaris.txt +3 -3
  225. data/vendor/local/share/doc/groonga/ja/html/_sources/install/ubuntu.txt +3 -3
  226. data/vendor/local/share/doc/groonga/ja/html/_sources/install/windows.txt +9 -9
  227. data/vendor/local/share/doc/groonga/ja/html/_sources/news.txt +43 -0
  228. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/tokenize.txt +2 -2
  229. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/html_untag.txt +75 -0
  230. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/query.txt +14 -6
  231. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/sub_filter.txt +28 -17
  232. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/data.txt +5 -0
  233. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/micro_blog.txt +19 -0
  234. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/network.txt +5 -1
  235. data/vendor/local/share/doc/groonga/ja/html/characteristic.html +5 -5
  236. data/vendor/local/share/doc/groonga/ja/html/community.html +5 -5
  237. data/vendor/local/share/doc/groonga/ja/html/contribution.html +11 -8
  238. data/vendor/local/share/doc/groonga/ja/html/contribution/development.html +5 -5
  239. data/vendor/local/share/doc/groonga/ja/html/contribution/development/com.html +5 -5
  240. data/vendor/local/share/doc/groonga/ja/html/contribution/development/document.html +5 -5
  241. data/vendor/local/share/doc/groonga/ja/html/contribution/development/query.html +5 -5
  242. data/vendor/local/share/doc/groonga/ja/html/contribution/development/release.html +6 -6
  243. data/vendor/local/share/doc/groonga/ja/html/contribution/development/repository.html +5 -5
  244. data/vendor/local/share/doc/groonga/ja/html/contribution/development/test.html +5 -5
  245. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation.html +5 -5
  246. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/c-api.html +5 -5
  247. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/i18n.html +25 -15
  248. data/vendor/local/share/doc/groonga/ja/html/contribution/report.html +9 -7
  249. data/vendor/local/share/doc/groonga/ja/html/development.html +5 -5
  250. data/vendor/local/share/doc/groonga/ja/html/development/travis-ci.html +21 -13
  251. data/vendor/local/share/doc/groonga/ja/html/genindex.html +5 -5
  252. data/vendor/local/share/doc/groonga/ja/html/geolocation_search.html +23 -14
  253. data/vendor/local/share/doc/groonga/ja/html/index.html +11 -10
  254. data/vendor/local/share/doc/groonga/ja/html/install.html +5 -5
  255. data/vendor/local/share/doc/groonga/ja/html/install/centos.html +14 -11
  256. data/vendor/local/share/doc/groonga/ja/html/install/debian.html +14 -11
  257. data/vendor/local/share/doc/groonga/ja/html/install/fedora.html +14 -11
  258. data/vendor/local/share/doc/groonga/ja/html/install/mac_os_x.html +8 -8
  259. data/vendor/local/share/doc/groonga/ja/html/install/others.html +38 -23
  260. data/vendor/local/share/doc/groonga/ja/html/install/solaris.html +8 -8
  261. data/vendor/local/share/doc/groonga/ja/html/install/ubuntu.html +14 -11
  262. data/vendor/local/share/doc/groonga/ja/html/install/windows.html +14 -14
  263. data/vendor/local/share/doc/groonga/ja/html/limitations.html +15 -10
  264. data/vendor/local/share/doc/groonga/ja/html/news.html +885 -481
  265. data/vendor/local/share/doc/groonga/ja/html/news/0.x.html +5 -5
  266. data/vendor/local/share/doc/groonga/ja/html/news/1.0.x.html +5 -5
  267. data/vendor/local/share/doc/groonga/ja/html/news/1.1.x.html +5 -5
  268. data/vendor/local/share/doc/groonga/ja/html/news/1.2.x.html +280 -146
  269. data/vendor/local/share/doc/groonga/ja/html/news/senna.html +5 -5
  270. data/vendor/local/share/doc/groonga/ja/html/objects.inv +0 -0
  271. data/vendor/local/share/doc/groonga/ja/html/reference.html +11 -10
  272. data/vendor/local/share/doc/groonga/ja/html/reference/api.html +5 -5
  273. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ctx.html +17 -11
  274. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_expr.html +5 -5
  275. data/vendor/local/share/doc/groonga/ja/html/reference/cast.html +5 -5
  276. data/vendor/local/share/doc/groonga/ja/html/reference/command.html +5 -5
  277. data/vendor/local/share/doc/groonga/ja/html/reference/command/command_version.html +5 -5
  278. data/vendor/local/share/doc/groonga/ja/html/reference/command/output_format.html +5 -5
  279. data/vendor/local/share/doc/groonga/ja/html/reference/command/return_code.html +9 -7
  280. data/vendor/local/share/doc/groonga/ja/html/reference/commands/cache_limit.html +5 -5
  281. data/vendor/local/share/doc/groonga/ja/html/reference/commands/check.html +5 -5
  282. data/vendor/local/share/doc/groonga/ja/html/reference/commands/clearlock.html +5 -5
  283. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_create.html +5 -5
  284. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_list.html +5 -5
  285. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_remove.html +5 -5
  286. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_rename.html +9 -7
  287. data/vendor/local/share/doc/groonga/ja/html/reference/commands/define_selector.html +5 -5
  288. data/vendor/local/share/doc/groonga/ja/html/reference/commands/defrag.html +5 -5
  289. data/vendor/local/share/doc/groonga/ja/html/reference/commands/delete.html +5 -5
  290. data/vendor/local/share/doc/groonga/ja/html/reference/commands/dump.html +5 -5
  291. data/vendor/local/share/doc/groonga/ja/html/reference/commands/load.html +17 -11
  292. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_level.html +5 -5
  293. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_put.html +5 -5
  294. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_reopen.html +5 -5
  295. data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalize.html +20 -8
  296. data/vendor/local/share/doc/groonga/ja/html/reference/commands/quit.html +5 -5
  297. data/vendor/local/share/doc/groonga/ja/html/reference/commands/register.html +5 -5
  298. data/vendor/local/share/doc/groonga/ja/html/reference/commands/select.html +12 -9
  299. data/vendor/local/share/doc/groonga/ja/html/reference/commands/shutdown.html +5 -5
  300. data/vendor/local/share/doc/groonga/ja/html/reference/commands/status.html +10 -10
  301. data/vendor/local/share/doc/groonga/ja/html/reference/commands/suggest.html +33 -19
  302. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_create.html +43 -24
  303. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_list.html +5 -5
  304. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_remove.html +5 -5
  305. data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenize.html +558 -75
  306. data/vendor/local/share/doc/groonga/ja/html/reference/commands/truncate.html +9 -7
  307. data/vendor/local/share/doc/groonga/ja/html/reference/commands_not_implemented/add.html +5 -5
  308. data/vendor/local/share/doc/groonga/ja/html/reference/commands_not_implemented/get.html +5 -5
  309. data/vendor/local/share/doc/groonga/ja/html/reference/commands_not_implemented/set.html +5 -5
  310. data/vendor/local/share/doc/groonga/ja/html/reference/executables.html +5 -5
  311. data/vendor/local/share/doc/groonga/ja/html/reference/executables/grnslap.html +5 -5
  312. data/vendor/local/share/doc/groonga/ja/html/reference/executables/grntest.html +5 -5
  313. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-httpd.html +10 -9
  314. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-server-http.html +5 -5
  315. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-create-dataset.html +5 -5
  316. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga.html +5 -5
  317. data/vendor/local/share/doc/groonga/ja/html/reference/function.html +11 -10
  318. data/vendor/local/share/doc/groonga/ja/html/reference/functions/edit_distance.html +5 -5
  319. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_distance.html +11 -8
  320. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_circle.html +5 -5
  321. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_rectangle.html +10 -10
  322. data/vendor/local/share/doc/groonga/ja/html/reference/functions/html_untag.html +231 -0
  323. data/vendor/local/share/doc/groonga/ja/html/reference/functions/now.html +26 -26
  324. data/vendor/local/share/doc/groonga/ja/html/reference/functions/query.html +55 -50
  325. data/vendor/local/share/doc/groonga/ja/html/reference/functions/rand.html +27 -27
  326. data/vendor/local/share/doc/groonga/ja/html/reference/functions/snippet_html.html +39 -33
  327. data/vendor/local/share/doc/groonga/ja/html/reference/functions/sub_filter.html +53 -44
  328. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr.html +15 -11
  329. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/query_syntax.html +23 -14
  330. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/script_syntax.html +13 -9
  331. data/vendor/local/share/doc/groonga/ja/html/reference/indexing.html +9 -9
  332. data/vendor/local/share/doc/groonga/ja/html/reference/log.html +5 -5
  333. data/vendor/local/share/doc/groonga/ja/html/reference/normalizers.html +5 -5
  334. data/vendor/local/share/doc/groonga/ja/html/reference/output.html +11 -8
  335. data/vendor/local/share/doc/groonga/ja/html/reference/pseudo_column.html +5 -5
  336. data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders.html +5 -5
  337. data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders/tsv.html +15 -10
  338. data/vendor/local/share/doc/groonga/ja/html/reference/tables.html +41 -23
  339. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers.html +5 -5
  340. data/vendor/local/share/doc/groonga/ja/html/reference/types.html +5 -5
  341. data/vendor/local/share/doc/groonga/ja/html/search.html +5 -5
  342. data/vendor/local/share/doc/groonga/ja/html/searchindex.js +1 -1
  343. data/vendor/local/share/doc/groonga/ja/html/server.html +5 -5
  344. data/vendor/local/share/doc/groonga/ja/html/server/gqtp.html +5 -5
  345. data/vendor/local/share/doc/groonga/ja/html/server/http.html +5 -5
  346. data/vendor/local/share/doc/groonga/ja/html/server/http/comparison.html +83 -46
  347. data/vendor/local/share/doc/groonga/ja/html/server/http/groonga-httpd.html +5 -5
  348. data/vendor/local/share/doc/groonga/ja/html/server/http/groonga.html +5 -5
  349. data/vendor/local/share/doc/groonga/ja/html/server/package.html +41 -23
  350. data/vendor/local/share/doc/groonga/ja/html/spec.html +5 -5
  351. data/vendor/local/share/doc/groonga/ja/html/spec/gqtp.html +71 -38
  352. data/vendor/local/share/doc/groonga/ja/html/spec/search.html +5 -5
  353. data/vendor/local/share/doc/groonga/ja/html/suggest.html +5 -5
  354. data/vendor/local/share/doc/groonga/ja/html/suggest/completion.html +55 -30
  355. data/vendor/local/share/doc/groonga/ja/html/suggest/correction.html +33 -19
  356. data/vendor/local/share/doc/groonga/ja/html/suggest/introduction.html +19 -12
  357. data/vendor/local/share/doc/groonga/ja/html/suggest/suggestion.html +27 -16
  358. data/vendor/local/share/doc/groonga/ja/html/suggest/tutorial.html +5 -5
  359. data/vendor/local/share/doc/groonga/ja/html/troubleshooting.html +5 -5
  360. data/vendor/local/share/doc/groonga/ja/html/troubleshooting/different_results_with_the_same_keyword.html +5 -5
  361. data/vendor/local/share/doc/groonga/ja/html/tutorial.html +5 -5
  362. data/vendor/local/share/doc/groonga/ja/html/tutorial/data.html +17 -11
  363. data/vendor/local/share/doc/groonga/ja/html/tutorial/drilldown.html +5 -5
  364. data/vendor/local/share/doc/groonga/ja/html/tutorial/index.html +5 -5
  365. data/vendor/local/share/doc/groonga/ja/html/tutorial/introduction.html +24 -16
  366. data/vendor/local/share/doc/groonga/ja/html/tutorial/lexicon.html +5 -5
  367. data/vendor/local/share/doc/groonga/ja/html/tutorial/match_columns.html +5 -5
  368. data/vendor/local/share/doc/groonga/ja/html/tutorial/micro_blog.html +31 -11
  369. data/vendor/local/share/doc/groonga/ja/html/tutorial/network.html +16 -12
  370. data/vendor/local/share/doc/groonga/ja/html/tutorial/patricia_trie.html +5 -5
  371. data/vendor/local/share/doc/groonga/ja/html/tutorial/query_expansion.html +5 -5
  372. data/vendor/local/share/doc/groonga/ja/html/tutorial/search.html +5 -5
  373. data/vendor/local/share/man/ja/man1/groonga.1 +847 -160
  374. data/vendor/local/share/man/man1/groonga.1 +826 -97
  375. metadata +10 -2
@@ -1147,7 +1147,9 @@ rb_grn_obj_to_ruby_object (VALUE klass, grn_ctx *context,
1147
1147
  /* case GRN_PTR: */
1148
1148
  /* case GRN_UVECTOR: */
1149
1149
  /* case GRN_PVECTOR: */
1150
- /* case GRN_VECTOR: */
1150
+ case GRN_VECTOR:
1151
+ return GRNVECTOR2RVAL(context, obj);
1152
+ break;
1151
1153
  /* case GRN_MSG: */
1152
1154
  /* case GRN_QUERY: */
1153
1155
  /* case GRN_ACCESSOR: */
@@ -68,13 +68,19 @@ static VALUE
68
68
  rb_grn_variable_get_value (VALUE self)
69
69
  {
70
70
  grn_ctx *context = NULL;
71
- grn_obj *variable;
71
+ grn_obj *variable, *value;
72
72
 
73
73
  rb_grn_variable_deconstruct(SELF(self), &variable, &context,
74
74
  NULL, NULL,
75
75
  NULL, NULL);
76
76
 
77
- return GRNOBJ2RVAL(Qnil, context, variable, self);
77
+ if (variable->header.type == GRN_PTR) {
78
+ value = GRN_PTR_VALUE(variable);
79
+ } else {
80
+ value = variable;
81
+ }
82
+
83
+ return GRNOBJ2RVAL(Qnil, context, value, self);
78
84
  }
79
85
 
80
86
  /*
@@ -83,7 +89,7 @@ rb_grn_variable_get_value (VALUE self)
83
89
  * @overload value=(value)
84
90
  */
85
91
  static VALUE
86
- rb_grn_variable_set_value (VALUE self, VALUE value)
92
+ rb_grn_variable_set_value (VALUE self, VALUE rb_value)
87
93
  {
88
94
  grn_ctx *context = NULL;
89
95
  grn_obj *variable;
@@ -91,7 +97,14 @@ rb_grn_variable_set_value (VALUE self, VALUE value)
91
97
  rb_grn_variable_deconstruct(SELF(self), &variable, &context,
92
98
  NULL, NULL,
93
99
  NULL, NULL);
94
- RVAL2GRNOBJ(value, context, &variable);
100
+ if (variable->header.type == GRN_PTR) {
101
+ grn_obj *value = NULL;
102
+ RVAL2GRNOBJ(rb_value, context, &value);
103
+ GRN_PTR_SET(context, variable, value);
104
+ } else {
105
+ RVAL2GRNOBJ(rb_value, context, &variable);
106
+ }
107
+
95
108
  return Qnil;
96
109
  }
97
110
 
data/ext/groonga/rb-grn.h CHANGED
@@ -76,7 +76,7 @@ RB_GRN_BEGIN_DECLS
76
76
 
77
77
  #define RB_GRN_MAJOR_VERSION 3
78
78
  #define RB_GRN_MINOR_VERSION 0
79
- #define RB_GRN_MICRO_VERSION 2
79
+ #define RB_GRN_MICRO_VERSION 4
80
80
 
81
81
  #define RB_GRN_QUERY_DEFAULT_MAX_EXPRESSIONS 32
82
82
 
@@ -212,6 +212,7 @@ RB_GRN_VAR VALUE rb_eGrnError;
212
212
  RB_GRN_VAR VALUE rb_eGrnClosed;
213
213
  RB_GRN_VAR VALUE rb_eGrnNoSuchColumn;
214
214
  RB_GRN_VAR VALUE rb_eGrnInvalidArgument;
215
+ RB_GRN_VAR VALUE rb_eGrnNoMemoryAvailable;
215
216
  RB_GRN_VAR VALUE rb_cGrnObject;
216
217
  RB_GRN_VAR VALUE rb_mGrnEncodingSupport;
217
218
  RB_GRN_VAR VALUE rb_cGrnDatabase;
data/lib/1.9/groonga.so CHANGED
Binary file
data/lib/2.0/groonga.so CHANGED
Binary file
@@ -15,9 +15,11 @@
15
15
  # License along with this library; if not, write to the Free Software
16
16
  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
17
 
18
- require 'English'
18
+ require "English"
19
19
  require "time"
20
20
 
21
+ require "groonga/sub-records"
22
+
21
23
  module Groonga
22
24
  class Record
23
25
  # レコードが所属するテーブル
@@ -87,7 +89,7 @@ module Groonga
87
89
  # @option value_with_weight [Integer or nil] :weight (nil)
88
90
  # The weight for the value. You need to use vector column and
89
91
  # weight supported index column for weight. See
90
- # {Groonga;:Table#set_column_value} for details.
92
+ # {Groonga::Table#set_column_value} for details.
91
93
  #
92
94
  # @example Set a new value with weight "2"
93
95
  # user["tags"] = [{:value => "groonga", :weight => 2}]
@@ -316,6 +318,11 @@ module Groonga
316
318
  @table.exist?(@id)
317
319
  end
318
320
 
321
+ # @return [SubRecords] Sub records of the record.
322
+ def sub_records
323
+ SubRecords.new(self)
324
+ end
325
+
319
326
  # @private
320
327
  def methods(include_inherited=true)
321
328
  original_methods = super
@@ -0,0 +1,62 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2013 Kouhei Sutou <kou@clear-code.com>
4
+ #
5
+ # This library is free software; you can redistribute it and/or
6
+ # modify it under the terms of the GNU Lesser General Public
7
+ # License version 2.1 as published by the Free Software Foundation.
8
+ #
9
+ # This library is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ # Lesser General Public License for more details.
13
+ #
14
+ # You should have received a copy of the GNU Lesser General Public
15
+ # License along with this library; if not, write to the Free Software
16
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
+
18
+ module Groonga
19
+ # Represents sub records of a {Record}. Grouped result set by
20
+ # {Table#group} only has sub records.
21
+ #
22
+ # {SubRecords} acts like an ::Array.
23
+ class SubRecords
24
+ include Enumerable
25
+
26
+ # The record that has this sub records.
27
+ attr_reader :record
28
+
29
+ # Creates a sub records container for the _record_.
30
+ #
31
+ # Normally, users don't need to instantiate {SubRecords}
32
+ # directly. {Record#sub_records} creates and returns a
33
+ # {SubRecords}.
34
+ #
35
+ # @param record [Record] The record that has this sub records.
36
+ def initialize(record)
37
+ @record = record
38
+ end
39
+
40
+ # @yield [record] Gives a sub record to the block.
41
+ # @yieldparam record [Record] A sub record.
42
+ # @return [void]
43
+ def each(&block)
44
+ @record.table.each_sub_record(@record.record_raw_id, &block)
45
+ end
46
+
47
+ # @return [Array<Record>] Sub records as ::Array.
48
+ def to_a
49
+ @sub_records ||= super
50
+ end
51
+
52
+ # Acts as ::Array
53
+ alias_method :to_ary, :to_a
54
+
55
+ # @param index [Integer] A 0-origin index.
56
+ # @return [Record] A sub record at _index_.
57
+ def [](index)
58
+ to_a[index]
59
+ end
60
+ end
61
+ end
62
+
data/rroonga-build.rb CHANGED
@@ -19,8 +19,9 @@ module RroongaBuild
19
19
  module RequiredGroongaVersion
20
20
  MAJOR = 3
21
21
  MINOR = 0
22
- MICRO = 4
22
+ MICRO = 5
23
23
  VERSION = [MAJOR, MINOR, MICRO]
24
+ RELEASED_DATE = Time.utc(2013, 6, 29)
24
25
  end
25
26
 
26
27
  module_function
data/rroonga.gemspec CHANGED
@@ -76,7 +76,7 @@ Gem::Specification.new do |s|
76
76
 
77
77
  s.homepage = "http://groonga.rubyforge.org/#about-rroonga"
78
78
  s.licenses = ["LGPLv2"]
79
- s.require_paths = ["lib"]
79
+ s.require_paths = ["lib", "ext/groonga"]
80
80
  s.rubyforge_project = "groonga"
81
81
 
82
82
  s.required_ruby_version = ">= 1.9.3"
data/test/test-array.rb CHANGED
@@ -203,10 +203,30 @@ EXPECTED_OUTPUT
203
203
  end
204
204
  end
205
205
 
206
+ def test_unblock
207
+ IO.pipe do |read_io, write_io|
208
+ Tempfile.open("not_blocked_pull.rb") do |pull_rb|
209
+ pull_rb.puts(pull_rb_source(":block? => true"))
210
+ pull_rb.close
211
+
212
+ pid = spawn({}, RbConfig.ruby, pull_rb.path, :out => write_io)
213
+ assert_equal("start", read_io.gets.chomp)
214
+ Process.kill(:TERM, pid)
215
+ @queue.unblock
216
+ assert_equal("SIGTERM", read_io.gets.chomp)
217
+ wait_finished(pid)
218
+ write_io.close
219
+ assert_equal("done", read_io.read.chomp)
220
+ end
221
+ end
222
+ end
223
+
206
224
  private
207
225
  def pull_rb_source(options)
208
226
  base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
209
227
  <<-CODE
228
+ $stdout.sync = true
229
+
210
230
  base_dir = #{base_dir.dump}
211
231
  ext_dir = File.join(base_dir, "ext", "groonga")
212
232
  lib_dir = File.join(base_dir, "lib")
@@ -216,6 +236,10 @@ $LOAD_PATH.unshift(lib_dir)
216
236
 
217
237
  require "groonga"
218
238
 
239
+ trap(:TERM) do
240
+ puts("SIGTERM")
241
+ end
242
+
219
243
  puts("start")
220
244
  Groonga::Context.default.open_database(#{@database_path.to_s.dump}) do
221
245
  queue = Groonga["Queue"]
@@ -226,5 +250,16 @@ end
226
250
  puts("done")
227
251
  CODE
228
252
  end
253
+
254
+ def wait_finished(pid)
255
+ n_retries = 3
256
+ n_retries.times do |i|
257
+ @queue.unblock
258
+ finished_pid = Process.waitpid(pid, Process::WNOHANG)
259
+ return if finished_pid
260
+ sleep((2 ** i) * 0.1)
261
+ end
262
+ Process.waitpid(pid)
263
+ end
229
264
  end
230
265
  end
data/test/test-context.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2009-2011 Kouhei Sutou <kou@clear-code.com>
1
+ # Copyright (C) 2009-2013 Kouhei Sutou <kou@clear-code.com>
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -41,6 +41,7 @@ class ContextTest < Test::Unit::TestCase
41
41
  end
42
42
 
43
43
  def test_create_temporary_database
44
+ Groonga::Logger.register(nil)
44
45
  before_files = @tmp_dir.children
45
46
  context = Groonga::Context.new
46
47
  database = context.create_database
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2009-2011 Kouhei Sutou <kou@clear-code.com>
1
+ # Copyright (C) 2009-2013 Kouhei Sutou <kou@clear-code.com>
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -29,6 +29,7 @@ class DatabaseTest < Test::Unit::TestCase
29
29
  end
30
30
 
31
31
  def test_temporary
32
+ Groonga::Logger.register(nil)
32
33
  before_files = @tmp_dir.children
33
34
  database = Groonga::Database.create
34
35
  assert_nil(database.name)
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
- # Copyright (C) 2009-2011 Kouhei Sutou <kou@clear-code.com>
3
+ # Copyright (C) 2009-2013 Kouhei Sutou <kou@clear-code.com>
4
4
  #
5
5
  # This library is free software; you can redistribute it and/or
6
6
  # modify it under the terms of the GNU Lesser General Public
@@ -30,9 +30,9 @@ class ExpressionTest < Test::Unit::TestCase
30
30
  expression.append_object(ryoqun)
31
31
  expression.append_object(mori)
32
32
 
33
- assert_equal("ryoqun", expression["user"])
34
- assert_equal("ryoqun", expression[0])
35
- assert_equal("mori", expression[1])
33
+ assert_equal("ryoqun", expression["user"].value)
34
+ assert_equal("ryoqun", expression[0].value)
35
+ assert_equal("mori", expression[1].value)
36
36
  end
37
37
 
38
38
  def test_get_value
@@ -131,4 +131,14 @@ class ExpressionTest < Test::Unit::TestCase
131
131
  snippet.execute("ラングバプロジェクトはカラムストア機能も"))
132
132
  snippet.close
133
133
  end
134
+
135
+ class VariableTest < self
136
+ def test_reference
137
+ expression = Groonga::Expression.new
138
+ variable = expression.define_variable(:name => "$condition",
139
+ :reference => true)
140
+ variable.value = "TODO: Change me to expression"
141
+ assert_equal("TODO: Change me to expression", variable.value)
142
+ end
143
+ end
134
144
  end
@@ -0,0 +1,109 @@
1
+ # Copyright (C) 2013 Kouhei Sutou <kou@clear-code.com>
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
+ class SubRecordsTest < Test::Unit::TestCase
17
+ include GroongaTestUtils
18
+
19
+ def setup
20
+ setup_database
21
+ setup_schema
22
+ setup_data
23
+ setup_searched
24
+ end
25
+
26
+ def setup_schema
27
+ Groonga::Schema.define do |schema|
28
+ schema.create_table("Bookmarks", :type => :hash) do |table|
29
+ table.text("title")
30
+ end
31
+
32
+ schema.create_table("Comments", :type => :array) do |table|
33
+ table.reference("bookmark")
34
+ table.text("content")
35
+ table.int32("rank")
36
+ end
37
+ end
38
+ end
39
+
40
+ def setup_data
41
+ setup_bookmarks
42
+ setup_comments
43
+ end
44
+
45
+ def setup_bookmarks
46
+ @bookmarks = Groonga["Bookmarks"]
47
+ @groonga = @bookmarks.add("http://groonga.org/", :title => "groonga")
48
+ @ruby = @bookmarks.add("http://ruby-lang.org/", :title => "Ruby")
49
+ end
50
+
51
+ def setup_comments
52
+ @comments = Groonga["Comments"]
53
+ @comments.add(:bookmark => @groonga,
54
+ :content => "garbage comment1",
55
+ :rank => 0)
56
+ @comments.add(:bookmark => @groonga,
57
+ :content => "garbage comment2",
58
+ :rank => 0)
59
+ @comments.add(:bookmark => @groonga,
60
+ :content => "full-text search",
61
+ :rank => 1)
62
+ @comments.add(:bookmark => @groonga,
63
+ :content => "column store",
64
+ :rank => 5)
65
+ @comments.add(:bookmark => @ruby,
66
+ :content => "object oriented script language",
67
+ :rank => 100)
68
+ @comments.add(:bookmark => @ruby,
69
+ :content => "multi paradigm programming language",
70
+ :rank => 80)
71
+ end
72
+
73
+ def setup_searched
74
+ @records = @comments.select do |record|
75
+ record.rank > 0
76
+ end
77
+ end
78
+
79
+ def test_array_reference
80
+ grouped_records = @records.group("bookmark", :max_n_sub_records => 2)
81
+ groups = grouped_records.collect do |record|
82
+ [record.title, record.sub_records[0].content]
83
+ end
84
+ assert_equal([
85
+ [
86
+ "groonga",
87
+ "full-text search",
88
+ ],
89
+ [
90
+ "Ruby",
91
+ "object oriented script language",
92
+ ],
93
+ ],
94
+ groups)
95
+ end
96
+
97
+ def test_to_ary
98
+ grouped_records = @records.group("bookmark", :max_n_sub_records => 2)
99
+ sub_record1, sub_record2 = grouped_records.first.sub_records
100
+ assert_equal([
101
+ "full-text search",
102
+ "column store",
103
+ ],
104
+ [
105
+ sub_record1.content,
106
+ sub_record2.content,
107
+ ])
108
+ end
109
+ end
data/test/test-table.rb CHANGED
@@ -681,6 +681,110 @@ class TableTest < Test::Unit::TestCase
681
681
  assert_not_predicate(bookmarks, :builtin?)
682
682
  end
683
683
 
684
+ class GroupTest < self
685
+ class MaxNSubRecordsTest < self
686
+ setup
687
+ def setup_schema
688
+ Groonga::Schema.define do |schema|
689
+ schema.create_table("Bookmarks", :type => :hash) do |table|
690
+ table.text("title")
691
+ end
692
+
693
+ schema.create_table("Comments", :type => :array) do |table|
694
+ table.reference("bookmark")
695
+ table.text("content")
696
+ table.int32("rank")
697
+ end
698
+ end
699
+ end
700
+
701
+ setup
702
+ def setup_data
703
+ setup_bookmarks
704
+ setup_comments
705
+ end
706
+
707
+ def setup_bookmarks
708
+ @bookmarks = Groonga["Bookmarks"]
709
+ @groonga = @bookmarks.add("http://groonga.org/", :title => "groonga")
710
+ @ruby = @bookmarks.add("http://ruby-lang.org/", :title => "Ruby")
711
+ end
712
+
713
+ def setup_comments
714
+ @comments = Groonga["Comments"]
715
+ @comments.add(:bookmark => @groonga,
716
+ :content => "garbage comment1",
717
+ :rank => 0)
718
+ @comments.add(:bookmark => @groonga,
719
+ :content => "garbage comment2",
720
+ :rank => 0)
721
+ @comments.add(:bookmark => @groonga,
722
+ :content => "full-text search",
723
+ :rank => 1)
724
+ @comments.add(:bookmark => @groonga,
725
+ :content => "column store",
726
+ :rank => 5)
727
+ @comments.add(:bookmark => @ruby,
728
+ :content => "object oriented script language",
729
+ :rank => 100)
730
+ @comments.add(:bookmark => @ruby,
731
+ :content => "multi paradigm programming language",
732
+ :rank => 80)
733
+ end
734
+
735
+ setup
736
+ def setup_searched
737
+ @records = @comments.select do |record|
738
+ record.rank > 0
739
+ end
740
+ end
741
+
742
+ def test_upper_limit
743
+ grouped_records = @records.group("bookmark", :max_n_sub_records => 2)
744
+ groups = grouped_records.collect do |record|
745
+ sub_record_contents = record.sub_records.collect do |sub_record|
746
+ sub_record.content
747
+ end
748
+ [record.title, sub_record_contents]
749
+ end
750
+ assert_equal([
751
+ [
752
+ "groonga",
753
+ [
754
+ "full-text search",
755
+ "column store",
756
+ ],
757
+ ],
758
+ [
759
+ "Ruby",
760
+ [
761
+ "object oriented script language",
762
+ "multi paradigm programming language",
763
+ ],
764
+ ],
765
+ ],
766
+ groups)
767
+ end
768
+
769
+ def test_less_than_limit
770
+ sorted = @records.sort([{:key => "rank", :order => :descending}],
771
+ :limit => 3, :offset => 0)
772
+ grouped_records = sorted.group("bookmark", :max_n_sub_records => 2)
773
+ groups = grouped_records.collect do |record|
774
+ sub_record_ranks = record.sub_records.collect do |sub_record|
775
+ sub_record.rank
776
+ end
777
+ [record.title, sub_record_ranks]
778
+ end
779
+ assert_equal([
780
+ ["Ruby", [100, 80]],
781
+ ["groonga", [5]]
782
+ ],
783
+ groups)
784
+ end
785
+ end
786
+ end
787
+
684
788
  class OtherProcessTest < self
685
789
  def test_create
686
790
  by_other_process do