rroonga 3.0.1-x86-mingw32 → 3.0.2-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 (374) hide show
  1. data/doc/text/news.textile +21 -0
  2. data/ext/groonga/rb-grn-index-column.c +353 -1
  3. data/ext/groonga/rb-grn-object.c +529 -495
  4. data/ext/groonga/rb-grn-table.c +48 -0
  5. data/ext/groonga/rb-grn-utils.c +585 -418
  6. data/ext/groonga/rb-grn.h +6 -4
  7. data/lib/1.9/groonga.so +0 -0
  8. data/lib/2.0/groonga.so +0 -0
  9. data/lib/groonga/dumper.rb +25 -8
  10. data/lib/groonga/record.rb +21 -2
  11. data/lib/groonga/schema.rb +2 -2
  12. data/rroonga-build.rb +1 -1
  13. data/rroonga.gemspec +2 -0
  14. data/test/test-database-dumper.rb +45 -3
  15. data/test/test-expression-builder.rb +0 -13
  16. data/test/test-fix-size-column.rb +40 -9
  17. data/test/test-index-column.rb +130 -1
  18. data/test/test-record.rb +43 -8
  19. data/test/test-schema-create-table.rb +2 -2
  20. data/test/test-schema-dumper.rb +46 -6
  21. data/test/test-table.rb +4 -3
  22. data/test/test-variable-size-column.rb +115 -26
  23. data/vendor/local/bin/groonga-benchmark.exe +0 -0
  24. data/vendor/local/bin/groonga.exe +0 -0
  25. data/vendor/local/bin/libgcc_s_sjlj-1.dll +0 -0
  26. data/vendor/local/bin/libgroonga-0.dll +0 -0
  27. data/vendor/local/bin/libmecab-1.dll +0 -0
  28. data/vendor/local/bin/libmsgpack-3.dll +0 -0
  29. data/vendor/local/bin/libmsgpackc-2.dll +0 -0
  30. data/vendor/local/bin/libstdc++-6.dll +0 -0
  31. data/vendor/local/bin/mecab.exe +0 -0
  32. data/vendor/local/include/groonga/groonga.h +1 -9
  33. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.a +0 -0
  34. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll +0 -0
  35. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll.a +0 -0
  36. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.la +1 -1
  37. data/vendor/local/lib/groonga/plugins/suggest/suggest.a +0 -0
  38. data/vendor/local/lib/groonga/plugins/suggest/suggest.dll +0 -0
  39. data/vendor/local/lib/groonga/plugins/suggest/suggest.dll.a +0 -0
  40. data/vendor/local/lib/groonga/plugins/suggest/suggest.la +1 -1
  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/table/table.la +1 -1
  45. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.a +0 -0
  46. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll +0 -0
  47. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll.a +0 -0
  48. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.la +1 -1
  49. data/vendor/local/lib/libgroonga.a +0 -0
  50. data/vendor/local/lib/libgroonga.dll.a +0 -0
  51. data/vendor/local/lib/libgroonga.la +1 -1
  52. data/vendor/local/lib/libmecab.a +0 -0
  53. data/vendor/local/lib/libmecab.dll.a +0 -0
  54. data/vendor/local/lib/libmsgpack.a +0 -0
  55. data/vendor/local/lib/libmsgpack.dll.a +0 -0
  56. data/vendor/local/lib/libmsgpack.la +1 -1
  57. data/vendor/local/lib/libmsgpackc.a +0 -0
  58. data/vendor/local/lib/libmsgpackc.dll.a +0 -0
  59. data/vendor/local/lib/libmsgpackc.la +1 -1
  60. data/vendor/local/lib/pkgconfig/groonga.pc +2 -2
  61. data/vendor/local/libexec/mecab/mecab-cost-train.exe +0 -0
  62. data/vendor/local/libexec/mecab/mecab-dict-gen.exe +0 -0
  63. data/vendor/local/libexec/mecab/mecab-dict-index.exe +0 -0
  64. data/vendor/local/libexec/mecab/mecab-system-eval.exe +0 -0
  65. data/vendor/local/libexec/mecab/mecab-test-gen.exe +0 -0
  66. data/vendor/local/share/doc/groonga/en/html/.buildinfo +1 -1
  67. data/vendor/local/share/doc/groonga/en/html/_sources/install/centos.txt +3 -3
  68. data/vendor/local/share/doc/groonga/en/html/_sources/install/debian.txt +43 -3
  69. data/vendor/local/share/doc/groonga/en/html/_sources/install/fedora.txt +3 -3
  70. data/vendor/local/share/doc/groonga/en/html/_sources/install/mac_os_x.txt +3 -3
  71. data/vendor/local/share/doc/groonga/en/html/_sources/install/others.txt +3 -3
  72. data/vendor/local/share/doc/groonga/en/html/_sources/install/solaris.txt +3 -3
  73. data/vendor/local/share/doc/groonga/en/html/_sources/install/ubuntu.txt +3 -50
  74. data/vendor/local/share/doc/groonga/en/html/_sources/install/windows.txt +11 -21
  75. data/vendor/local/share/doc/groonga/en/html/_sources/news.txt +51 -0
  76. data/vendor/local/share/doc/groonga/en/html/_sources/reference/api/grn_ctx.txt +49 -0
  77. data/vendor/local/share/doc/groonga/en/html/_sources/reference/api.txt +8 -1
  78. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/tokenize.txt +196 -0
  79. data/vendor/local/share/doc/groonga/en/html/_sources/reference/normalizers.txt +1 -1
  80. data/vendor/local/share/doc/groonga/en/html/_sources/reference/tokenizers.txt +16 -0
  81. data/vendor/local/share/doc/groonga/en/html/_static/pygments.css +2 -2
  82. data/vendor/local/share/doc/groonga/en/html/characteristic.html +5 -5
  83. data/vendor/local/share/doc/groonga/en/html/community.html +5 -5
  84. data/vendor/local/share/doc/groonga/en/html/contribution/development/com.html +5 -5
  85. data/vendor/local/share/doc/groonga/en/html/contribution/development/document.html +5 -5
  86. data/vendor/local/share/doc/groonga/en/html/contribution/development/query.html +5 -5
  87. data/vendor/local/share/doc/groonga/en/html/contribution/development/release.html +5 -5
  88. data/vendor/local/share/doc/groonga/en/html/contribution/development/repository.html +5 -5
  89. data/vendor/local/share/doc/groonga/en/html/contribution/development/test.html +5 -5
  90. data/vendor/local/share/doc/groonga/en/html/contribution/development.html +5 -5
  91. data/vendor/local/share/doc/groonga/en/html/contribution/documentation/c-api.html +5 -5
  92. data/vendor/local/share/doc/groonga/en/html/contribution/documentation/i18n.html +13 -5
  93. data/vendor/local/share/doc/groonga/en/html/contribution/documentation.html +5 -5
  94. data/vendor/local/share/doc/groonga/en/html/contribution/report.html +5 -5
  95. data/vendor/local/share/doc/groonga/en/html/contribution.html +5 -5
  96. data/vendor/local/share/doc/groonga/en/html/development/travis-ci.html +5 -5
  97. data/vendor/local/share/doc/groonga/en/html/development.html +5 -5
  98. data/vendor/local/share/doc/groonga/en/html/genindex.html +22 -5
  99. data/vendor/local/share/doc/groonga/en/html/geolocation_search.html +5 -5
  100. data/vendor/local/share/doc/groonga/en/html/index.html +19 -14
  101. data/vendor/local/share/doc/groonga/en/html/install/centos.html +8 -8
  102. data/vendor/local/share/doc/groonga/en/html/install/debian.html +48 -12
  103. data/vendor/local/share/doc/groonga/en/html/install/fedora.html +8 -8
  104. data/vendor/local/share/doc/groonga/en/html/install/mac_os_x.html +8 -8
  105. data/vendor/local/share/doc/groonga/en/html/install/others.html +8 -8
  106. data/vendor/local/share/doc/groonga/en/html/install/solaris.html +8 -8
  107. data/vendor/local/share/doc/groonga/en/html/install/ubuntu.html +16 -60
  108. data/vendor/local/share/doc/groonga/en/html/install/windows.html +16 -25
  109. data/vendor/local/share/doc/groonga/en/html/install.html +12 -12
  110. data/vendor/local/share/doc/groonga/en/html/limitations.html +5 -5
  111. data/vendor/local/share/doc/groonga/en/html/news/0.x.html +5 -5
  112. data/vendor/local/share/doc/groonga/en/html/news/1.0.x.html +5 -5
  113. data/vendor/local/share/doc/groonga/en/html/news/1.1.x.html +5 -5
  114. data/vendor/local/share/doc/groonga/en/html/news/1.2.x.html +5 -5
  115. data/vendor/local/share/doc/groonga/en/html/news/senna.html +5 -5
  116. data/vendor/local/share/doc/groonga/en/html/news.html +187 -129
  117. data/vendor/local/share/doc/groonga/en/html/objects.inv +0 -0
  118. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ctx.html +198 -0
  119. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_expr.html +31 -6
  120. data/vendor/local/share/doc/groonga/en/html/reference/api.html +18 -11
  121. data/vendor/local/share/doc/groonga/en/html/reference/cast.html +5 -5
  122. data/vendor/local/share/doc/groonga/en/html/reference/command/command_version.html +5 -5
  123. data/vendor/local/share/doc/groonga/en/html/reference/command/output_format.html +5 -5
  124. data/vendor/local/share/doc/groonga/en/html/reference/command/return_code.html +5 -5
  125. data/vendor/local/share/doc/groonga/en/html/reference/command.html +7 -6
  126. data/vendor/local/share/doc/groonga/en/html/reference/commands/cache_limit.html +5 -5
  127. data/vendor/local/share/doc/groonga/en/html/reference/commands/check.html +5 -5
  128. data/vendor/local/share/doc/groonga/en/html/reference/commands/clearlock.html +5 -5
  129. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_create.html +5 -5
  130. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_list.html +5 -5
  131. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_remove.html +17 -17
  132. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_rename.html +5 -5
  133. data/vendor/local/share/doc/groonga/en/html/reference/commands/define_selector.html +5 -5
  134. data/vendor/local/share/doc/groonga/en/html/reference/commands/defrag.html +5 -5
  135. data/vendor/local/share/doc/groonga/en/html/reference/commands/delete.html +5 -5
  136. data/vendor/local/share/doc/groonga/en/html/reference/commands/dump.html +5 -5
  137. data/vendor/local/share/doc/groonga/en/html/reference/commands/load.html +5 -5
  138. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_level.html +5 -5
  139. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_put.html +5 -5
  140. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_reopen.html +5 -5
  141. data/vendor/local/share/doc/groonga/en/html/reference/commands/normalize.html +5 -5
  142. data/vendor/local/share/doc/groonga/en/html/reference/commands/quit.html +5 -5
  143. data/vendor/local/share/doc/groonga/en/html/reference/commands/register.html +5 -5
  144. data/vendor/local/share/doc/groonga/en/html/reference/commands/select.html +5 -5
  145. data/vendor/local/share/doc/groonga/en/html/reference/commands/shutdown.html +5 -5
  146. data/vendor/local/share/doc/groonga/en/html/reference/commands/status.html +5 -5
  147. data/vendor/local/share/doc/groonga/en/html/reference/commands/suggest.html +5 -5
  148. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_create.html +5 -5
  149. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_list.html +5 -5
  150. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_remove.html +10 -10
  151. data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenize.html +310 -0
  152. data/vendor/local/share/doc/groonga/en/html/reference/commands/truncate.html +26 -26
  153. data/vendor/local/share/doc/groonga/en/html/reference/commands_not_implemented/add.html +5 -5
  154. data/vendor/local/share/doc/groonga/en/html/reference/commands_not_implemented/get.html +5 -5
  155. data/vendor/local/share/doc/groonga/en/html/reference/commands_not_implemented/set.html +5 -5
  156. data/vendor/local/share/doc/groonga/en/html/reference/executables/grnslap.html +5 -5
  157. data/vendor/local/share/doc/groonga/en/html/reference/executables/grntest.html +5 -5
  158. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-httpd.html +5 -5
  159. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-server-http.html +5 -5
  160. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-create-dataset.html +5 -5
  161. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga.html +5 -5
  162. data/vendor/local/share/doc/groonga/en/html/reference/executables.html +5 -5
  163. data/vendor/local/share/doc/groonga/en/html/reference/function.html +5 -5
  164. data/vendor/local/share/doc/groonga/en/html/reference/functions/edit_distance.html +5 -5
  165. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_distance.html +5 -5
  166. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_circle.html +5 -5
  167. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_rectangle.html +5 -5
  168. data/vendor/local/share/doc/groonga/en/html/reference/functions/now.html +5 -5
  169. data/vendor/local/share/doc/groonga/en/html/reference/functions/query.html +5 -5
  170. data/vendor/local/share/doc/groonga/en/html/reference/functions/rand.html +5 -5
  171. data/vendor/local/share/doc/groonga/en/html/reference/functions/snippet_html.html +5 -5
  172. data/vendor/local/share/doc/groonga/en/html/reference/functions/sub_filter.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/grn_expr.html +5 -5
  176. data/vendor/local/share/doc/groonga/en/html/reference/indexing.html +5 -5
  177. data/vendor/local/share/doc/groonga/en/html/reference/log.html +5 -5
  178. data/vendor/local/share/doc/groonga/en/html/reference/normalizers.html +6 -6
  179. data/vendor/local/share/doc/groonga/en/html/reference/output.html +5 -5
  180. data/vendor/local/share/doc/groonga/en/html/reference/pseudo_column.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/query_expanders.html +5 -5
  183. data/vendor/local/share/doc/groonga/en/html/reference/tables.html +5 -5
  184. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers.html +20 -5
  185. data/vendor/local/share/doc/groonga/en/html/reference/types.html +9 -9
  186. data/vendor/local/share/doc/groonga/en/html/reference.html +12 -7
  187. data/vendor/local/share/doc/groonga/en/html/search.html +5 -5
  188. data/vendor/local/share/doc/groonga/en/html/searchindex.js +1 -1
  189. data/vendor/local/share/doc/groonga/en/html/server/gqtp.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/http.html +5 -5
  194. data/vendor/local/share/doc/groonga/en/html/server/package.html +5 -5
  195. data/vendor/local/share/doc/groonga/en/html/server.html +5 -5
  196. data/vendor/local/share/doc/groonga/en/html/spec/gqtp.html +5 -5
  197. data/vendor/local/share/doc/groonga/en/html/spec/search.html +5 -5
  198. data/vendor/local/share/doc/groonga/en/html/spec.html +10 -10
  199. data/vendor/local/share/doc/groonga/en/html/suggest/completion.html +5 -5
  200. data/vendor/local/share/doc/groonga/en/html/suggest/correction.html +5 -5
  201. data/vendor/local/share/doc/groonga/en/html/suggest/introduction.html +5 -5
  202. data/vendor/local/share/doc/groonga/en/html/suggest/suggestion.html +5 -5
  203. data/vendor/local/share/doc/groonga/en/html/suggest/tutorial.html +5 -5
  204. data/vendor/local/share/doc/groonga/en/html/suggest.html +5 -5
  205. data/vendor/local/share/doc/groonga/en/html/troubleshooting/different_results_with_the_same_keyword.html +5 -5
  206. data/vendor/local/share/doc/groonga/en/html/troubleshooting.html +5 -5
  207. data/vendor/local/share/doc/groonga/en/html/tutorial/data.html +5 -5
  208. data/vendor/local/share/doc/groonga/en/html/tutorial/drilldown.html +5 -5
  209. data/vendor/local/share/doc/groonga/en/html/tutorial/index.html +5 -5
  210. data/vendor/local/share/doc/groonga/en/html/tutorial/introduction.html +5 -5
  211. data/vendor/local/share/doc/groonga/en/html/tutorial/lexicon.html +5 -5
  212. data/vendor/local/share/doc/groonga/en/html/tutorial/match_columns.html +5 -5
  213. data/vendor/local/share/doc/groonga/en/html/tutorial/micro_blog.html +5 -5
  214. data/vendor/local/share/doc/groonga/en/html/tutorial/network.html +5 -5
  215. data/vendor/local/share/doc/groonga/en/html/tutorial/patricia_trie.html +5 -5
  216. data/vendor/local/share/doc/groonga/en/html/tutorial/query_expansion.html +5 -5
  217. data/vendor/local/share/doc/groonga/en/html/tutorial/search.html +5 -5
  218. data/vendor/local/share/doc/groonga/en/html/tutorial.html +5 -5
  219. data/vendor/local/share/doc/groonga/ja/html/.buildinfo +1 -1
  220. data/vendor/local/share/doc/groonga/ja/html/_sources/install/centos.txt +3 -3
  221. data/vendor/local/share/doc/groonga/ja/html/_sources/install/debian.txt +43 -3
  222. data/vendor/local/share/doc/groonga/ja/html/_sources/install/fedora.txt +3 -3
  223. data/vendor/local/share/doc/groonga/ja/html/_sources/install/mac_os_x.txt +3 -3
  224. data/vendor/local/share/doc/groonga/ja/html/_sources/install/others.txt +3 -3
  225. data/vendor/local/share/doc/groonga/ja/html/_sources/install/solaris.txt +3 -3
  226. data/vendor/local/share/doc/groonga/ja/html/_sources/install/ubuntu.txt +3 -50
  227. data/vendor/local/share/doc/groonga/ja/html/_sources/install/windows.txt +11 -21
  228. data/vendor/local/share/doc/groonga/ja/html/_sources/news.txt +51 -0
  229. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/api/grn_ctx.txt +49 -0
  230. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/api.txt +8 -1
  231. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/tokenize.txt +196 -0
  232. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/normalizers.txt +1 -1
  233. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/tokenizers.txt +16 -0
  234. data/vendor/local/share/doc/groonga/ja/html/_static/pygments.css +2 -2
  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/development/com.html +5 -5
  238. data/vendor/local/share/doc/groonga/ja/html/contribution/development/document.html +5 -5
  239. data/vendor/local/share/doc/groonga/ja/html/contribution/development/query.html +5 -5
  240. data/vendor/local/share/doc/groonga/ja/html/contribution/development/release.html +5 -5
  241. data/vendor/local/share/doc/groonga/ja/html/contribution/development/repository.html +5 -5
  242. data/vendor/local/share/doc/groonga/ja/html/contribution/development/test.html +5 -5
  243. data/vendor/local/share/doc/groonga/ja/html/contribution/development.html +5 -5
  244. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/c-api.html +5 -5
  245. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/i18n.html +17 -9
  246. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation.html +5 -5
  247. data/vendor/local/share/doc/groonga/ja/html/contribution/report.html +5 -5
  248. data/vendor/local/share/doc/groonga/ja/html/contribution.html +5 -5
  249. data/vendor/local/share/doc/groonga/ja/html/development/travis-ci.html +5 -5
  250. data/vendor/local/share/doc/groonga/ja/html/development.html +5 -5
  251. data/vendor/local/share/doc/groonga/ja/html/genindex.html +31 -7
  252. data/vendor/local/share/doc/groonga/ja/html/geolocation_search.html +5 -5
  253. data/vendor/local/share/doc/groonga/ja/html/index.html +19 -14
  254. data/vendor/local/share/doc/groonga/ja/html/install/centos.html +8 -8
  255. data/vendor/local/share/doc/groonga/ja/html/install/debian.html +44 -12
  256. data/vendor/local/share/doc/groonga/ja/html/install/fedora.html +8 -8
  257. data/vendor/local/share/doc/groonga/ja/html/install/mac_os_x.html +8 -8
  258. data/vendor/local/share/doc/groonga/ja/html/install/others.html +8 -8
  259. data/vendor/local/share/doc/groonga/ja/html/install/solaris.html +8 -8
  260. data/vendor/local/share/doc/groonga/ja/html/install/ubuntu.html +16 -56
  261. data/vendor/local/share/doc/groonga/ja/html/install/windows.html +16 -25
  262. data/vendor/local/share/doc/groonga/ja/html/install.html +12 -12
  263. data/vendor/local/share/doc/groonga/ja/html/limitations.html +5 -5
  264. data/vendor/local/share/doc/groonga/ja/html/news/0.x.html +5 -5
  265. data/vendor/local/share/doc/groonga/ja/html/news/1.0.x.html +5 -5
  266. data/vendor/local/share/doc/groonga/ja/html/news/1.1.x.html +5 -5
  267. data/vendor/local/share/doc/groonga/ja/html/news/1.2.x.html +5 -5
  268. data/vendor/local/share/doc/groonga/ja/html/news/senna.html +5 -5
  269. data/vendor/local/share/doc/groonga/ja/html/news.html +178 -129
  270. data/vendor/local/share/doc/groonga/ja/html/objects.inv +0 -0
  271. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ctx.html +195 -0
  272. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_expr.html +31 -6
  273. data/vendor/local/share/doc/groonga/ja/html/reference/api.html +17 -11
  274. data/vendor/local/share/doc/groonga/ja/html/reference/cast.html +5 -5
  275. data/vendor/local/share/doc/groonga/ja/html/reference/command/command_version.html +5 -5
  276. data/vendor/local/share/doc/groonga/ja/html/reference/command/output_format.html +5 -5
  277. data/vendor/local/share/doc/groonga/ja/html/reference/command/return_code.html +5 -5
  278. data/vendor/local/share/doc/groonga/ja/html/reference/command.html +7 -6
  279. data/vendor/local/share/doc/groonga/ja/html/reference/commands/cache_limit.html +5 -5
  280. data/vendor/local/share/doc/groonga/ja/html/reference/commands/check.html +5 -5
  281. data/vendor/local/share/doc/groonga/ja/html/reference/commands/clearlock.html +5 -5
  282. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_create.html +5 -5
  283. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_list.html +5 -5
  284. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_remove.html +17 -17
  285. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_rename.html +5 -5
  286. data/vendor/local/share/doc/groonga/ja/html/reference/commands/define_selector.html +5 -5
  287. data/vendor/local/share/doc/groonga/ja/html/reference/commands/defrag.html +5 -5
  288. data/vendor/local/share/doc/groonga/ja/html/reference/commands/delete.html +5 -5
  289. data/vendor/local/share/doc/groonga/ja/html/reference/commands/dump.html +5 -5
  290. data/vendor/local/share/doc/groonga/ja/html/reference/commands/load.html +5 -5
  291. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_level.html +5 -5
  292. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_put.html +5 -5
  293. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_reopen.html +5 -5
  294. data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalize.html +5 -5
  295. data/vendor/local/share/doc/groonga/ja/html/reference/commands/quit.html +5 -5
  296. data/vendor/local/share/doc/groonga/ja/html/reference/commands/register.html +5 -5
  297. data/vendor/local/share/doc/groonga/ja/html/reference/commands/select.html +5 -5
  298. data/vendor/local/share/doc/groonga/ja/html/reference/commands/shutdown.html +5 -5
  299. data/vendor/local/share/doc/groonga/ja/html/reference/commands/status.html +5 -5
  300. data/vendor/local/share/doc/groonga/ja/html/reference/commands/suggest.html +5 -5
  301. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_create.html +5 -5
  302. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_list.html +5 -5
  303. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_remove.html +10 -10
  304. data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenize.html +311 -0
  305. data/vendor/local/share/doc/groonga/ja/html/reference/commands/truncate.html +26 -26
  306. data/vendor/local/share/doc/groonga/ja/html/reference/commands_not_implemented/add.html +5 -5
  307. data/vendor/local/share/doc/groonga/ja/html/reference/commands_not_implemented/get.html +5 -5
  308. data/vendor/local/share/doc/groonga/ja/html/reference/commands_not_implemented/set.html +5 -5
  309. data/vendor/local/share/doc/groonga/ja/html/reference/executables/grnslap.html +5 -5
  310. data/vendor/local/share/doc/groonga/ja/html/reference/executables/grntest.html +5 -5
  311. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-httpd.html +5 -5
  312. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-server-http.html +5 -5
  313. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-create-dataset.html +5 -5
  314. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga.html +5 -5
  315. data/vendor/local/share/doc/groonga/ja/html/reference/executables.html +5 -5
  316. data/vendor/local/share/doc/groonga/ja/html/reference/function.html +5 -5
  317. data/vendor/local/share/doc/groonga/ja/html/reference/functions/edit_distance.html +5 -5
  318. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_distance.html +5 -5
  319. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_circle.html +5 -5
  320. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_rectangle.html +5 -5
  321. data/vendor/local/share/doc/groonga/ja/html/reference/functions/now.html +5 -5
  322. data/vendor/local/share/doc/groonga/ja/html/reference/functions/query.html +5 -5
  323. data/vendor/local/share/doc/groonga/ja/html/reference/functions/rand.html +5 -5
  324. data/vendor/local/share/doc/groonga/ja/html/reference/functions/snippet_html.html +5 -5
  325. data/vendor/local/share/doc/groonga/ja/html/reference/functions/sub_filter.html +5 -5
  326. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/query_syntax.html +5 -5
  327. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/script_syntax.html +5 -5
  328. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr.html +5 -5
  329. data/vendor/local/share/doc/groonga/ja/html/reference/indexing.html +5 -5
  330. data/vendor/local/share/doc/groonga/ja/html/reference/log.html +5 -5
  331. data/vendor/local/share/doc/groonga/ja/html/reference/normalizers.html +6 -6
  332. data/vendor/local/share/doc/groonga/ja/html/reference/output.html +5 -5
  333. data/vendor/local/share/doc/groonga/ja/html/reference/pseudo_column.html +5 -5
  334. data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders/tsv.html +5 -5
  335. data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders.html +5 -5
  336. data/vendor/local/share/doc/groonga/ja/html/reference/tables.html +5 -5
  337. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers.html +20 -5
  338. data/vendor/local/share/doc/groonga/ja/html/reference/types.html +9 -9
  339. data/vendor/local/share/doc/groonga/ja/html/reference.html +12 -7
  340. data/vendor/local/share/doc/groonga/ja/html/search.html +5 -5
  341. data/vendor/local/share/doc/groonga/ja/html/searchindex.js +1 -1
  342. data/vendor/local/share/doc/groonga/ja/html/server/gqtp.html +5 -5
  343. data/vendor/local/share/doc/groonga/ja/html/server/http/comparison.html +5 -5
  344. data/vendor/local/share/doc/groonga/ja/html/server/http/groonga-httpd.html +5 -5
  345. data/vendor/local/share/doc/groonga/ja/html/server/http/groonga.html +5 -5
  346. data/vendor/local/share/doc/groonga/ja/html/server/http.html +5 -5
  347. data/vendor/local/share/doc/groonga/ja/html/server/package.html +5 -5
  348. data/vendor/local/share/doc/groonga/ja/html/server.html +5 -5
  349. data/vendor/local/share/doc/groonga/ja/html/spec/gqtp.html +5 -5
  350. data/vendor/local/share/doc/groonga/ja/html/spec/search.html +5 -5
  351. data/vendor/local/share/doc/groonga/ja/html/spec.html +10 -10
  352. data/vendor/local/share/doc/groonga/ja/html/suggest/completion.html +5 -5
  353. data/vendor/local/share/doc/groonga/ja/html/suggest/correction.html +5 -5
  354. data/vendor/local/share/doc/groonga/ja/html/suggest/introduction.html +5 -5
  355. data/vendor/local/share/doc/groonga/ja/html/suggest/suggestion.html +5 -5
  356. data/vendor/local/share/doc/groonga/ja/html/suggest/tutorial.html +5 -5
  357. data/vendor/local/share/doc/groonga/ja/html/suggest.html +5 -5
  358. data/vendor/local/share/doc/groonga/ja/html/troubleshooting/different_results_with_the_same_keyword.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/tutorial/data.html +5 -5
  361. data/vendor/local/share/doc/groonga/ja/html/tutorial/drilldown.html +5 -5
  362. data/vendor/local/share/doc/groonga/ja/html/tutorial/index.html +5 -5
  363. data/vendor/local/share/doc/groonga/ja/html/tutorial/introduction.html +5 -5
  364. data/vendor/local/share/doc/groonga/ja/html/tutorial/lexicon.html +5 -5
  365. data/vendor/local/share/doc/groonga/ja/html/tutorial/match_columns.html +5 -5
  366. data/vendor/local/share/doc/groonga/ja/html/tutorial/micro_blog.html +5 -5
  367. data/vendor/local/share/doc/groonga/ja/html/tutorial/network.html +5 -5
  368. data/vendor/local/share/doc/groonga/ja/html/tutorial/patricia_trie.html +5 -5
  369. data/vendor/local/share/doc/groonga/ja/html/tutorial/query_expansion.html +5 -5
  370. data/vendor/local/share/doc/groonga/ja/html/tutorial/search.html +5 -5
  371. data/vendor/local/share/doc/groonga/ja/html/tutorial.html +5 -5
  372. data/vendor/local/share/man/ja/man1/groonga.1 +3227 -197
  373. data/vendor/local/share/man/man1/groonga.1 +3230 -195
  374. metadata +131 -123
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 1
79
+ #define RB_GRN_MICRO_VERSION 2
80
80
 
