rroonga 1.0.1-x86-mingw32 → 1.1.0-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 (387) hide show
  1. data/NEWS.ja.rdoc +146 -0
  2. data/NEWS.rdoc +146 -0
  3. data/README.ja.rdoc +7 -5
  4. data/README.rdoc +6 -5
  5. data/Rakefile +170 -18
  6. data/benchmark/create-wikipedia-database.rb +212 -0
  7. data/benchmark/read-write-many-small-items.rb +0 -0
  8. data/benchmark/repeat-load.rb +213 -0
  9. data/benchmark/select.rb +1052 -0
  10. data/benchmark/write-many-small-items.rb +0 -0
  11. data/example/bookmark.rb +94 -91
  12. data/example/index-html.rb +0 -0
  13. data/ext/groonga/extconf.rb +6 -6
  14. data/ext/groonga/rb-grn-accessor.c +1 -1
  15. data/ext/groonga/rb-grn-array.c +1 -1
  16. data/ext/groonga/rb-grn-column.c +201 -10
  17. data/ext/groonga/rb-grn-context.c +119 -20
  18. data/ext/groonga/rb-grn-database.c +27 -4
  19. data/ext/groonga/rb-grn-exception.c +15 -0
  20. data/ext/groonga/rb-grn-expression.c +14 -10
  21. data/ext/groonga/rb-grn-hash.c +4 -4
  22. data/ext/groonga/rb-grn-index-column.c +10 -6
  23. data/ext/groonga/rb-grn-logger.c +2 -2
  24. data/ext/groonga/rb-grn-object.c +33 -29
  25. data/ext/groonga/{rb-grn-operation.c → rb-grn-operator.c} +89 -87
  26. data/ext/groonga/rb-grn-patricia-trie.c +12 -12
  27. data/ext/groonga/rb-grn-plugin.c +134 -0
  28. data/ext/groonga/rb-grn-procedure.c +1 -1
  29. data/ext/groonga/rb-grn-query.c +7 -7
  30. data/ext/groonga/rb-grn-snippet.c +4 -3
  31. data/ext/groonga/rb-grn-table-cursor.c +1 -1
  32. data/ext/groonga/rb-grn-table-key-support.c +27 -24
  33. data/ext/groonga/rb-grn-table.c +119 -58
  34. data/ext/groonga/rb-grn-type.c +1 -1
  35. data/ext/groonga/rb-grn-utils.c +20 -19
  36. data/ext/groonga/rb-grn-variable.c +1 -1
  37. data/ext/groonga/rb-grn-view-accessor.c +1 -1
  38. data/ext/groonga/rb-grn-view.c +1 -1
  39. data/ext/groonga/rb-grn.h +26 -20
  40. data/ext/groonga/rb-groonga.c +6 -4
  41. data/extconf.rb +10 -4
  42. data/html/developer.html +8 -2
  43. data/html/favicon.ico +0 -0
  44. data/html/favicon.svg +591 -0
  45. data/html/index.html +78 -12
  46. data/html/logo.svg +612 -0
  47. data/html/ranguba.css +92 -7
  48. data/html/readme.svg +256 -0
  49. data/lib/groonga.so +0 -0
  50. data/lib/groonga/context.rb +52 -1
  51. data/lib/groonga/expression-builder.rb +42 -6
  52. data/lib/groonga/record.rb +84 -15
  53. data/lib/groonga/schema.rb +524 -122
  54. data/pkg/rroonga-1.1.0-x86-mingw32/NEWS.ja.rdoc +326 -0
  55. data/pkg/rroonga-1.1.0-x86-mingw32/NEWS.rdoc +328 -0
  56. data/pkg/rroonga-1.1.0-x86-mingw32/README.ja.rdoc +68 -0
  57. data/pkg/rroonga-1.1.0-x86-mingw32/README.rdoc +68 -0
  58. data/pkg/rroonga-1.1.0-x86-mingw32/text/expression.rdoc +285 -0
  59. data/{text/TUTORIAL.ja.rdoc → pkg/rroonga-1.1.0-x86-mingw32/text/tutorial.ja.rdoc} +165 -126
  60. data/pkg/rroonga-1.1.0/NEWS.ja.rdoc +326 -0
  61. data/pkg/rroonga-1.1.0/NEWS.rdoc +328 -0
  62. data/pkg/rroonga-1.1.0/README.ja.rdoc +68 -0
  63. data/pkg/rroonga-1.1.0/README.rdoc +68 -0
  64. data/pkg/rroonga-1.1.0/text/expression.rdoc +285 -0
  65. data/pkg/rroonga-1.1.0/text/tutorial.ja.rdoc +433 -0
  66. data/rroonga-build.rb +3 -3
  67. data/test/run-test.rb +1 -1
  68. data/test/test-array.rb +4 -0
  69. data/test/test-column.rb +31 -1
  70. data/test/test-context-select.rb +45 -14
  71. data/test/test-context.rb +44 -0
  72. data/test/test-database.rb +21 -1
  73. data/test/test-expression-builder.rb +46 -5
  74. data/test/test-fix-size-column.rb +12 -0
  75. data/test/test-hash.rb +10 -4
  76. data/test/test-index-column.rb +33 -0
  77. data/test/test-patricia-trie.rb +6 -0
  78. data/test/test-plugin.rb +29 -0
  79. data/test/test-record.rb +84 -1
  80. data/test/test-remote.rb +3 -2
  81. data/test/test-schema-create-table.rb +32 -2
  82. data/test/test-schema-type.rb +167 -0
  83. data/test/test-schema.rb +159 -12
  84. data/test/test-table-select-weight.rb +20 -1
  85. data/test/test-table-select.rb +12 -0
  86. data/test/test-table.rb +65 -0
  87. data/test/test-variable-size-column.rb +12 -0
  88. data/text/tutorial.ja.rdoc +433 -0
  89. data/vendor/local/bin/grntest.exe +0 -0
  90. data/vendor/local/bin/groonga.exe +0 -0
  91. data/vendor/local/bin/libgroonga-0.dll +0 -0
  92. data/vendor/local/etc/groonga/init.d/redhat/groonga +1 -9
  93. data/vendor/local/include/groonga/groonga.h +156 -6
  94. data/vendor/local/include/groonga/groonga/plugin.h +44 -0
  95. data/vendor/local/lib/groonga/plugins/suggest/suggest.a +0 -0
  96. data/vendor/local/lib/groonga/plugins/suggest/suggest.dll +0 -0
  97. data/vendor/local/lib/groonga/plugins/suggest/suggest.dll.a +0 -0
  98. data/vendor/local/lib/groonga/{modules → plugins}/suggest/suggest.la +2 -2
  99. data/vendor/local/lib/libgroonga.a +0 -0
  100. data/vendor/local/lib/libgroonga.dll.a +0 -0
  101. data/vendor/local/lib/libgroonga.la +1 -1
  102. data/vendor/local/lib/pkgconfig/groonga.pc +3 -2
  103. data/vendor/local/share/groonga/examples/dictionary/edict/edict_import.sh +14 -3
  104. data/vendor/local/share/groonga/examples/dictionary/eijiro/eijiro_import.sh +3 -1
  105. data/vendor/local/share/groonga/examples/dictionary/gene95/gene_import.sh +19 -3
  106. data/vendor/local/share/groonga/munin/plugins/groonga_cpu_load +0 -0
  107. data/vendor/local/share/groonga/munin/plugins/groonga_cpu_time +0 -0
  108. data/vendor/local/share/groonga/munin/plugins/groonga_disk +0 -0
  109. data/vendor/local/share/groonga/munin/plugins/groonga_memory +0 -0
  110. data/vendor/local/share/groonga/munin/plugins/groonga_n_records +0 -0
  111. data/vendor/local/share/groonga/munin/plugins/groonga_query_performance +0 -0
  112. data/vendor/local/share/groonga/munin/plugins/groonga_status +0 -0
  113. metadata +91 -341
  114. data/html/favicon.xcf +0 -0
  115. data/html/logo.xcf +0 -0
  116. data/lib/1.8/groonga.so +0 -0
  117. data/lib/1.9/groonga.so +0 -0
  118. data/license/GPL +0 -340
  119. data/license/RUBY +0 -59
  120. data/vendor/local/lib/groonga/modules/suggest/suggest.a +0 -0
  121. data/vendor/local/lib/groonga/modules/suggest/suggest.dll +0 -0
  122. data/vendor/local/lib/groonga/modules/suggest/suggest.dll.a +0 -0
  123. data/vendor/local/share/groonga/doc/ja/html/.buildinfo +0 -4
  124. data/vendor/local/share/groonga/doc/ja/html/_sources/characteristic.txt +0 -56
  125. data/vendor/local/share/groonga/doc/ja/html/_sources/commands.txt +0 -10
  126. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/cache_limit.txt +0 -52
  127. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/check.txt +0 -164
  128. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/clearlock.txt +0 -61
  129. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/column_create.txt +0 -93
  130. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/column_list.txt +0 -97
  131. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/column_remove.txt +0 -58
  132. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/define_selector.txt +0 -114
  133. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/defrag.txt +0 -57
  134. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/delete.txt +0 -68
  135. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/dump.txt +0 -62
  136. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/load.txt +0 -98
  137. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/log_level.txt +0 -65
  138. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/log_put.txt +0 -69
  139. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/log_reopen.txt +0 -66
  140. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/quit.txt +0 -38
  141. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/select.txt +0 -247
  142. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/shutdown.txt +0 -38
  143. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/status.txt +0 -59
  144. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/suggest.txt +0 -79
  145. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/table_create.txt +0 -111
  146. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/table_list.txt +0 -87
  147. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/table_remove.txt +0 -50
  148. data/vendor/local/share/groonga/doc/ja/html/_sources/commands/view_add.txt +0 -53
  149. data/vendor/local/share/groonga/doc/ja/html/_sources/commands_not_implemented/add.txt +0 -102
  150. data/vendor/local/share/groonga/doc/ja/html/_sources/commands_not_implemented/get.txt +0 -78
  151. data/vendor/local/share/groonga/doc/ja/html/_sources/commands_not_implemented/set.txt +0 -103
  152. data/vendor/local/share/groonga/doc/ja/html/_sources/developer.txt +0 -10
  153. data/vendor/local/share/groonga/doc/ja/html/_sources/developer/com.txt +0 -18
  154. data/vendor/local/share/groonga/doc/ja/html/_sources/developer/document.txt +0 -38
  155. data/vendor/local/share/groonga/doc/ja/html/_sources/developer/query.txt +0 -212
  156. data/vendor/local/share/groonga/doc/ja/html/_sources/developer/test.txt +0 -114
  157. data/vendor/local/share/groonga/doc/ja/html/_sources/execfile.txt +0 -226
  158. data/vendor/local/share/groonga/doc/ja/html/_sources/expr.txt +0 -43
  159. data/vendor/local/share/groonga/doc/ja/html/_sources/functions.txt +0 -10
  160. data/vendor/local/share/groonga/doc/ja/html/_sources/functions/edit_distance.txt +0 -48
  161. data/vendor/local/share/groonga/doc/ja/html/_sources/functions/geo_distance.txt +0 -51
  162. data/vendor/local/share/groonga/doc/ja/html/_sources/functions/geo_in_circle.txt +0 -54
  163. data/vendor/local/share/groonga/doc/ja/html/_sources/functions/geo_in_rectangle.txt +0 -55
  164. data/vendor/local/share/groonga/doc/ja/html/_sources/functions/now.txt +0 -34
  165. data/vendor/local/share/groonga/doc/ja/html/_sources/functions/rand.txt +0 -41
  166. data/vendor/local/share/groonga/doc/ja/html/_sources/grnslap.txt +0 -64
  167. data/vendor/local/share/groonga/doc/ja/html/_sources/grntest.txt +0 -259
  168. data/vendor/local/share/groonga/doc/ja/html/_sources/http.txt +0 -52
  169. data/vendor/local/share/groonga/doc/ja/html/_sources/index.txt +0 -21
  170. data/vendor/local/share/groonga/doc/ja/html/_sources/install.txt +0 -114
  171. data/vendor/local/share/groonga/doc/ja/html/_sources/news.txt +0 -199
  172. data/vendor/local/share/groonga/doc/ja/html/_sources/process.txt +0 -12
  173. data/vendor/local/share/groonga/doc/ja/html/_sources/pseudo_column.txt +0 -38
  174. data/vendor/local/share/groonga/doc/ja/html/_sources/reference.txt +0 -14
  175. data/vendor/local/share/groonga/doc/ja/html/_sources/tutorial.txt +0 -10
  176. data/vendor/local/share/groonga/doc/ja/html/_sources/tutorial/tutorial01.txt +0 -293
  177. data/vendor/local/share/groonga/doc/ja/html/_sources/tutorial/tutorial02.txt +0 -100
  178. data/vendor/local/share/groonga/doc/ja/html/_sources/tutorial/tutorial03.txt +0 -72
  179. data/vendor/local/share/groonga/doc/ja/html/_sources/tutorial/tutorial04.txt +0 -111
  180. data/vendor/local/share/groonga/doc/ja/html/_sources/tutorial/tutorial05.txt +0 -65
  181. data/vendor/local/share/groonga/doc/ja/html/_sources/tutorial/tutorial06.txt +0 -91
  182. data/vendor/local/share/groonga/doc/ja/html/_sources/tutorial/tutorial07.txt +0 -92
  183. data/vendor/local/share/groonga/doc/ja/html/_sources/tutorial/tutorial08.txt +0 -53
  184. data/vendor/local/share/groonga/doc/ja/html/_sources/tutorial/tutorial09.txt +0 -9
  185. data/vendor/local/share/groonga/doc/ja/html/_sources/tutorial/tutorial10.txt +0 -486
  186. data/vendor/local/share/groonga/doc/ja/html/_sources/type.txt +0 -118
  187. data/vendor/local/share/groonga/doc/ja/html/_static/basic.css +0 -509
  188. data/vendor/local/share/groonga/doc/ja/html/_static/default.css +0 -277
  189. data/vendor/local/share/groonga/doc/ja/html/_static/doctools.js +0 -247
  190. data/vendor/local/share/groonga/doc/ja/html/_static/file.png +0 -0
  191. data/vendor/local/share/groonga/doc/ja/html/_static/jquery.js +0 -6240
  192. data/vendor/local/share/groonga/doc/ja/html/_static/minus.png +0 -0
  193. data/vendor/local/share/groonga/doc/ja/html/_static/plus.png +0 -0
  194. data/vendor/local/share/groonga/doc/ja/html/_static/pygments.css +0 -61
  195. data/vendor/local/share/groonga/doc/ja/html/_static/searchtools.js +0 -518
  196. data/vendor/local/share/groonga/doc/ja/html/_static/sidebar.js +0 -147
  197. data/vendor/local/share/groonga/doc/ja/html/_static/underscore.js +0 -16
  198. data/vendor/local/share/groonga/doc/ja/html/characteristic.html +0 -162
  199. data/vendor/local/share/groonga/doc/ja/html/commands.html +0 -139
  200. data/vendor/local/share/groonga/doc/ja/html/commands/cache_limit.html +0 -173
  201. data/vendor/local/share/groonga/doc/ja/html/commands/check.html +0 -285
  202. data/vendor/local/share/groonga/doc/ja/html/commands/clearlock.html +0 -180
  203. data/vendor/local/share/groonga/doc/ja/html/commands/column_create.html +0 -210
  204. data/vendor/local/share/groonga/doc/ja/html/commands/column_list.html +0 -220
  205. data/vendor/local/share/groonga/doc/ja/html/commands/column_remove.html +0 -183
  206. data/vendor/local/share/groonga/doc/ja/html/commands/define_selector.html +0 -221
  207. data/vendor/local/share/groonga/doc/ja/html/commands/defrag.html +0 -177
  208. data/vendor/local/share/groonga/doc/ja/html/commands/delete.html +0 -182
  209. data/vendor/local/share/groonga/doc/ja/html/commands/dump.html +0 -177
  210. data/vendor/local/share/groonga/doc/ja/html/commands/load.html +0 -208
  211. data/vendor/local/share/groonga/doc/ja/html/commands/log_level.html +0 -187
  212. data/vendor/local/share/groonga/doc/ja/html/commands/log_put.html +0 -190
  213. data/vendor/local/share/groonga/doc/ja/html/commands/log_reopen.html +0 -188
  214. data/vendor/local/share/groonga/doc/ja/html/commands/quit.html +0 -156
  215. data/vendor/local/share/groonga/doc/ja/html/commands/select.html +0 -331
  216. data/vendor/local/share/groonga/doc/ja/html/commands/shutdown.html +0 -156
  217. data/vendor/local/share/groonga/doc/ja/html/commands/status.html +0 -179
  218. data/vendor/local/share/groonga/doc/ja/html/commands/suggest.html +0 -191
  219. data/vendor/local/share/groonga/doc/ja/html/commands/table_create.html +0 -222
  220. data/vendor/local/share/groonga/doc/ja/html/commands/table_list.html +0 -202
  221. data/vendor/local/share/groonga/doc/ja/html/commands/table_remove.html +0 -173
  222. data/vendor/local/share/groonga/doc/ja/html/commands/view_add.html +0 -175
  223. data/vendor/local/share/groonga/doc/ja/html/commands_not_implemented/add.html +0 -180
  224. data/vendor/local/share/groonga/doc/ja/html/commands_not_implemented/get.html +0 -161
  225. data/vendor/local/share/groonga/doc/ja/html/commands_not_implemented/set.html +0 -182
  226. data/vendor/local/share/groonga/doc/ja/html/developer.html +0 -118
  227. data/vendor/local/share/groonga/doc/ja/html/developer/com.html +0 -136
  228. data/vendor/local/share/groonga/doc/ja/html/developer/document.html +0 -159
  229. data/vendor/local/share/groonga/doc/ja/html/developer/query.html +0 -336
  230. data/vendor/local/share/groonga/doc/ja/html/developer/test.html +0 -220
  231. data/vendor/local/share/groonga/doc/ja/html/execfile.html +0 -370
  232. data/vendor/local/share/groonga/doc/ja/html/expr.html +0 -157
  233. data/vendor/local/share/groonga/doc/ja/html/functions.html +0 -122
  234. data/vendor/local/share/groonga/doc/ja/html/functions/edit_distance.html +0 -162
  235. data/vendor/local/share/groonga/doc/ja/html/functions/geo_distance.html +0 -170
  236. data/vendor/local/share/groonga/doc/ja/html/functions/geo_in_circle.html +0 -173
  237. data/vendor/local/share/groonga/doc/ja/html/functions/geo_in_rectangle.html +0 -172
  238. data/vendor/local/share/groonga/doc/ja/html/functions/now.html +0 -152
  239. data/vendor/local/share/groonga/doc/ja/html/functions/rand.html +0 -159
  240. data/vendor/local/share/groonga/doc/ja/html/genindex.html +0 -227
  241. data/vendor/local/share/groonga/doc/ja/html/grnslap.html +0 -183
  242. data/vendor/local/share/groonga/doc/ja/html/grntest.html +0 -368
  243. data/vendor/local/share/groonga/doc/ja/html/http.html +0 -163
  244. data/vendor/local/share/groonga/doc/ja/html/index.html +0 -291
  245. data/vendor/local/share/groonga/doc/ja/html/install.html +0 -228
  246. data/vendor/local/share/groonga/doc/ja/html/news.html +0 -310
  247. data/vendor/local/share/groonga/doc/ja/html/objects.inv +0 -0
  248. data/vendor/local/share/groonga/doc/ja/html/process.html +0 -120
  249. data/vendor/local/share/groonga/doc/ja/html/pseudo_column.html +0 -147
  250. data/vendor/local/share/groonga/doc/ja/html/reference.html +0 -174
  251. data/vendor/local/share/groonga/doc/ja/html/search.html +0 -96
  252. data/vendor/local/share/groonga/doc/ja/html/searchindex.js +0 -1
  253. data/vendor/local/share/groonga/doc/ja/html/tutorial.html +0 -172
  254. data/vendor/local/share/groonga/doc/ja/html/tutorial/tutorial01.html +0 -388
  255. data/vendor/local/share/groonga/doc/ja/html/tutorial/tutorial02.html +0 -214
  256. data/vendor/local/share/groonga/doc/ja/html/tutorial/tutorial03.html +0 -183
  257. data/vendor/local/share/groonga/doc/ja/html/tutorial/tutorial04.html +0 -212
  258. data/vendor/local/share/groonga/doc/ja/html/tutorial/tutorial05.html +0 -169
  259. data/vendor/local/share/groonga/doc/ja/html/tutorial/tutorial06.html +0 -209
  260. data/vendor/local/share/groonga/doc/ja/html/tutorial/tutorial07.html +0 -212
  261. data/vendor/local/share/groonga/doc/ja/html/tutorial/tutorial08.html +0 -139
  262. data/vendor/local/share/groonga/doc/ja/html/tutorial/tutorial09.html +0 -114
  263. data/vendor/local/share/groonga/doc/ja/html/tutorial/tutorial10.html +0 -458
  264. data/vendor/local/share/groonga/doc/ja/html/type.html +0 -217
  265. data/vendor/local/share/groonga/doc/ja/source/__init__.py +0 -0
  266. data/vendor/local/share/groonga/doc/ja/source/characteristic.txt +0 -56
  267. data/vendor/local/share/groonga/doc/ja/source/commands.txt +0 -10
  268. data/vendor/local/share/groonga/doc/ja/source/commands/cache_limit.txt +0 -52
  269. data/vendor/local/share/groonga/doc/ja/source/commands/check.txt +0 -164
  270. data/vendor/local/share/groonga/doc/ja/source/commands/clearlock.txt +0 -61
  271. data/vendor/local/share/groonga/doc/ja/source/commands/column_create.txt +0 -93
  272. data/vendor/local/share/groonga/doc/ja/source/commands/column_list.txt +0 -97
  273. data/vendor/local/share/groonga/doc/ja/source/commands/column_remove.txt +0 -58
  274. data/vendor/local/share/groonga/doc/ja/source/commands/define_selector.txt +0 -114
  275. data/vendor/local/share/groonga/doc/ja/source/commands/defrag.txt +0 -57
  276. data/vendor/local/share/groonga/doc/ja/source/commands/delete.txt +0 -68
  277. data/vendor/local/share/groonga/doc/ja/source/commands/dump.txt +0 -62
  278. data/vendor/local/share/groonga/doc/ja/source/commands/load.txt +0 -98
  279. data/vendor/local/share/groonga/doc/ja/source/commands/log_level.txt +0 -65
  280. data/vendor/local/share/groonga/doc/ja/source/commands/log_put.txt +0 -69
  281. data/vendor/local/share/groonga/doc/ja/source/commands/log_reopen.txt +0 -66
  282. data/vendor/local/share/groonga/doc/ja/source/commands/quit.txt +0 -38
  283. data/vendor/local/share/groonga/doc/ja/source/commands/select.txt +0 -247
  284. data/vendor/local/share/groonga/doc/ja/source/commands/shutdown.txt +0 -38
  285. data/vendor/local/share/groonga/doc/ja/source/commands/status.txt +0 -59
  286. data/vendor/local/share/groonga/doc/ja/source/commands/table_create.txt +0 -111
  287. data/vendor/local/share/groonga/doc/ja/source/commands/table_list.txt +0 -87
  288. data/vendor/local/share/groonga/doc/ja/source/commands/table_remove.txt +0 -50
  289. data/vendor/local/share/groonga/doc/ja/source/commands/view_add.txt +0 -53
  290. data/vendor/local/share/groonga/doc/ja/source/commands_not_implemented/add.txt +0 -102
  291. data/vendor/local/share/groonga/doc/ja/source/commands_not_implemented/get.txt +0 -78
  292. data/vendor/local/share/groonga/doc/ja/source/commands_not_implemented/set.txt +0 -103
  293. data/vendor/local/share/groonga/doc/ja/source/conf.py +0 -265
  294. data/vendor/local/share/groonga/doc/ja/source/developer.txt +0 -10
  295. data/vendor/local/share/groonga/doc/ja/source/developer/com.txt +0 -18
  296. data/vendor/local/share/groonga/doc/ja/source/developer/document.txt +0 -38
  297. data/vendor/local/share/groonga/doc/ja/source/developer/query.txt +0 -212
  298. data/vendor/local/share/groonga/doc/ja/source/developer/test.txt +0 -114
  299. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-1.log +0 -6
  300. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-10.log +0 -5
  301. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-11.log +0 -5
  302. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-12.log +0 -5
  303. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-13.log +0 -5
  304. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-14.log +0 -9
  305. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-15.log +0 -5
  306. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-16.log +0 -5
  307. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-17.log +0 -5
  308. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-2.log +0 -5
  309. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-3.log +0 -5
  310. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-4.log +0 -7
  311. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-5.log +0 -5
  312. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-6.log +0 -5
  313. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-7.log +0 -16
  314. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-8.log +0 -5
  315. data/vendor/local/share/groonga/doc/ja/source/example/tutorial01-9.log +0 -5
  316. data/vendor/local/share/groonga/doc/ja/source/example/tutorial02-1.log +0 -8
  317. data/vendor/local/share/groonga/doc/ja/source/example/tutorial02-2.log +0 -6
  318. data/vendor/local/share/groonga/doc/ja/source/example/tutorial02-3.log +0 -12
  319. data/vendor/local/share/groonga/doc/ja/source/example/tutorial03-1.log +0 -18
  320. data/vendor/local/share/groonga/doc/ja/source/example/tutorial03-2.log +0 -10
  321. data/vendor/local/share/groonga/doc/ja/source/example/tutorial03-3.log +0 -10
  322. data/vendor/local/share/groonga/doc/ja/source/example/tutorial04-1.log +0 -5
  323. data/vendor/local/share/groonga/doc/ja/source/example/tutorial04-2.log +0 -7
  324. data/vendor/local/share/groonga/doc/ja/source/example/tutorial04-3.log +0 -7
  325. data/vendor/local/share/groonga/doc/ja/source/example/tutorial04-4.log +0 -13
  326. data/vendor/local/share/groonga/doc/ja/source/example/tutorial04-5.log +0 -5
  327. data/vendor/local/share/groonga/doc/ja/source/example/tutorial04-6.log +0 -5
  328. data/vendor/local/share/groonga/doc/ja/source/example/tutorial04-7.log +0 -5
  329. data/vendor/local/share/groonga/doc/ja/source/example/tutorial05-1.log +0 -24
  330. data/vendor/local/share/groonga/doc/ja/source/example/tutorial05-2.log +0 -5
  331. data/vendor/local/share/groonga/doc/ja/source/example/tutorial05-3.log +0 -5
  332. data/vendor/local/share/groonga/doc/ja/source/example/tutorial05-4.log +0 -5
  333. data/vendor/local/share/groonga/doc/ja/source/example/tutorial05-5.log +0 -5
  334. data/vendor/local/share/groonga/doc/ja/source/example/tutorial05-6.log +0 -5
  335. data/vendor/local/share/groonga/doc/ja/source/example/tutorial06-1.log +0 -25
  336. data/vendor/local/share/groonga/doc/ja/source/example/tutorial06-2.log +0 -9
  337. data/vendor/local/share/groonga/doc/ja/source/example/tutorial06-3.log +0 -21
  338. data/vendor/local/share/groonga/doc/ja/source/example/tutorial06-4.log +0 -7
  339. data/vendor/local/share/groonga/doc/ja/source/example/tutorial06-5.log +0 -5
  340. data/vendor/local/share/groonga/doc/ja/source/example/tutorial07-1.log +0 -22
  341. data/vendor/local/share/groonga/doc/ja/source/example/tutorial07-2.log +0 -9
  342. data/vendor/local/share/groonga/doc/ja/source/example/tutorial07-3.log +0 -20
  343. data/vendor/local/share/groonga/doc/ja/source/example/tutorial07-4.log +0 -9
  344. data/vendor/local/share/groonga/doc/ja/source/example/tutorial08-1.log +0 -14
  345. data/vendor/local/share/groonga/doc/ja/source/example/tutorial10-1.log +0 -5
  346. data/vendor/local/share/groonga/doc/ja/source/example/tutorial10-10.log +0 -5
  347. data/vendor/local/share/groonga/doc/ja/source/example/tutorial10-2.log +0 -5
  348. data/vendor/local/share/groonga/doc/ja/source/example/tutorial10-3.log +0 -5
  349. data/vendor/local/share/groonga/doc/ja/source/example/tutorial10-4.log +0 -5
  350. data/vendor/local/share/groonga/doc/ja/source/example/tutorial10-5.log +0 -5
  351. data/vendor/local/share/groonga/doc/ja/source/example/tutorial10-6.log +0 -5
  352. data/vendor/local/share/groonga/doc/ja/source/example/tutorial10-7.log +0 -5
  353. data/vendor/local/share/groonga/doc/ja/source/example/tutorial10-8.log +0 -5
  354. data/vendor/local/share/groonga/doc/ja/source/example/tutorial10-9.log +0 -5
  355. data/vendor/local/share/groonga/doc/ja/source/execfile.txt +0 -226
  356. data/vendor/local/share/groonga/doc/ja/source/expr.txt +0 -43
  357. data/vendor/local/share/groonga/doc/ja/source/functions.txt +0 -10
  358. data/vendor/local/share/groonga/doc/ja/source/functions/edit_distance.txt +0 -48
  359. data/vendor/local/share/groonga/doc/ja/source/functions/geo_distance.txt +0 -51
  360. data/vendor/local/share/groonga/doc/ja/source/functions/geo_in_circle.txt +0 -54
  361. data/vendor/local/share/groonga/doc/ja/source/functions/geo_in_rectangle.txt +0 -55
  362. data/vendor/local/share/groonga/doc/ja/source/functions/now.txt +0 -34
  363. data/vendor/local/share/groonga/doc/ja/source/functions/rand.txt +0 -41
  364. data/vendor/local/share/groonga/doc/ja/source/grnslap.txt +0 -64
  365. data/vendor/local/share/groonga/doc/ja/source/grntest.txt +0 -259
  366. data/vendor/local/share/groonga/doc/ja/source/http.txt +0 -52
  367. data/vendor/local/share/groonga/doc/ja/source/index.txt +0 -21
  368. data/vendor/local/share/groonga/doc/ja/source/install.txt +0 -114
  369. data/vendor/local/share/groonga/doc/ja/source/news.txt +0 -199
  370. data/vendor/local/share/groonga/doc/ja/source/process.txt +0 -12
  371. data/vendor/local/share/groonga/doc/ja/source/pseudo_column.txt +0 -38
  372. data/vendor/local/share/groonga/doc/ja/source/rdoc.py +0 -762
  373. data/vendor/local/share/groonga/doc/ja/source/reference.txt +0 -14
  374. data/vendor/local/share/groonga/doc/ja/source/tutorial.txt +0 -10
  375. data/vendor/local/share/groonga/doc/ja/source/tutorial/tutorial01.txt +0 -293
  376. data/vendor/local/share/groonga/doc/ja/source/tutorial/tutorial02.txt +0 -100
  377. data/vendor/local/share/groonga/doc/ja/source/tutorial/tutorial03.txt +0 -72
  378. data/vendor/local/share/groonga/doc/ja/source/tutorial/tutorial04.txt +0 -111
  379. data/vendor/local/share/groonga/doc/ja/source/tutorial/tutorial05.txt +0 -65
  380. data/vendor/local/share/groonga/doc/ja/source/tutorial/tutorial06.txt +0 -91
  381. data/vendor/local/share/groonga/doc/ja/source/tutorial/tutorial07.txt +0 -92
  382. data/vendor/local/share/groonga/doc/ja/source/tutorial/tutorial08.txt +0 -53
  383. data/vendor/local/share/groonga/doc/ja/source/tutorial/tutorial09.txt +0 -9
  384. data/vendor/local/share/groonga/doc/ja/source/tutorial/tutorial10.txt +0 -486
  385. data/vendor/local/share/groonga/doc/ja/source/type.txt +0 -118
  386. data/vendor/local/share/groonga/doc/ja/source/update_execution_example.py +0 -113
  387. data/vendor/local/share/man/man1/groonga.1 +0 -5498
