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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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