81
81
  #define RB_GRN_QUERY_DEFAULT_MAX_EXPRESSIONS 32
82
82
 
@@ -616,8 +616,8 @@ VALUE rb_grn_column_expression_builder_build
616
616
 
617
617
  #define RVAL2GRNUVECTOR(object, context, uvector, related_object) \
618
618
  (rb_grn_uvector_from_ruby_object(object, context, uvector, related_object))
619
- #define GRNUVECTOR2RVAL(context, uvector) \
620
- (rb_grn_uvector_to_ruby_object(context, uvector))
619
+ #define GRNUVECTOR2RVAL(context, uvector, range, related_object) \
620
+ (rb_grn_uvector_to_ruby_object(context, uvector, range, related_object))
621
621
 
622
622
  #define GRNVALUE2RVAL(context, value, range, related_object) \
623
623
  (rb_grn_value_to_ruby_object(context, value, range, related_object))
@@ -735,7 +735,9 @@ grn_obj *rb_grn_uvector_from_ruby_object (VALUE object,
735
735
  grn_obj *uvector,
736
736
  VALUE related_object);
737
737
  VALUE rb_grn_uvector_to_ruby_object (grn_ctx *context,
738
- grn_obj *uvector);
738
+ grn_obj *uvector,
739
+ grn_obj *range,
740
+ VALUE related_object);
739
741
 