@@ -90,7 +90,7 @@ VALUE rb_cGrnPatriciaTrie;
90
90
  * ともでき、その場合は自動的にGroonga::Recordからレコード
91
91
  * IDを取得する。
92
92
  *
93
- * 省略した場合は文字列をキーとして使用する。この場合、
93
+ * 省略した場合はShortText型をキーとして使用する。この場合、
94
94
  * 4096バイトまで使用可能である。
95
95
  *
96
96
  * [+:value_type+]
@@ -206,7 +206,7 @@ rb_grn_patricia_trie_s_create (int argc, VALUE *argv, VALUE klass)
206
206
  flags |= GRN_OBJ_KEY_WITH_SIS;
207
207
 
208
208
  if (NIL_P(rb_key_type)) {
209
- flags |= GRN_OBJ_KEY_VAR_SIZE;
209
+ key_type = grn_ctx_at(context, GRN_DB_SHORT_TEXT);
210
210
  } else {
211
211
  key_type = RVAL2GRNOBJECT(rb_key_type, &context);
212
212
  }
@@ -221,7 +221,7 @@ rb_grn_patricia_trie_s_create (int argc, VALUE *argv, VALUE klass)
221
221
  flags, key_type, value_type);
222
222
  if (!table)
223
223
  rb_grn_context_check(context, rb_ary_new4(argc, argv));