740
742
  VALUE rb_grn_value_to_ruby_object (grn_ctx *context,
741
743
  grn_obj *value,
data/lib/1.9/groonga.so CHANGED
Binary file
data/lib/2.0/groonga.so CHANGED
Binary file
@@ -54,15 +54,12 @@ module Groonga
54
54
  options[:context] ||= Groonga::Context.default
55
55
  options[:database] = options[:context].database
56
56
  end
57
- options[:dump_plugins] = true if options[:dump_plugins].nil?
58
57
  options[:dump_schema] = true if options[:dump_schema].nil?
59
58
  options[:dump_tables] = true if options[:dump_tables].nil?
60
59
 
61
60
  if options[:dump_schema]
61
+ dump_plugins(options)
62
62
  schema_dumper = SchemaDumper.new(options.merge(:syntax => :command))
63
- end
64
- dump_plugins(options) if options[:dump_plugins]
65
- if options[:dump_schema]
66
63
  schema_dumper.dump_tables
67
64
  if schema_dumper.have_reference_columns?
68
65
  options[:output].write("\n")
@@ -102,6 +99,7 @@ module Groonga
102
99
  options[:database].each(each_options(:order_by => :key)) do |object|
103
100
  next unless object.is_a?(Groonga::Table)
104
101
  next if object.size.zero?
102
+ next if index_only_table?(object)
105
103
  next if target_table?(options[:exclude_tables], object, false)
106
104
  next unless target_table?(options[:tables], object, true)
107
105
  options[:output].write("\n") if !first_table or options[:dump_schema]
@@ -124,6 +122,12 @@ module Groonga
124
122
  output.write("register #{plugin_name}\n")
125
123
  end
126
124
 
125
+ def index_only_table?(table)
126
+ table.columns.all? do |column|
127
+ column.index?
128
+ end
129
+ end
130
+
127
131
  def target_table?(target_tables, table, default_value)
128
132
  return default_value if target_tables.nil? or target_tables.empty?
129
133
  target_tables.any? do |name|
@@ -277,8 +281,17 @@ module Groonga
277
281
 
278
282
  def each_table
279
283
  each_options = {:order_by => :key, :ignore_missing_object => true}
284
+ reference_tables = []
280
285
  @database.each(each_options) do |object|
281
- yield(object) if object.is_a?(Groonga::Table)
286
+ next unless object.is_a?(Groonga::Table)
287
+ if reference_table?(object)
288
+ reference_tables << object
289
+ else
290
+ yield(object)
291
+ end
292
+ end
293
+ reference_tables.each do |table|
294
+ yield(table)
282
295
  end
283
296
  end
284
297
 
@@ -287,7 +300,7 @@ module Groonga
287
300
  sorted_columns.each(&block)
288
301
  end
289
302
 
290
- def collect_columns
303
+ def find_all_columns
291
304
  columns = []
292
305
  each_table do |table|
293
306
  each_column(table) do |column|
@@ -298,13 +311,13 @@ module Groonga
298
311
  end
299
312
 
300
313
  def reference_columns
301
- @reference_columns ||= collect_columns do |column|
314
+ @reference_columns ||= find_all_columns do |column|
302
315
  reference_column?(column)
303
316
  end
304
317
  end
305
318
 
306
319
  def index_columns
307
- @index_columns ||= collect_columns do |column|
320
+ @index_columns ||= find_all_columns do |column|
308
321
  index_column?(column)
309
322
  end
310
323
  end
@@ -333,6 +346,10 @@ module Groonga
333
346
  write("\n")
334
347
  end
335
348
 
349
+ def reference_table?(table)
350
+ table.support_key? and table.domain.is_a?(Groonga::Table)
351
+ end
352
+
336
353
  def column_type(column)
337
354
  if column.is_a?(Groonga::IndexColumn)
338
355
  :index
@@ -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
@@ -16,6 +16,7 @@
16
16
  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
17
 
18
18
  require 'English'
19
+ require "time"
19
20
 
20
21
  module Groonga
21
22
  class Record
@@ -253,6 +254,22 @@ module Groonga
253
254
  accessor.build
254
255
  end
255
256
 
257
+ def as_json
258
+ accessor = AttributeHashBuilder.new(self) do |value|
259
+ if value.is_a?(Time)
260
+ value.iso8601
261
+ else
262
+ value
263
+ end
264
+ end
265
+ accessor.build
266
+ end
267
+
268
+ # @return [String] the record formatted as JSON.
269
+ def to_json(*args)
270
+ as_json.to_json(*args)
271
+ end
272
+
256
273
  # レコードを削除する。
257
274
  def delete
258
275
  @table.delete(@id)
@@ -384,9 +401,10 @@ module Groonga
384
401
  class AttributeHashBuilder
385
402
  attr_reader :attributes
386
403
 
387
- def initialize(root_record)
404
+ def initialize(root_record, &value_translator)
388
405
  @root_record = root_record
389
406
  @all_built_attributes = {}
407
+ @value_translator = value_translator
390
408
  end
391
409
 
392
410
  def build
@@ -415,6 +433,7 @@ module Groonga
415
433
  if value.is_a?(Record)
416
434
  build_attributes(value)
417
435
  else
436
+ value = @value_translator.call(value) if @value_translator
418
437
  value
419
438
  end
420
439
  end
@@ -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
@@ -1463,7 +1463,7 @@ module Groonga
1463
1463
  return false unless table.range == resolve_name(options[:value_type])
1464
1464
  sub_records = options[:sub_records]
1465
1465
  sub_records = false if sub_records.nil?
1466
- return false unless table.support_sub_records? == sub_records
1466
+ return false unless table.have_n_sub_records_space? == sub_records
1467
1467
 
1468
1468
  case table
1469
1469
  when Groonga::Array
data/rroonga-build.rb CHANGED
@@ -19,7 +19,7 @@ module RroongaBuild
19
19
  module RequiredGroongaVersion
20
20
  MAJOR = 3
21
21
  MINOR = 0
22
- MICRO = 3
22
+ MICRO = 4
23
23
  VERSION = [MAJOR, MINOR, MICRO]
24
24
  end
25
25
 
data/rroonga.gemspec CHANGED
@@ -79,6 +79,8 @@ Gem::Specification.new do |s|
79
79
  s.require_paths = ["lib"]
80
80
  s.rubyforge_project = "groonga"
81
81
 
82
+ s.required_ruby_version = ">= 1.9.3"
83
+
82
84
  s.add_runtime_dependency("pkg-config")
83
85
  s.add_runtime_dependency("json")
84
86
  s.add_runtime_dependency("archive-zip")
@@ -107,13 +107,13 @@ column_create Users Posts_author COLUMN_INDEX Posts author
107
107
  EOS
108
108
  end
109
109
 
110
- class EmptyTest < DatabaseDumperTest
110
+ class EmptyTest < self
111
111
  def test_default
112
112
  assert_equal(dumped_schema, dump)
113
113
  end
114
114
  end
115
115
 
116
- class HaveDataTest < DatabaseDumperTest
116
+ class HaveDataTest < self
117
117
  setup
118
118
  def setup_data
119
119
  posts.add(:author => "mori",
@@ -287,7 +287,7 @@ EOS
287
287
  end
288
288
  end
289
289
 
290
- class PluginTest < DatabaseDumperTest
290
+ class PluginTest < self
291
291
  def test_standard_plugin
292
292
  Groonga::Plugin.register("suggest/suggest")
293
293
  assert_equal("register suggest/suggest\n" +
@@ -296,4 +296,46 @@ EOS
296
296
  dump)
297
297
  end
298
298
  end
299
+
300
+ class IndexTest < self
301
+ def setup_tables
302
+ Groonga::Schema.define do |schema|
303
+ schema.create_table("Posts") do |table|
304
+ table.text("title")
305
+ table.short_text("tag_text")
306
+ end
307
+
308
+ schema.create_table("Tags",
309
+ :type => :hash,
310
+ :key_type => :short_text,
311
+ :default_tokenizer => :delimit) do |table|
312
+ table.index("Posts.tag_text")
313
+ end
314
+ end
315
+ end
316
+
317
+ setup
318
+ def setup_data
319
+ posts.add(:title => "Why search engine find?",
320
+ :tag_text => "search mori")
321
+ end
322
+
323
+ def test_index_column_only
324
+ assert_equal(<<-COMMAND, dump)
325
+ table_create Posts TABLE_NO_KEY
326
+ column_create Posts tag_text COLUMN_SCALAR ShortText
327
+ column_create Posts title COLUMN_SCALAR Text
328
+
329
+ table_create Tags TABLE_HASH_KEY --key_type ShortText --default_tokenizer TokenDelimit
330
+
331
+ load --table Posts
332
+ [
333
+ ["_id","tag_text","title"],
334
+ [1,"search mori","Why search engine find?"]
335
+ ]
336
+
337
+ column_create Tags Posts_tag_text COLUMN_INDEX Posts tag_text
338
+ COMMAND
339
+ end
340
+ end
299
341
  end
@@ -626,18 +626,5 @@ EOC
626
626
  assert_equal([["morita", 2]],
627
627
  result.collect {|record| [record["_key"], record.key.score]})
628
628
  end
629
-
630
- def test_n_sub_records
631
- result = @users.select do |record|
632
- (record.name =~ "o") | (record.key == "yu")
633
- end
634
- result = result.select do |record|
635
- record.n_sub_records > 1
636
- end
637
- matched_records = result.collect do |record|
638
- [record["_key"], record.key.n_sub_records]
639
- end
640
- assert_equal([["yu", 2]], matched_records)
641
- end
642
629
  end
643
630
  end
@@ -64,14 +64,45 @@ class FixSizeColumnTest < Test::Unit::TestCase
64
64
  assert_equal(@bookmarks, @viewed.table)
65
65
  end
66
66
 
67
- def test_assign_time
68
- comments = Groonga::Array.create(:name => "Comments")
69
- comments.define_column("title", "ShortText")
70
- comments.define_column("issued", "Time")
71
- title = "Good"
72
- issued = 1187430026
73
- record = comments.add(:title => title, :issued => issued)
74
- assert_equal([title, Time.at(issued)],
75
- [record["title"], record["issued"]])
67
+ class TimeTest < self
68
+ class IntegerTest < self
69
+ def test_assign
70
+ comments = Groonga::Array.create(:name => "Comments")
71
+ comments.define_column("issued", "Time")
72
+ issued = 1187430026
73
+ record = comments.add(:issued => issued)
74
+ assert_equal(Time.at(issued), record["issued"])
75
+ end
76
+ end
77
+
78
+ class FloatTest < self
79
+ def test_assign
80
+ comments = Groonga::Array.create(:name => "Comments")
81
+ comments.define_column("issued", "Time")
82
+ issued = 1187430026.29
83
+ record = comments.add(:issued => issued)
84
+ assert_in_delta(issued, record["issued"].to_f, 0.001)
85
+ end
86
+ end
87
+
88
+ class TimeTest < self
89
+ def test_assign
90
+ comments = Groonga::Array.create(:name => "Comments")
91
+ comments.define_column("issued", "Time")
92
+ issued_in_float = 1187430026.29
93
+ issued = Time.at(issued_in_float)
94
+ record = comments.add(:issued => issued)
95
+ assert_in_delta(issued_in_float, record["issued"].to_f, 0.001)
96
+ end
97
+ end
98
+
99
+ class StringTest < self
100
+ def test_assign
101
+ comments = Groonga::Array.create(:name => "Comments")
102
+ comments.define_column("issued", "Time")
103
+ record = comments.add(:issued => "2010/06/01 00:00:00")
104
+ assert_equal(Time.new(2010, 6, 1, 0, 0, 0), record["issued"])
105
+ end
106
+ end
76
107
  end
77
108
  end
@@ -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
@@ -88,6 +88,135 @@ class IndexColumnTest < Test::Unit::TestCase
88
88
  content_index.search("エンジン").collect {|record| record.key})
89
89
  end
90
90
 
91
+ def test_add
92
+ articles = Groonga::Array.create(:name => "Articles")
93
+ articles.define_column("content", "Text")
94
+
95
+ terms = Groonga::Hash.create(:name => "Terms",
96
+ :key_type => "ShortText",
97
+ :default_tokenizer => "TokenBigram")
98
+ content_index = terms.define_index_column("content", articles,
99
+ :with_position => true,
100
+ :with_section => true)
101
+
102
+ content = <<-CONTENT
103
+ Groonga is a fast and accurate full text search engine based on
104
+ inverted index. One of the characteristics of groonga is that a
105
+ newly registered document instantly appears in search
106
+ results. Also, groonga allows updates without read locks. These
107
+ characteristics result in superior performance on real-time
108
+ applications.
109
+
110
+ Groonga is also a column-oriented database management system
111
+ (DBMS). Compared with well-known row-oriented systems, such as
112
+ MySQL and PostgreSQL, column-oriented systems are more suited for
113
+ aggregate queries. Due to this advantage, groonga can cover
114
+ weakness of row-oriented systems.
115
+
116
+ The basic functions of groonga are provided in a C library. Also,
117
+ libraries for using groonga in other languages, such as Ruby, are
118
+ provided by related projects. In addition, groonga-based storage
119
+ engines are provided for MySQL and PostgreSQL. These libraries
120
+ and storage engines allow any application to use groonga. See
121
+ usage examples.
122
+ CONTENT
123
+
124
+ groonga = articles.add(:content => content)
125
+
126
+ content.split(/\n{2,}/).each_with_index do |sentence, i|
127
+ content_index.add(groonga, sentence, :section => i + 1)
128
+ end
129
+ assert_equal([groonga], content_index.search("engine").collect(&:key))
130
+ end
131
+
132
+ def test_delete
133
+ articles = Groonga::Array.create(:name => "Articles")
134
+ articles.define_column("content", "Text")
135
+
136
+ terms = Groonga::Hash.create(:name => "Terms",
137
+ :key_type => "ShortText",
138
+ :default_tokenizer => "TokenBigram")
139
+ content_index = terms.define_index_column("content", articles,
140
+ :with_position => true,
141
+ :with_section => true)
142
+
143
+ content = <<-CONTENT
144
+ Groonga is a fast and accurate full text search engine based on
145
+ inverted index. One of the characteristics of groonga is that a
146
+ newly registered document instantly appears in search
147
+ results. Also, groonga allows updates without read locks. These
148
+ characteristics result in superior performance on real-time
149
+ applications.
150
+
151
+ Groonga is also a column-oriented database management system
152
+ (DBMS). Compared with well-known row-oriented systems, such as
153
+ MySQL and PostgreSQL, column-oriented systems are more suited for
154
+ aggregate queries. Due to this advantage, groonga can cover
155
+ weakness of row-oriented systems.
156
+
157
+ The basic functions of groonga are provided in a C library. Also,
158
+ libraries for using groonga in other languages, such as Ruby, are
159
+ provided by related projects. In addition, groonga-based storage
160
+ engines are provided for MySQL and PostgreSQL. These libraries
161
+ and storage engines allow any application to use groonga. See
162
+ usage examples.
163
+ CONTENT
164
+
165
+ groonga = articles.add(:content => content)
166
+
167
+ content.split(/\n{2,}/).each_with_index do |sentence, i|
168
+ content_index.add(groonga, sentence, :section => i + 1)
169
+ end
170
+ content.split(/\n{2,}/).each_with_index do |sentence, i|
171
+ content_index.delete(groonga, sentence, :section => i + 1)
172
+ end
173
+ assert_equal([], content_index.search("engine").collect(&:key))
174
+ end
175
+
176
+ def test_update
177
+ articles = Groonga::Array.create(:name => "Articles")
178
+ articles.define_column("content", "Text")
179
+
180
+ terms = Groonga::Hash.create(:name => "Terms",
181
+ :key_type => "ShortText",
182
+ :default_tokenizer => "TokenBigram")
183
+ content_index = terms.define_index_column("content", articles,
184
+ :with_position => true,
185
+ :with_section => true)
186
+
187
+ old_sentence = <<-SENTENCE
188
+ Groonga is a fast and accurate full text search engine based on
189
+ inverted index. One of the characteristics of groonga is that a
190
+ newly registered document instantly appears in search
191
+ results. Also, groonga allows updates without read locks. These
192
+ characteristics result in superior performance on real-time
193
+ applications.
194
+ SENTENCE
195
+
196
+ new_sentence = <<-SENTENCE
197
+ Groonga is also a column-oriented database management system
198
+ (DBMS). Compared with well-known row-oriented systems, such as
199
+ MySQL and PostgreSQL, column-oriented systems are more suited for
200
+ aggregate queries. Due to this advantage, groonga can cover
201
+ weakness of row-oriented systems.
202
+ SENTENCE
203
+
204
+ groonga = articles.add(:content => old_sentence)
205
+
206
+ content_index.add(groonga, old_sentence, :section => 1)
207
+ assert_equal([groonga],
208
+ content_index.search("engine").collect(&:key))
209
+ assert_equal([],
210
+ content_index.search("MySQL").collect(&:key))
211
+
212
+ groonga[:content] = new_sentence
213
+ content_index.update(groonga, old_sentence, new_sentence, :section => 1)
214
+ assert_equal([],
215
+ content_index.search("engine").collect(&:key))
216
+ assert_equal([groonga],
217
+ content_index.search("MySQL").collect(&:key))
218
+ end
219
+
91
220
  def test_shorter_query_than_ngram
92
221
  articles = Groonga::Array.create(:name => "Articles")
93
222
  articles.define_column("content", "Text")
data/test/test-record.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2009-2012 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
@@ -99,10 +99,8 @@ class RecordTest < Test::Unit::TestCase
99
99
 
100
100
  def test_have_column_nsubrecs_existent
101
101
  @users.add("mori")
102
- bookmarks = @users.select do |record|
103
- record.key == "mori"
104
- end
105
- assert_true(bookmarks.to_a.first.have_column?(:_nsubrecs))
102
+ grouped_users = @users.group("_key")
103
+ assert_true(grouped_users.first.have_column?(:_nsubrecs))
106
104
  end
107
105
 
108
106
  def test_have_column_nsubrecs_nonexistent
@@ -411,7 +409,6 @@ class RecordTest < Test::Unit::TestCase
411
409
  "uri" => "http://groonga.org/",
412
410
  "user" => nil
413
411
  },
414
- "_nsubrecs" => 1,
415
412
  "_score" => 1,
416
413
  }
417
414
 
@@ -525,8 +522,8 @@ class RecordTest < Test::Unit::TestCase
525
522
  def test_support_sub_records
526
523
  morita = @users.add("morita")
527
524
  assert_not_predicate(morita, :support_sub_records?)
528
- users = @users.select {|record| record.key == "morita"}
529
- assert_predicate(users.to_a[0], :support_sub_records?)
525
+ grouped_users = @users.group("_key")
526
+ assert_predicate(grouped_users.first, :support_sub_records?)
530
527
  end
531
528
 
532
529
  def test_set_record_like_object
@@ -574,4 +571,42 @@ class RecordTest < Test::Unit::TestCase
574
571
  "comment" => "Informative"
575
572
  }
576
573
  end
574
+
575
+ class JSONTest < self
576
+ def setup
577
+ setup_database
578
+ setup_schema
579
+ end
580
+
581
+ def setup_schema
582
+ Groonga::Schema.define do |schema|
583
+ schema.create_table("Bookmarks") do |table|
584
+ table.short_text("uri")
585
+ table.int32("rate")
586
+ table.text("comment")
587
+ table.time("created_at")
588
+ end
589
+ end
590
+ @bookmarks = Groonga["Bookmarks"]
591
+ end
592
+
593
+ def test_to_json
594
+ created_at = Time.parse("2013-05-16T16:57:34+09:00")
595
+ values = {
596
+ "uri" => "http://groonga.org/",
597
+ "rate" => 5,
598
+ "comment" => "Great!",
599
+ "created_at" => created_at,
600
+ }
601
+ groonga = @bookmarks.add(values)
602
+ expected = {
603
+ "_id" => groonga.id,
604
+ "comment" => values["comment"],
605
+ "created_at" => created_at.iso8601,
606
+ "rate" => values["rate"],
607
+ "uri" => values["uri"],
608
+ }.to_json
609
+ assert_equal(expected, groonga.to_json)
610
+ end
611
+ end
577
612
  end