224
- rb_table = GRNOBJECT2RVAL(klass, context, table, RB_GRN_TRUE);
224
+ rb_table = GRNOBJECT2RVAL(klass, context, table, GRN_TRUE);
225
225
 
226
226
  if (!NIL_P(rb_default_tokenizer))
227
227
  rb_funcall(rb_table, rb_intern("default_tokenizer="), 1,
@@ -252,17 +252,17 @@ rb_grn_patricia_trie_s_create (int argc, VALUE *argv, VALUE klass)
252
252
  *
253
253
  * [+:operator+]
254
254
  * マッチしたレコードをどのように扱うか。指定可能な値は以
255
- * 下の通り。省略した場合はGroonga::Operation::OR。
255
+ * 下の通り。省略した場合はGroonga::Operator::OR。
256
256
  *
257
- * [Groonga::Operation::OR]
257
+ * [Groonga::Operator::OR]
258
258
  * マッチしたレコードを追加。すでにレコードが追加され
259
259
  * ている場合は何もしない。
260
- * [Groonga::Operation::AND]
260
+ * [Groonga::Operator::AND]
261
261
  * マッチしたレコードのスコアを増加。マッチしなかった
262
262
  * レコードを削除。
263
- * [Groonga::Operation::BUT]
263
+ * [Groonga::Operator::BUT]
264
264
  * マッチしたレコードを削除。
265
- * [Groonga::Operation::ADJUST]
265
+ * [Groonga::Operator::ADJUST]
266
266
  * マッチしたレコードのスコアを増加。
267
267
  *
268
268
  * [+:type+]
@@ -289,7 +289,7 @@ rb_grn_patricia_trie_search (int argc, VALUE *argv, VALUE self)
289
289
  grn_obj *key, *domain, *result;
290
290
  grn_operator operator;
291
291
  grn_search_optarg search_options;
292
- rb_grn_boolean search_options_is_set = RB_GRN_FALSE;
292
+ grn_bool search_options_is_set = GRN_FALSE;
293
293
  VALUE rb_key, options, rb_result, rb_operator, rb_type;
294
294
 
295
295
  rb_grn_table_key_support_deconstruct(SELF(self), &table, &context,
@@ -312,7 +312,7 @@ rb_grn_patricia_trie_search (int argc, VALUE *argv, VALUE self)
312
312
  GRN_OBJ_TABLE_HASH_KEY | GRN_OBJ_WITH_SUBREC,
313
313
  table, 0);
314
314
  rb_grn_context_check(context, self);
315
- rb_result = GRNOBJECT2RVAL(Qnil, context, result, RB_GRN_TRUE);
315
+ rb_result = GRNOBJECT2RVAL(Qnil, context, result, GRN_TRUE);
316
316
  } else {
317
317
  result = RVAL2GRNOBJECT(rb_result, &context);
318
318
  }
@@ -381,7 +381,7 @@ rb_grn_patricia_trie_scan (VALUE self, VALUE rb_string)
381
381
  grn_pat_scan_hit hits[1024];
382
382
  const char *string;
383
383
  long string_length;
384
- rb_grn_boolean block_given;
384
+ grn_bool block_given;
385
385
 
386
386
  string = StringValuePtr(rb_string);
387
387
  string_length = RSTRING_LEN(rb_string);
@@ -459,7 +459,7 @@ rb_grn_patricia_trie_prefix_search (VALUE self, VALUE rb_prefix)
459
459
  GRN_OBJ_TABLE_HASH_KEY,
460
460
  table, 0);
461
461
  rb_grn_context_check(context, self);
462
- rb_result = GRNOBJECT2RVAL(Qnil, context, result, RB_GRN_TRUE);
462
+ rb_result = GRNOBJECT2RVAL(Qnil, context, result, GRN_TRUE);
463
463
 
464
464
  GRN_BULK_REWIND(key);
465
465
  RVAL2GRNKEY(rb_prefix, context, key, domain_id, domain, self);
@@ -0,0 +1,134 @@
1
+ /* -*- c-file-style: "ruby" -*- */
2
+ /*
3
+ Copyright (C) 2011 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
+
19
+ #include "rb-grn.h"
20
+
21
+ #define SELF(object) (RVAL2GRNCONTEXT(object))
22
+
23
+ static VALUE cGrnPlugin;
24
+
25
+ /*
26
+ * Document-class: Groonga::Plugin
27
+ *
28
+ * プラグイン。現在のところ、Rubyでgroongaのプラグインを作成
29
+ * することはできず、Cで作成された既存のプラグインを登録する
30
+ * ことができるだけです。
31
+ */
32
+
33
+ grn_id
34
+ rb_grn_plugin_from_ruby_object (VALUE object)
35
+ {
36
+ RbGrnPlugin *rb_grn_plugin;
37
+
38
+ if (!RVAL2CBOOL(rb_obj_is_kind_of(object, cGrnPlugin))) {
39
+ rb_raise(rb_eTypeError, "not a groonga plugin");
40
+ }
41
+
42
+ Data_Get_Struct(object, RbGrnPlugin, rb_grn_plugin);
43
+ if (!rb_grn_plugin)
44
+ rb_raise(rb_eGrnError, "groonga plugin is NULL");
45
+ return rb_grn_plugin->id;
46
+ }
47
+
48
+ void
49
+ rb_grn_plugin_fin (grn_id id)
50
+ {
51
+ }
52
+
53
+ static void
54
+ rb_grn_plugin_free (void *pointer)
55
+ {
56
+ RbGrnPlugin *rb_grn_plugin = pointer;
57
+
58
+ xfree(rb_grn_plugin);
59
+ }
60
+
61
+ static VALUE
62
+ rb_grn_plugin_alloc (VALUE klass)
63
+ {
64
+ return Data_Wrap_Struct(klass, NULL, rb_grn_plugin_free, NULL);
65
+ }
66
+
67
+ /*
68
+ * call-seq:
69
+ * Groonga::Plugin.register(name, options=nil)
70
+ * Groonga::Plugin.register({:path => path, :context => nil})
71
+ *
72
+ * 既存のプラグインをデータベースに登録する。
73
+ *
74
+ * _name_を指定した場合はその名前のプラグインを登録する。
75
+ *
76
+ * _path_を指定した場合はそのパスのプラグインを登録する。
77
+ *
78
+ * _options_にはハッシュでオプションを指定する。指定できるオ
79
+ * プションは以下の通り。
80
+ *
81
+ * [+:context+]
82
+ * データベースを結びつけるコンテキスト。省略すると
83
+ * Groonga::Context.defaultを利用する。
84
+ */
85
+ static VALUE
86
+ rb_grn_plugin_s_register (int argc, VALUE *argv, VALUE klass)
87
+ {
88
+ const char *name = NULL, *path = NULL;
89
+ VALUE rb_options, rb_name = Qnil, rb_path, rb_context;
90
+ grn_ctx *context;
91
+
92
+ if (argc >= 1) {
93
+ rb_name = rb_check_string_type(argv[0]);
94
+ }
95
+
96
+ if (NIL_P(rb_name)) {
97
+ rb_scan_args(argc, argv, "01", &rb_options);
98
+ rb_grn_scan_options(rb_options,
99
+ "path", &rb_path,
100
+ "context", &rb_context,
101
+ NULL);
102
+ path = StringValueCStr(rb_path);
103
+ } else {
104
+ rb_scan_args(argc, argv, "11", &rb_name, &rb_options);
105
+ rb_grn_scan_options(rb_options,
106
+ "context", &rb_context,
107
+ NULL);
108
+ name = StringValueCStr(rb_name);
109
+ }
110
+
111
+ if (NIL_P(rb_context)) {
112
+ rb_context = rb_grn_context_get_default();
113
+ }
114
+ context = RVAL2GRNCONTEXT(rb_context);
115
+
116
+ if (name) {
117
+ grn_plugin_register(context, name);
118
+ } else {
119
+ grn_plugin_register_by_path(context, path);
120
+ }
121
+
122
+ rb_grn_context_check(context, rb_ary_new4(argc, argv));
123
+ return Qnil;
124
+ }
125
+
126
+ void
127
+ rb_grn_init_plugin (VALUE mGrn)
128
+ {
129
+ cGrnPlugin = rb_define_class_under(mGrn, "Plugin", rb_cObject);
130
+ rb_define_alloc_func(cGrnPlugin, rb_grn_plugin_alloc);
131
+
132
+ rb_define_singleton_method(cGrnPlugin, "register",
133
+ rb_grn_plugin_s_register, -1);
134
+ }
@@ -34,7 +34,7 @@ rb_grn_procedure_from_ruby_object (VALUE object)
34
34
 