@@ -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
@@ -84,7 +84,7 @@ module SchemaCreateTableTests
84
84
  Groonga::Schema.create_table("Posts",
85
85
  options(:sub_records => true)) do |table|
86
86
  end
87
- assert_true(context["Posts"].support_sub_records?)
87
+ assert_true(context["Posts"].have_n_sub_records_space?)
88
88
  end
89
89
 
90
90
  def test_different_sub_records
@@ -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
@@ -51,7 +51,21 @@ class SchemaDumperTest < Test::Unit::TestCase
51
51
  end
52
52
  end
53
53
 
54
- def define_reference_schema
54
+ def define_reference_table_schema
55
+ Groonga::Schema.define do |schema|
56
+ schema.create_table("Terms",
57
+ :type => :hash,
58
+ :key_type => :short_text) do |table|
59
+ end
60
+
61
+ schema.create_table("IndexTerms",
62
+ :type => :hash,
63
+ :key_type => "Terms") do |table|
64
+ end
65
+ end
66
+ end
67
+
68
+ def define_reference_column_schema
55
69
  Groonga::Schema.define do |schema|
56
70
  schema.create_table("Items") do |table|
57
71
  table.short_text("title")
@@ -127,8 +141,25 @@ end
127
141
  EOS
128
142
  end