35
35
  VALUE
36
36
  rb_grn_procedure_to_ruby_object (grn_ctx *context, grn_obj *procedure,
37
- rb_grn_boolean owner)
37
+ grn_bool owner)
38
38
  {
39
39
  return GRNOBJECT2RVAL(rb_cGrnProcedure, context, procedure, owner);
40
40
  }
@@ -34,7 +34,7 @@ struct _RbGrnQuery
34
34
  {
35
35
  grn_ctx *context;
36
36
  grn_query *query;
37
- rb_grn_boolean owner;
37
+ grn_bool owner;
38
38
  };
39
39
 
40
40
  VALUE rb_cGrnQuery;
@@ -86,7 +86,7 @@ rb_grn_query_to_ruby_object (grn_ctx *context, grn_query *query)
86
86
  rb_grn_query = ALLOC(RbGrnQuery);
87
87
  rb_grn_query->context = context;
88
88
  rb_grn_query->query = query;
89
- rb_grn_query->owner = RB_GRN_FALSE;
89
+ rb_grn_query->owner = GRN_FALSE;
90
90
 
91
91
  return Data_Wrap_Struct(rb_cGrnQuery, NULL,
92
92
  rb_rb_grn_query_free, rb_grn_query);
@@ -146,10 +146,10 @@ rb_grn_operator_from_ruby_object (VALUE rb_operator)
146
146
  * 演算子の既定値(演算子を省略した場合にどの演算を行うか)
147
147
  * を指定する。
148
148
  *
149
- * [Groonga::Operation::OR]
150
- * [Groonga::Operation::AND]
151
- * [Groonga::Operation::BUT]
152
- * [Groonga::Operation::ADJUST]
149
+ * [Groonga::Operator::OR]
150
+ * [Groonga::Operator::AND]
151
+ * [Groonga::Operator::BUT]
152
+ * [Groonga::Operator::ADJUST]
153
153
  * (FIXME: 挙動の違いを検証する必要性あり?
154
154
  * Groonga::Expressionとの関連性は?)
155
155
  *
@@ -195,7 +195,7 @@ rb_grn_query_initialize (int argc, VALUE *argv, VALUE self)
195
195
  DATA_PTR(self) = rb_grn_query;
196
196
  rb_grn_query->context = context;
197
197
  rb_grn_query->query = query;
198
- rb_grn_query->owner = RB_GRN_TRUE;
198
+ rb_grn_query->owner = GRN_TRUE;
199
199
 
200
200
  rb_iv_set(self, "@context", rb_context);
201
201
 
@@ -25,7 +25,7 @@ struct _RbGrnSnippet
25
25
  {
26
26
  grn_ctx *context;
27
27
  grn_snip *snippet;
28
- rb_grn_boolean owner;
28
+ grn_bool owner;
29
29
  };
30
30
 
31
31
  VALUE rb_cGrnSnippet;
@@ -76,7 +76,7 @@ rb_rb_grn_snippet_free (void *object)
76
76
 
77
77
  VALUE
78
78
  rb_grn_snippet_to_ruby_object (grn_ctx *context, grn_snip *snippet,
79
- rb_grn_boolean owner)
79
+ grn_bool owner)
80
80
  {
81
81
  RbGrnSnippet *rb_grn_snippet;
82
82
 
@@ -201,7 +201,7 @@ rb_grn_snippet_initialize (int argc, VALUE *argv, VALUE self)
201
201
  DATA_PTR(self) = rb_grn_snippet;
202
202
  rb_grn_snippet->context = context;
203
203
  rb_grn_snippet->snippet = snippet;
204
- rb_grn_snippet->owner = RB_GRN_TRUE;
204
+ rb_grn_snippet->owner = GRN_TRUE;
205
205
 
206
206
  rb_iv_set(self, "@context", rb_context);
207
207
 
@@ -302,6 +302,7 @@ rb_grn_snippet_execute (VALUE self, VALUE rb_string)
302
302
 
303
303
  rc = grn_snip_exec(context, snippet, string, string_length,
304
304
  &n_results, &max_tagged_length);
305
+ rb_grn_context_check(context, self);
305
306
  rb_grn_rc_check(rc, self);
306
307
 
307
308
  rb_results = rb_ary_new2(n_results);
@@ -42,7 +42,7 @@ rb_grn_table_cursor_from_ruby_object (VALUE object, grn_ctx **context)
42
42
  VALUE
43
43
  rb_grn_table_cursor_to_ruby_object (VALUE klass, grn_ctx *context,
44
44
  grn_table_cursor *cursor,
45
- rb_grn_boolean owner)
45
+ grn_bool owner)
46
46
  {
47
47
  return GRNOBJECT2RVAL(klass, context, cursor, owner);
48
48
  }
@@ -457,23 +457,6 @@ rb_grn_table_key_support_get_column_value (int argc, VALUE *argv, VALUE self)
457
457
  return rb_grn_table_get_column_value_raw(self, id, rb_name);
458
458
  }
459
459
 
460
- /*
461
- * call-seq:
462
- * table.find(key) -> Groonga::Record
463
- *
464
- * テーブルの_key_に対応するレコードを返す。
465
- *
466
- * 0.9.0から非推奨。代わりにtable[key]を使うこと。
467
- */
468
- static VALUE
469
- rb_grn_table_key_support_find (VALUE self, VALUE rb_key)
470
- {
471
- rb_warn("#find is deprecated. Use #[] instead: %s",
472
- rb_grn_inspect(self));
473
-
474
- return rb_grn_table_key_support_array_reference(self, rb_key);
475
- }
476
-
477
460
  static VALUE
478
461
  rb_grn_table_key_support_get_value_by_key (VALUE self, VALUE rb_key)
479
462
  {
@@ -508,12 +491,12 @@ static VALUE
508
491
  rb_grn_table_key_support_get_value (int argc, VALUE *argv, VALUE self)
509
492
  {
510
493
  VALUE rb_id_or_key, rb_options;
511
- rb_grn_boolean use_key;
494
+ grn_bool use_key;
512
495
 
513
496
  rb_scan_args(argc, argv, "11", &rb_id_or_key, &rb_options);
514
497
 
515
498
  if (NIL_P(rb_options)) {
516
- use_key = RB_GRN_TRUE;
499
+ use_key = GRN_TRUE;
517
500
  } else {
518
501
  VALUE rb_option_id;
519
502
 
@@ -579,12 +562,12 @@ static VALUE
579
562
  rb_grn_table_key_support_set_value (int argc, VALUE *argv, VALUE self)
580
563
  {
581
564
  VALUE rb_id_or_key, rb_value, rb_options;
582
- rb_grn_boolean use_key;
565
+ grn_bool use_key;
583
566
 
584
567
  rb_scan_args(argc, argv, "21", &rb_id_or_key, &rb_value, &rb_options);
585
568
 
586
569
  if (NIL_P(rb_options)) {
587
- use_key = RB_GRN_TRUE;
570
+ use_key = GRN_TRUE;
588
571
  } else {
589
572
  VALUE rb_option_id;
590
573
 
@@ -625,7 +608,7 @@ rb_grn_table_key_support_get_default_tokenizer (VALUE self)
625
608
  NULL);
626
609
  rb_grn_context_check(context, self);
627
610
 
628
- return GRNOBJECT2RVAL(Qnil, context, tokenizer, RB_GRN_FALSE);
611
+ return GRNOBJECT2RVAL(Qnil, context, tokenizer, GRN_FALSE);
629
612
  }
630
613
 
631
614
  /*
@@ -691,6 +674,25 @@ rb_grn_table_key_support_normalize_key_p (VALUE self)
691
674
  return CBOOL2RVAL(table->header.flags & GRN_OBJ_KEY_NORMALIZE);
692
675
  }
693
676
 
677
+ /*
678
+ * call-seq:
679
+ * table.support_key? -> true/false
680
+ *
681
+ * テーブルでキーを使えるなら+true+、使えないなら+false+を返
682
+ * す。キーを使えないテーブルはGroonga::Arrayだけ。
683
+ */
684
+ static VALUE
685
+ rb_grn_table_key_support_support_key_p (VALUE self)
686
+ {
687
+ grn_obj *table;
688
+
689
+ rb_grn_table_key_support_deconstruct(SELF(self), &table, NULL,
690
+ NULL, NULL, NULL,
691
+ NULL, NULL, NULL,
692
+ NULL);
693
+ return table->header.domain == GRN_ID_NIL ? Qfalse : Qtrue;
694
+ }
695
+
694
696
  void
695
697
  rb_grn_init_table_key_support (VALUE mGrn)
696
698
  {
@@ -709,8 +711,6 @@ rb_grn_init_table_key_support (VALUE mGrn)
709
711
  rb_define_method(rb_mGrnTableKeySupport, "delete",
710
712
  rb_grn_table_key_support_delete, 1);
711
713
 
712
- rb_define_method(rb_mGrnTableKeySupport, "find",
713
- rb_grn_table_key_support_find, 1);
714
714
  rb_define_method(rb_mGrnTableKeySupport, "[]",
715
715
  rb_grn_table_key_support_array_reference, 1);
716
716
  rb_define_method(rb_mGrnTableKeySupport, "[]=",
@@ -733,4 +733,7 @@ rb_grn_init_table_key_support (VALUE mGrn)
733
733
 
734
734
  rb_define_method(rb_mGrnTableKeySupport, "normalize_key?",
735
735
  rb_grn_table_key_support_normalize_key_p, 0);
736
+
737
+ rb_define_method(rb_mGrnTableKeySupport, "support_key?",
738
+ rb_grn_table_key_support_support_key_p, 0);
736
739
  }
@@ -51,7 +51,7 @@ rb_grn_table_from_ruby_object (VALUE object, grn_ctx **context)
51
51
 
52
52
  VALUE
53
53
  rb_grn_table_to_ruby_object (grn_ctx *context, grn_obj *table,
54
- rb_grn_boolean owner)
54
+ grn_bool owner)
55
55
  {
56
56
  return GRNOBJECT2RVAL(Qnil, context, table, owner);
57
57
  }
@@ -75,6 +75,7 @@ rb_grn_table_bind (RbGrnTable *rb_grn_table,
75
75
  rb_grn_object = RB_GRN_OBJECT(rb_grn_table);
76
76
  rb_grn_table->value = grn_obj_open(context, GRN_BULK, 0,
77
77
  rb_grn_object->range_id);
78
+ rb_grn_table->columns = Qnil;
78
79
  rb_grn_table->columns = rb_ary_new();
79
80
  }
80
81
 
@@ -202,7 +203,7 @@ rb_grn_table_inspect_content (VALUE self, VALUE inspected)
202
203
 
203
204
  /*
204
205
  * call-seq:
205
- * _table_.inspect -> String
206
+ * table.inspect -> String
206
207
  *
207
208
  * テーブルの中身を人に見やすい文字列で返す。
208
209
  */
@@ -242,20 +243,14 @@ rb_grn_table_inspect (VALUE self)
242
243
  * カラムの値の格納方法について指定する。省略した場合は、
243
244
  * +:scalar+になる。
244
245
  *
245
- * [+:scalar+]
246
- * スカラ値(単独の値)を格納する。
247
- *
248
- * [+:vector+]
249
- * 値の配列を格納する。
246
+ * [+:scalar+] スカラ値(単独の値)を格納する。
247
+ * [+:vector+] 値の配列を格納する。
250
248
  *
251
249
  * [+:compress+]
252
250
  * 値の圧縮方法を指定する。省略した場合は、圧縮しない。
253
251
  *
254
- * [+:zlib+]
255
- * 値をzlib圧縮して格納する。
256
- *
257
- * [+:lzo+]
258
- * 値をlzo圧縮して格納する。
252
+ * [+:zlib+] 値をzlib圧縮して格納する。
253
+ * [+:lzo+] 値をlzo圧縮して格納する。
259
254
  */
260
255
  static VALUE
261
256
  rb_grn_table_define_column (int argc, VALUE *argv, VALUE self)
@@ -336,7 +331,7 @@ rb_grn_table_define_column (int argc, VALUE *argv, VALUE self)
336
331
  rb_ary_new3(2, self, rb_ary_new4(argc, argv)));
337
332
  }
338
333
 
339
- rb_column = GRNCOLUMN2RVAL(Qnil, context, column, RB_GRN_TRUE);
334
+ rb_column = GRNCOLUMN2RVAL(Qnil, context, column, GRN_TRUE);
340
335
  rb_ary_push(columns, rb_column);
341
336
  rb_grn_named_object_set_name(RB_GRN_NAMED_OBJECT(DATA_PTR(rb_column)),
342
337
  name, name_size);
@@ -344,6 +339,27 @@ rb_grn_table_define_column (int argc, VALUE *argv, VALUE self)
344
339
  return rb_column;
345
340
  }