129
143
 
130
- def test_reference
131
- define_reference_schema
144
+ def test_reference_table
145
+ define_reference_table_schema
146
+ assert_equal(<<-EOS, dump)
147
+ create_table("Terms",
148
+ :type => :hash,
149
+ :key_type => "ShortText",
150
+ :force => true) do |table|
151
+ end
152
+
153
+ create_table("IndexTerms",
154
+ :type => :hash,
155
+ :key_type => "Terms",
156
+ :force => true) do |table|
157
+ end
158
+ EOS
159
+ end
160
+
161
+ def test_reference_column
162
+ define_reference_column_schema
132
163
  assert_equal(<<-EOS, dump)
133
164
  create_table("Comments",
134
165
  :force => true) do |table|
@@ -195,8 +226,17 @@ column_create Posts title COLUMN_SCALAR ShortText
195
226
  EOS
196
227
  end
197
228
 
198
- def test_reference
199
- define_reference_schema
229
+ def test_reference_table
230
+ define_reference_table_schema
231
+ assert_equal(<<-EOS, dump)
232
+ table_create Terms TABLE_HASH_KEY --key_type ShortText
233
+
234
+ table_create IndexTerms TABLE_HASH_KEY --key_type Terms
235
+ EOS
236
+ end
237
+
238
+ def test_reference_column
239
+ define_reference_column_schema
200
240
  assert_equal(<<-EOS, dump)
201
241
  table_create Comments TABLE_NO_KEY
202
242
  column_create Comments content COLUMN_SCALAR Text