346
341
 
342
+ static grn_bool
343
+ n_gram_tokenizer_p(grn_ctx *context, grn_obj *tokenizer)
344
+ {
345
+ char tokenizer_name[GRN_TABLE_MAX_KEY_SIZE];
346
+ int name_size;
347
+
348
+ name_size = grn_obj_name(context, tokenizer,
349
+ tokenizer_name, sizeof(tokenizer_name) - 1);
350
+ if (name_size == 0)
351
+ return GRN_FALSE;
352
+
353
+ tokenizer_name[name_size] = '\0';
354
+
355
+ #define HAVE_PREFIX_P(prefix) \
356
+ (strncmp(tokenizer_name, prefix, strlen(prefix)) == 0)
357
+ return (HAVE_PREFIX_P("TokenUnigram") ||
358
+ HAVE_PREFIX_P("TokenBigram") ||
359
+ HAVE_PREFIX_P("TokenTrigram"));
360
+ #undef HAVE_PREFIX_P
361
+ }
362
+
347
363
  /*
348
364
  * call-seq:
349
365
  * table.define_index_column(name, value_type, options={}) -> Groonga::IndexColumn
@@ -428,8 +444,14 @@ rb_grn_table_define_index_column (int argc, VALUE *argv, VALUE self)
428
444
  flags |= GRN_OBJ_PERSISTENT;
429
445
  }
430
446
 
431
- if (RVAL2CBOOL(rb_with_section))
447
+ if (NIL_P(rb_with_section)) {
448
+ if (TYPE(rb_sources) == T_ARRAY && RARRAY_LEN(rb_sources) > 1) {
449
+ flags |= GRN_OBJ_WITH_SECTION;
450
+ }
451
+ } else if (RVAL2CBOOL(rb_with_section)) {
432
452
  flags |= GRN_OBJ_WITH_SECTION;
453
+ }
454
+
433
455
 
434
456
  if (RVAL2CBOOL(rb_with_weight))
435
457
  flags |= GRN_OBJ_WITH_WEIGHT;
@@ -437,16 +459,12 @@ rb_grn_table_define_index_column (int argc, VALUE *argv, VALUE self)
437
459
  if (NIL_P(rb_with_position) &&
438
460
  (table->header.type == GRN_TABLE_HASH_KEY ||
439
461
  table->header.type == GRN_TABLE_PAT_KEY)) {
440
- grn_id tokenizer_id;
441
462
  grn_obj *tokenizer;
442
463
 
443
464
  tokenizer = grn_obj_get_info(context, table,
444
465
  GRN_INFO_DEFAULT_TOKENIZER,
445
466
  NULL);
446
- tokenizer_id = grn_obj_id(context, tokenizer);
447
- if ((tokenizer_id == GRN_DB_UNIGRAM) ||
448
- (tokenizer_id == GRN_DB_BIGRAM) ||
449
- (tokenizer_id == GRN_DB_TRIGRAM)) {
467
+ if (tokenizer && n_gram_tokenizer_p(context, tokenizer)) {
450
468
  rb_with_position = Qtrue;
451
469
  }
452
470
  }
@@ -463,7 +481,7 @@ rb_grn_table_define_index_column (int argc, VALUE *argv, VALUE self)
463
481
  rb_ary_new3(2, self, rb_ary_new4(argc, argv)));
464
482
  }
465
483
 
466
- rb_column = GRNCOLUMN2RVAL(Qnil, context, column, RB_GRN_TRUE);
484
+ rb_column = GRNCOLUMN2RVAL(Qnil, context, column, GRN_TRUE);
467
485
  if (!NIL_P(rb_source))
468
486
  rb_funcall(rb_column, rb_intern("source="), 1, rb_source);
469
487
  if (!NIL_P(rb_sources))
@@ -513,7 +531,7 @@ rb_grn_table_get_column (VALUE self, VALUE rb_name)
513
531
  grn_obj *column;
514
532
  const char *name = NULL;
515
533
  unsigned name_size = 0;
516
- rb_grn_boolean owner;
534
+ grn_bool owner;
517
535
  VALUE rb_column;
518
536
  VALUE columns;
519
537
  VALUE *raw_columns;
@@ -616,8 +634,10 @@ rb_grn_table_get_columns (int argc, VALUE *argv, VALUE self)
616
634
  rb_grn_context_check(context, self);
617
635
 
618
636
  rb_columns = rb_ary_new2(n);
619
- if (n == 0)
637
+ if (n == 0) {
638
+ grn_obj_unlink(context, columns);
620
639
  return rb_columns;
640
+ }
621
641
 
622
642
  cursor = grn_table_cursor_open(context, columns, NULL, 0, NULL, 0,
623
643
  0, -1, GRN_CURSOR_ASCENDING);
@@ -631,10 +651,11 @@ rb_grn_table_get_columns (int argc, VALUE *argv, VALUE self)
631
651
  grn_table_cursor_get_key(context, cursor, &key);
632
652
  column_id = key;
633
653
  column = grn_ctx_at(context, *column_id);
634
- rb_column = GRNOBJECT2RVAL(Qnil, context, column, RB_GRN_FALSE);
654
+ rb_column = GRNOBJECT2RVAL(Qnil, context, column, GRN_FALSE);
635
655
  rb_ary_push(rb_columns, rb_column);
636
656
  }
637
657
  rc = grn_table_cursor_close(context, cursor);
658
+ grn_obj_unlink(context, columns);
638
659
  if (rc != GRN_SUCCESS) {
639
660
  rb_grn_context_check(context, self);
640
661
  rb_grn_rc_check(rc, self);
@@ -657,7 +678,6 @@ rb_grn_table_have_column (VALUE self, VALUE rb_name)
657
678
  grn_obj *column;
658
679
  const char *name = NULL;
659
680
  unsigned name_size = 0;
660
- VALUE result = Qfalse;
661
681
 
662
682
  rb_grn_table_deconstruct(SELF(self), &table, &context,
663
683
  NULL, NULL,
@@ -666,14 +686,12 @@ rb_grn_table_have_column (VALUE self, VALUE rb_name)
666
686
 
667
687
  ruby_object_to_column_name(rb_name, &name, &name_size);
668
688
  column = grn_obj_column(context, table, name, name_size);
669
- if (!column)
689
+ if (column) {
690
+ grn_obj_unlink(context, column);
691
+ return Qtrue;
692
+ } else {
670
693
  return Qfalse;
671
-
672
- if (column->header.type != GRN_ACCESSOR)
673
- result = Qtrue;
674
- grn_obj_unlink(context, column);
675
-
676
- return result;
694
+ }
677
695
  }
678
696
 
679
697
  static grn_table_cursor *
@@ -773,7 +791,7 @@ rb_grn_table_open_grn_cursor (int argc, VALUE *argv, VALUE self,
773
791
  /*
774
792
  * call-seq:
775
793
  * table.open_cursor(options={}) -> Groonga::TableCursor
776
- * table.open_cursor(options={}) {|cursor| ... }
794
+ * table.open_cursor(options={}) {|cursor| }
777
795
  *
778
796
  * カーソルを生成して返す。ブロックを指定すると、そのブロッ
779
797
  * クに生成したカーソルが渡され、ブロックを抜けると自動的に
@@ -926,7 +944,7 @@ rb_grn_table_truncate (VALUE self)
926
944
 
927
945
  /*
928
946
  * call-seq:
929
- * table.each {|record| ...}
947
+ * table.each {|record| } -> nil
930
948
  *
931
949
  * テーブルに登録されているレコードを順番にブロックに渡す。
932
950
  */
@@ -1130,8 +1148,8 @@ rb_grn_table_sort (int argc, VALUE *argv, VALUE self)
1130
1148
 
1131
1149
  /*
1132
1150
  * call-seq:
1133
- * table.group(key, options={}) -> Groonga::Hash
1134
1151
  * table.group([key1, key2, ...], options={}) -> [Groonga::Hash, ...]
1152
+ * table.group(key, options={}) -> Groonga::Hash
1135
1153
  *
1136
1154
  * _table_のレコードを_key1_, _key2_, _..._で指定したキーの
1137
1155
  * 値でグループ化する。多くの場合、キーにはカラムを指定する。
@@ -1214,7 +1232,7 @@ rb_grn_table_group (int argc, VALUE *argv, VALUE self)
1214
1232
  results[i].flags = 0;
1215
1233
  results[i].op = GRN_OP_OR;
1216
1234
 
1217
- rb_result = GRNOBJECT2RVAL(Qnil, context, result, RB_GRN_TRUE);
1235
+ rb_result = GRNOBJECT2RVAL(Qnil, context, result, GRN_TRUE);
1218
1236
  rb_ary_push(rb_results, rb_result);
1219
1237
  }
1220
1238
 
@@ -1241,7 +1259,11 @@ rb_grn_table_group (int argc, VALUE *argv, VALUE self)
1241
1259
  VALUE
1242
1260
  rb_grn_table_array_reference (VALUE self, VALUE rb_id)
1243
1261
  {
1244
- return rb_grn_record_new_raw(self, rb_id, Qnil);
1262
+ if (FIXNUM_P(rb_id)) {
1263
+ return rb_grn_record_new_raw(self, rb_id, Qnil);
1264
+ } else {
1265
+ return Qnil;
1266
+ }
1245
1267
  }
1246
1268
 
1247
1269
  VALUE
@@ -1527,7 +1549,7 @@ rb_grn_table_unlock_ensure (VALUE self)
1527
1549
  *
1528
1550
  * call-seq:
1529
1551
  * table.lock(options={})
1530
- * table.lock(options={}) {...}
1552
+ * table.lock(options={}) {}
1531
1553
  *
1532
1554
  * _table_をロックする。ロックに失敗した場合は
1533
1555
  * Groonga::ResourceDeadlockAvoided例外が発生する。
@@ -1703,19 +1725,19 @@ rb_grn_table_is_locked (int argc, VALUE *argv, VALUE self)
1703
1725
  * 指定する。演算子は以下の通り。
1704
1726
  *
1705
1727
  * [なし]
1706
- * [カラム値] == [値]
1728
+ * \[カラム値] == [値]
1707
1729
  * [<tt>!</tt>]
1708
- * [カラム値] != [値]
1730
+ * \[カラム値] != [値]
1709
1731
  * [<tt><</tt>]
1710
- * [カラム値] < [値]
1732
+ * \[カラム値] < [値]
1711
1733
  * [<tt>></tt>]
1712
- * [カラム値] > [値]
1734
+ * \[カラム値] > [値]
1713
1735
  * [<tt><=</tt>]
1714
- * [カラム値] <= [値]
1736
+ * \[カラム値] <= [値]
1715
1737
  * [<tt>>=</tt>]
1716
- * [カラム値] >= [値]
1738
+ * \[カラム値] >= [値]
1717
1739
  * [<tt>@</tt>]
1718
- * [カラム値]が[値]を含んでいるかどうか
1740
+ * \[カラム値]が[値]を含んでいるかどうか
1719
1741
  *
1720
1742
  * 例:
1721
1743
  * "name:daijiro" # "name"カラムの値が"daijiro"のレコードにマッチ
@@ -1735,18 +1757,17 @@ rb_grn_table_is_locked (int argc, VALUE *argv, VALUE self)
1735
1757
  *
1736
1758
  * [+:operator+]
1737
1759
  * マッチしたレコードをどのように扱うか。指定可能な値は以
1738
- * 下の通り。省略した場合はGroonga::Operation::OR。
1739
- *
1740
- * [Groonga::Operation::OR]
1741
- * マッチしたレコードを追加。すでにレコードが追加され
1742
- * ている場合は何もしない。
1743
- * [Groonga::Operation::AND]
1744
- * マッチしたレコードのスコアを増加。マッチしなかった
1745
- * レコードを削除。
1746
- * [Groonga::Operation::BUT]
1747
- * マッチしたレコードを削除。
1748
- * [Groonga::Operation::ADJUST]
1749
- * マッチしたレコードのスコアを増加。
1760
+ * 下の通り。省略した場合はGroonga::Operator::OR。
1761
+ *
1762
+ * [Groonga::Operator::OR] マッチしたレコードを追加。すで
1763
+ * にレコードが追加されている場合
1764
+ * は何もしない。
1765
+ * [Groonga::Operator::AND] マッチしたレコードのスコアを増
1766
+ * 加。マッチしなかったレコード
1767
+ * を削除。
1768
+ * [Groonga::Operator::BUT] マッチしたレコードを削除。
1769
+ * [Groonga::Operator::ADJUST] マッチしたレコードのスコア
1770
+ * を増加。
1750
1771
  *
1751
1772
  * [+:result+]
1752
1773
  * 検索結果を格納するテーブル。マッチしたレコードが追加さ
@@ -1831,7 +1852,7 @@ rb_grn_table_select (int argc, VALUE *argv, VALUE self)
1831
1852
  GRN_TABLE_HASH_KEY | GRN_OBJ_WITH_SUBREC,
1832
1853
  table,
1833
1854
  NULL);
1834
- rb_result = GRNTABLE2RVAL(context, result, RB_GRN_TRUE);
1855
+ rb_result = GRNTABLE2RVAL(context, result, GRN_TRUE);
1835
1856
  } else {
1836
1857
  result = RVAL2GRNTABLE(rb_result, &context);
1837
1858
  }
@@ -1855,7 +1876,7 @@ rb_grn_table_select (int argc, VALUE *argv, VALUE self)
1855
1876
 
1856
1877
  rb_attr(rb_singleton_class(rb_result),
1857
1878
  rb_intern("expression"),
1858
- RB_GRN_TRUE, RB_GRN_FALSE, RB_GRN_FALSE);
1879
+ GRN_TRUE, GRN_FALSE, GRN_FALSE);
1859
1880
  rb_iv_set(rb_result, "@expression", rb_expression);
1860
1881
 
1861
1882
  return rb_result;
@@ -1942,6 +1963,19 @@ rb_grn_table_merge_bang (VALUE self, VALUE rb_other)
1942
1963
  return rb_grn_table_set_operation_bang(self, rb_other, GRN_OP_ADJUST);
1943
1964
  }
1944
1965
 
1966
+ /*
1967
+ * call-seq:
1968
+ * table.support_key? -> true/false
1969
+ *
1970
+ * _table_に主キーが設定されていれば+true+、されていなければ
1971
+ * +false+を返す。
1972
+ */
1973
+ static VALUE
1974
+ rb_grn_table_support_key_p (VALUE self)
1975
+ {
1976
+ return Qfalse;
1977
+ }
1978
+
1945
1979
  /*
1946
1980
  * call-seq:
1947
1981
  * table.support_sub_records? -> true/false
@@ -1962,6 +1996,29 @@ rb_grn_table_support_sub_records_p (VALUE self)
1962
1996
  return CBOOL2RVAL(table->header.flags & GRN_OBJ_WITH_SUBREC);
1963
1997
  }
1964
1998
 
1999
+ /*
2000
+ * call-seq:
2001
+ * table.exist?(id) -> true/false
2002
+ *
2003
+ * _table_に_id_で指定したIDのレコードが存在する場合は+true+、
2004
+ * 存在しない場合は+false+を返す。
2005
+ *
2006
+ * 注意: 実行には相応のコストがかかるのであまり頻繁に呼ばな
2007
+ * いようにして下さい。
2008
+ */
2009
+ static VALUE
2010
+ rb_grn_table_exist_p (VALUE self, VALUE id)
2011
+ {
2012
+ grn_ctx *context;
2013
+ grn_obj *table;
2014
+
2015
+ rb_grn_table_deconstruct(SELF(self), &table, &context,
2016
+ NULL, NULL,
2017
+ NULL, NULL, NULL,
2018
+ NULL);
2019
+ return CBOOL2RVAL(grn_table_at(context, table, NUM2UINT(id)));
2020
+ }
2021
+
1965
2022
  void
1966
2023
  rb_grn_init_table (VALUE mGrn)
1967
2024
  {
@@ -2029,9 +2086,13 @@ rb_grn_init_table (VALUE mGrn)
2029
2086
  rb_define_method(rb_cGrnTable, "merge!",
2030
2087
  rb_grn_table_merge_bang, 1);
2031
2088
 
2089
+ rb_define_method(rb_cGrnTable, "support_key?",
2090
+ rb_grn_table_support_key_p, 0);
2032
2091
  rb_define_method(rb_cGrnTable, "support_sub_records?",
2033
2092
  rb_grn_table_support_sub_records_p, 0);
2034
2093
 
2094
+ rb_define_method(rb_cGrnTable, "exist?", rb_grn_table_exist_p, 1);
2095
+
2035
2096
  rb_grn_init_table_key_support(mGrn);
2036
2097
  rb_grn_init_array(mGrn);
2037
2098
  rb_grn_init_hash(mGrn);