rroonga 0.9.4-x86-mingw32 → 0.9.5-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 (153) hide show
  1. data/NEWS.ja.rdoc +29 -0
  2. data/NEWS.rdoc +29 -0
  3. data/Rakefile +6 -6
  4. data/ext/groonga/rb-grn-array.c +1 -1
  5. data/ext/groonga/rb-grn-context.c +15 -28
  6. data/ext/groonga/rb-grn-exception.c +46 -1
  7. data/ext/groonga/rb-grn-expression.c +22 -13
  8. data/ext/groonga/rb-grn-fix-size-column.c +2 -8
  9. data/ext/groonga/rb-grn-hash.c +8 -1
  10. data/ext/groonga/rb-grn-object.c +1 -1
  11. data/ext/groonga/rb-grn-patricia-trie.c +23 -1
  12. data/ext/groonga/rb-grn-table-key-support.c +22 -0
  13. data/ext/groonga/rb-grn-table.c +37 -5
  14. data/ext/groonga/rb-grn-utils.c +20 -2
  15. data/ext/groonga/rb-grn.h +1 -1
  16. data/ext/groonga/rb-groonga.c +76 -38
  17. data/extconf.rb +17 -1
  18. data/html/developer.html +32 -7
  19. data/html/footer.html.erb +5 -0
  20. data/html/heading-mark.svg +393 -0
  21. data/html/index.html +33 -3
  22. data/lib/1.8/groonga.so +0 -0
  23. data/lib/1.9/groonga.so +0 -0
  24. data/lib/groonga.rb +3 -7
  25. data/lib/groonga/context.rb +2 -13
  26. data/lib/groonga/expression-builder.rb +273 -67
  27. data/lib/groonga/pagination.rb +143 -0
  28. data/lib/groonga/record.rb +2 -0
  29. data/lib/groonga/schema.rb +140 -29
  30. data/pkg/rroonga-0.9.5/NEWS.ja.rdoc +156 -0
  31. data/pkg/rroonga-0.9.5/NEWS.rdoc +158 -0
  32. data/pkg/rroonga-0.9.5/README.ja.rdoc +65 -0
  33. data/pkg/rroonga-0.9.5/README.rdoc +66 -0
  34. data/pkg/rroonga-0.9.5/text/TUTORIAL.ja.rdoc +394 -0
  35. data/pkg/rroonga-0.9.5/text/expression.rdoc +285 -0
  36. data/rroonga-build.rb +2 -2
  37. data/test-unit/Rakefile +40 -0
  38. data/test-unit/TODO +5 -0
  39. data/test-unit/bin/testrb +5 -0
  40. data/test-unit/html/classic.html +15 -0
  41. data/test-unit/html/index.html +25 -0
  42. data/test-unit/html/index.html.ja +27 -0
  43. data/test-unit/lib/test/unit.rb +323 -0
  44. data/test-unit/lib/test/unit/assertionfailederror.rb +25 -0
  45. data/test-unit/lib/test/unit/assertions.rb +1230 -0
  46. data/test-unit/lib/test/unit/attribute.rb +125 -0
  47. data/test-unit/lib/test/unit/autorunner.rb +360 -0
  48. data/test-unit/lib/test/unit/collector.rb +36 -0
  49. data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
  50. data/test-unit/lib/test/unit/collector/dir.rb +108 -0
  51. data/test-unit/lib/test/unit/collector/load.rb +144 -0
  52. data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
  53. data/test-unit/lib/test/unit/color-scheme.rb +102 -0
  54. data/test-unit/lib/test/unit/color.rb +96 -0
  55. data/test-unit/lib/test/unit/diff.rb +724 -0
  56. data/test-unit/lib/test/unit/error.rb +130 -0
  57. data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
  58. data/test-unit/lib/test/unit/failure.rb +136 -0
  59. data/test-unit/lib/test/unit/fixture.rb +176 -0
  60. data/test-unit/lib/test/unit/notification.rb +129 -0
  61. data/test-unit/lib/test/unit/omission.rb +191 -0
  62. data/test-unit/lib/test/unit/pending.rb +150 -0
  63. data/test-unit/lib/test/unit/priority.rb +180 -0
  64. data/test-unit/lib/test/unit/runner/console.rb +52 -0
  65. data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
  66. data/test-unit/lib/test/unit/runner/tap.rb +8 -0
  67. data/test-unit/lib/test/unit/testcase.rb +476 -0
  68. data/test-unit/lib/test/unit/testresult.rb +89 -0
  69. data/test-unit/lib/test/unit/testsuite.rb +110 -0
  70. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
  71. data/test-unit/lib/test/unit/ui/console/testrunner.rb +466 -0
  72. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +63 -0
  73. data/test-unit/lib/test/unit/ui/tap/testrunner.rb +92 -0
  74. data/test-unit/lib/test/unit/ui/testrunner.rb +28 -0
  75. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
  76. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  77. data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
  78. data/test-unit/lib/test/unit/util/method-owner-finder.rb +28 -0
  79. data/test-unit/lib/test/unit/util/observable.rb +90 -0
  80. data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
  81. data/test-unit/lib/test/unit/version.rb +7 -0
  82. data/test-unit/sample/adder.rb +13 -0
  83. data/test-unit/sample/subtracter.rb +12 -0
  84. data/test-unit/sample/test_adder.rb +20 -0
  85. data/test-unit/sample/test_subtracter.rb +20 -0
  86. data/test-unit/sample/test_user.rb +23 -0
  87. data/test-unit/test/collector/test-descendant.rb +133 -0
  88. data/test-unit/test/collector/test-load.rb +442 -0
  89. data/test-unit/test/collector/test_dir.rb +406 -0
  90. data/test-unit/test/collector/test_objectspace.rb +100 -0
  91. data/test-unit/test/run-test.rb +15 -0
  92. data/test-unit/test/test-attribute.rb +86 -0
  93. data/test-unit/test/test-color-scheme.rb +67 -0
  94. data/test-unit/test/test-color.rb +47 -0
  95. data/test-unit/test/test-diff.rb +518 -0
  96. data/test-unit/test/test-emacs-runner.rb +60 -0
  97. data/test-unit/test/test-fixture.rb +287 -0
  98. data/test-unit/test/test-notification.rb +33 -0
  99. data/test-unit/test/test-omission.rb +81 -0
  100. data/test-unit/test/test-pending.rb +70 -0
  101. data/test-unit/test/test-priority.rb +119 -0
  102. data/test-unit/test/test-testcase.rb +544 -0
  103. data/test-unit/test/test_assertions.rb +1151 -0
  104. data/test-unit/test/test_error.rb +26 -0
  105. data/test-unit/test/test_failure.rb +33 -0
  106. data/test-unit/test/test_testresult.rb +113 -0
  107. data/test-unit/test/test_testsuite.rb +129 -0
  108. data/test-unit/test/testunit-test-util.rb +14 -0
  109. data/test-unit/test/ui/test_testrunmediator.rb +20 -0
  110. data/test-unit/test/util/test-method-owner-finder.rb +38 -0
  111. data/test-unit/test/util/test_backtracefilter.rb +41 -0
  112. data/test-unit/test/util/test_observable.rb +102 -0
  113. data/test-unit/test/util/test_procwrapper.rb +36 -0
  114. data/test/groonga-test-utils.rb +3 -2
  115. data/test/run-test.rb +14 -2
  116. data/test/test-column.rb +7 -7
  117. data/test/test-context-select.rb +34 -11
  118. data/test/test-exception.rb +3 -0
  119. data/test/test-expression-builder.rb +11 -0
  120. data/test/test-expression.rb +3 -6
  121. data/test/test-gqtp.rb +3 -5
  122. data/test/test-pagination.rb +249 -0
  123. data/test/test-record.rb +36 -8
  124. data/test/test-remote.rb +11 -4
  125. data/test/test-schema-create-table.rb +251 -0
  126. data/test/test-schema.rb +4 -24
  127. data/test/test-table-offset-and-limit.rb +3 -5
  128. data/test/test-table-select-mecab.rb +80 -0
  129. data/test/test-table-select-weight.rb +104 -0
  130. data/test/test-table.rb +22 -4
  131. data/test/test-version.rb +1 -1
  132. data/text/TUTORIAL.ja.rdoc +2 -0
  133. data/text/expression.rdoc +1 -0
  134. data/vendor/local/bin/grntest.exe +0 -0
  135. data/vendor/local/bin/groonga.exe +0 -0
  136. data/vendor/local/bin/libgroonga-0.dll +0 -0
  137. data/vendor/local/include/{groonga.h → groonga/groonga.h} +93 -32
  138. data/vendor/local/lib/groonga/modules/functions/cast.dll +0 -0
  139. data/vendor/local/lib/groonga/modules/functions/cast.la +41 -0
  140. data/vendor/local/lib/pkgconfig/groonga.pc +12 -0
  141. data/vendor/local/share/groonga/admin_html/css/admin.css +104 -0
  142. data/vendor/local/share/groonga/admin_html/css/ui-lightness/jquery-ui-1.8.1.custom.css +486 -0
  143. data/vendor/local/share/groonga/admin_html/index.html +1355 -0
  144. data/vendor/local/share/groonga/admin_html/js/jquery-1.4.2.min.js +154 -0
  145. data/vendor/local/share/groonga/admin_html/js/jquery-ui-1.8.1.custom.min.js +756 -0
  146. data/vendor/local/share/groonga/munin/plugins/groonga_cpu_load +47 -0
  147. data/vendor/local/share/groonga/munin/plugins/groonga_cpu_time +57 -0
  148. data/vendor/local/share/groonga/munin/plugins/groonga_disk +162 -0
  149. data/vendor/local/share/groonga/munin/plugins/groonga_memory +51 -0
  150. data/vendor/local/share/groonga/munin/plugins/groonga_n_records +110 -0
  151. data/vendor/local/share/groonga/munin/plugins/groonga_query_performance +133 -0
  152. data/vendor/local/share/groonga/munin/plugins/groonga_status +84 -0
  153. metadata +126 -36
data/test/test-record.rb CHANGED
@@ -31,8 +31,8 @@ class RecordTest < Test::Unit::TestCase
31
31
  end
32
32
 
33
33
  def setup_users_table
34
- @users = Groonga::Array.create(:name => "Users")
35
- @users.define_column("name", "ShortText")
34
+ @users = Groonga::Hash.create(:name => "Users",
35
+ :key_type => "ShortText")
36
36
  @users.define_column("addresses", @addresses, :type => "vector")
37
37
  end
38
38
 
@@ -93,19 +93,47 @@ class RecordTest < Test::Unit::TestCase
93
93
 
94
94
  def test_set_object_id
95
95
  groonga = @bookmarks.add
96
- daijiro = @users.add
97
- daijiro["name"] = "daijiro"
96
+ daijiro = @users.add("daijiro")
98
97
  assert_nil(groonga["user"])
99
- groonga["user"] = daijiro.id
98
+ groonga["user"] = daijiro
100
99
  assert_equal(daijiro, groonga["user"])
101
100
  end
102
101
 
103
102
  def test_set_nil
104
- groonga = @bookmarks.add
103
+ groonga = @bookmarks.add(:content => "groonga")
104
+ assert_equal("groonga", groonga["content"])
105
105
  groonga["content"] = nil
106
106
  assert_nil(groonga["content"])
107
107
  end
108
108
 
109
+ def test_set_empty_string
110
+ groonga = @bookmarks.add(:content => "groonga")
111
+ assert_equal("groonga", groonga["content"])
112
+ groonga["content"] = ""
113
+ assert_nil(groonga["content"])
114
+ end
115
+
116
+ def test_set_nil_reference
117
+ groonga = @bookmarks.add(:user => "daijiro",
118
+ :uri => "http://groonga.org/")
119
+ groonga.user = nil
120
+ assert_nil(groonga.user)
121
+ end
122
+
123
+ def test_set_empty_key_reference
124
+ groonga = @bookmarks.add(:user => "daijiro",
125
+ :uri => "http://groonga.org/")
126
+ assert_equal(@users["daijiro"], groonga.user)
127
+ groonga["user"] = ""
128
+ assert_nil(groonga.user)
129
+ end
130
+
131
+ def test_set_string_to_integer_column
132
+ groonga = @bookmarks.add(:content => "groonga")
133
+ groonga.rate = "100"
134
+ assert_equal(100, groonga.rate)
135
+ end
136
+
109
137
  def test_delete
110
138
  bookmark1 = @bookmarks.add
111
139
  bookmark2 = @bookmarks.add
@@ -236,8 +264,8 @@ class RecordTest < Test::Unit::TestCase
236
264
  end
237
265
 
238
266
  def test_method_chain
239
- morita = @users.add(:name => "morita")
267
+ morita = @users.add("morita")
240
268
  groonga = @bookmarks.add(:user => morita, :uri => "http://groonga.org")
241
- assert_equal("morita", groonga.user.name)
269
+ assert_equal("morita", groonga.user.key)
242
270
  end
243
271
  end
data/test/test-remote.rb CHANGED
@@ -46,9 +46,16 @@ class RemoteTest < Test::Unit::TestCase
46
46
  assert_equal(0, _context.send("status"))
47
47
  id, result = _context.receive
48
48
  assert_equal(0, id)
49
- status, values = JSON.load(result)
50
- return_code, start_time, elapsed, = status
51
- assert_equal([0, ["alloc_count", "starttime", "uptime", "version"]],
52
- [return_code, values.keys.sort])
49
+ values = JSON.load(result)
50
+ assert_equal(["alloc_count", "starttime", "uptime", "version"],
51
+ values.keys.sort)
52
+ end
53
+
54
+ def test_invalid_select
55
+ context.connect(:host => @host, :port => @port)
56
+
57
+ assert_raise(Groonga::InvalidArgument) do
58
+ context.select("bogus", :query => "()()")
59
+ end
53
60
  end
54
61
  end
@@ -0,0 +1,251 @@
1
+ # Copyright (C) 2009-2010 Kouhei Sutou <kou@clear-code.com>
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License version 2.1 as published by the Free Software Foundation.
6
+ #
7
+ # This library is distributed in the hope that it will be useful,
8
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
9
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
+ # Lesser General Public License for more details.
11
+ #
12
+ # You should have received a copy of the GNU Lesser General Public
13
+ # License along with this library; if not, write to the Free Software
14
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15
+
16
+ module SchemaCreateTableTests
17
+ def test_normal
18
+ assert_nil(context["Posts"])
19
+ Groonga::Schema.create_table("Posts", options) do |table|
20
+ end
21
+ assert_not_nil(context["Posts"])
22
+ end
23
+
24
+ def test_force
25
+ Groonga::Schema.create_table("Posts", options) do |table|
26
+ table.string("name")
27
+ end
28
+ assert_not_nil(context["Posts.name"])
29
+
30
+ Groonga::Schema.create_table("Posts",
31
+ options(:type => differnt_type,
32
+ :force => true)) do |table|
33
+ end
34
+ assert_nil(context["Posts.name"])
35
+ end
36
+
37
+ def test_different_type
38
+ Groonga::Schema.create_table("Posts", options) do |table|
39
+ end
40
+
41
+ assert_raise(Groonga::Schema::TableCreationWithDifferentOptions) do
42
+ Groonga::Schema.create_table("Posts",
43
+ options(:type => differnt_type)) do |table|
44
+ end
45
+ end
46
+ end
47
+
48
+ def test_same_options
49
+ Groonga::Schema.create_table("Posts", options) do |table|
50
+ end
51
+
52
+ Groonga::Schema.create_table("Posts", options) do |table|
53
+ end
54
+ assert_not_nil(context["Posts"])
55
+ end
56
+
57
+ def test_same_value_type
58
+ Groonga::Schema.create_table("Posts",
59
+ options(:value_type => "UInt32")) do |table|
60
+ end
61
+
62
+ Groonga::Schema.create_table("Posts",
63
+ options(:value_type => "UInt32")) do |table|
64
+ end
65
+ assert_equal(context["UInt32"], context["Posts"].range)
66
+ end
67
+
68
+ def test_differnt_value_type
69
+ Groonga::Schema.create_table("Posts", options) do |table|
70
+ end
71
+
72
+ assert_raise(Groonga::Schema::TableCreationWithDifferentOptions) do
73
+ Groonga::Schema.create_table("Posts",
74
+ options(:value_type => "Int32")) do |table|
75
+ end
76
+ end
77
+ end
78
+
79
+ def test_same_sub_records
80
+ Groonga::Schema.create_table("Posts",
81
+ options(:sub_records => true)) do |table|
82
+ end
83
+
84
+ Groonga::Schema.create_table("Posts",
85
+ options(:sub_records => true)) do |table|
86
+ end
87
+ assert_true(context["Posts"].support_sub_records?)
88
+ end
89
+
90
+ def test_differnt_sub_records
91
+ Groonga::Schema.create_table("Posts",
92
+ options(:sub_records => true)) do |table|
93
+ end
94
+
95
+ assert_raise(Groonga::Schema::TableCreationWithDifferentOptions) do
96
+ Groonga::Schema.create_table("Posts",
97
+ options(:sub_records => false)) do |table|
98
+ end
99
+ end
100
+ end
101
+
102
+ private
103
+ def options(addional_options={})
104
+ default_options.merge(addional_options)
105
+ end
106
+ end
107
+
108
+ module SchemaCreateTableWithKeyTests
109
+ def test_same_key_type
110
+ Groonga::Schema.create_table("Posts",
111
+ options(:key_type => "ShortText")) do |table|
112
+ end
113
+
114
+ Groonga::Schema.create_table("Posts",
115
+ options(:key_type => "ShortText")) do |table|
116
+ end
117
+ assert_equal(context["ShortText"], context["Posts"].domain)
118
+ end
119
+
120
+ def test_differnt_key_type
121
+ Groonga::Schema.create_table("Posts", options) do |table|
122
+ end
123
+
124
+ assert_raise(Groonga::Schema::TableCreationWithDifferentOptions) do
125
+ Groonga::Schema.create_table("Posts",
126
+ options(:key_type => "ShortText")) do |table|
127
+ end
128
+ end
129
+ end
130
+
131
+ def test_same_default_tokenizer
132
+ _options = options(:key_type => "ShortText",
133
+ :default_tokenizer => "TokenBigram")
134
+ Groonga::Schema.create_table("Posts", _options) do |table|
135
+ end
136
+
137
+ Groonga::Schema.create_table("Posts", _options) do |table|
138
+ end
139
+ assert_equal(context["TokenBigram"], context["Posts"].default_tokenizer)
140
+ end
141
+
142
+ def test_differnt_default_tokenizer
143
+ _options = options(:key_type => "ShortText")
144
+ Groonga::Schema.create_table("Posts", _options) do |table|
145
+ end
146
+
147
+ _options = _options.merge(:default_tokenizer => "TokenBigram")
148
+ assert_raise(Groonga::Schema::TableCreationWithDifferentOptions) do
149
+ Groonga::Schema.create_table("Posts", _options) do |table|
150
+ end
151
+ end
152
+ end
153
+
154
+ def test_same_key_normalize
155
+ _options = options(:key_type => "ShortText",
156
+ :key_normalize => true)
157
+ Groonga::Schema.create_table("Posts", _options) do |table|
158
+ end
159
+
160
+ Groonga::Schema.create_table("Posts", _options) do |table|
161
+ end
162
+ assert_true(context["Posts"].normalize_key?)
163
+ end
164
+
165
+ def test_differnt_key_normalize
166
+ _options = options(:key_type => "ShortText",
167
+ :key_normalize => true)
168
+ Groonga::Schema.create_table("Posts", _options) do |table|
169
+ end
170
+
171
+ _options = _options.merge(:key_normalize => false)
172
+ assert_raise(Groonga::Schema::TableCreationWithDifferentOptions) do
173
+ Groonga::Schema.create_table("Posts", _options) do |table|
174
+ end
175
+ end
176
+ end
177
+ end
178
+
179
+ class SchemaCreateTableArrayTest < Test::Unit::TestCase
180
+ include GroongaTestUtils
181
+ include SchemaCreateTableTests
182
+
183
+ setup :setup_database
184
+
185
+ private
186
+ def default_options
187
+ {}
188
+ end
189
+
190
+ def differnt_type
191
+ :hash
192
+ end
193
+ end
194
+
195
+ class SchemaCreateTableHashTest < Test::Unit::TestCase
196
+ include GroongaTestUtils
197
+ include SchemaCreateTableTests
198
+ include SchemaCreateTableWithKeyTests
199
+
200
+ setup :setup_database
201
+
202
+ private
203
+ def default_options
204
+ {:type => :hash}
205
+ end
206
+
207
+ def differnt_type
208
+ :patricia_trie
209
+ end
210
+ end
211
+
212
+ class SchemaCreateTablePatriciaTrieTest < Test::Unit::TestCase
213
+ include GroongaTestUtils
214
+ include SchemaCreateTableTests
215
+ include SchemaCreateTableWithKeyTests
216
+
217
+ setup :setup_database
218
+
219
+ def test_same_key_with_sis
220
+ _options = options(:key_type => "ShortText",
221
+ :key_with_sis => true)
222
+ Groonga::Schema.create_table("Posts", _options) do |table|
223
+ end
224
+
225
+ Groonga::Schema.create_table("Posts", _options) do |table|
226
+ end
227
+ assert_true(context["Posts"].register_key_with_sis?)
228
+ end
229
+
230
+ def test_differnt_key_with_sis
231
+ _options = options(:key_type => "ShortText",
232
+ :key_with_sis => true)
233
+ Groonga::Schema.create_table("Posts", _options) do |table|
234
+ end
235
+
236
+ _options = _options.merge(:key_with_sis => false)
237
+ assert_raise(Groonga::Schema::TableCreationWithDifferentOptions) do
238
+ Groonga::Schema.create_table("Posts", _options) do |table|
239
+ end
240
+ end
241
+ end
242
+
243
+ private
244
+ def default_options
245
+ {:type => :patricia_trie}
246
+ end
247
+
248
+ def differnt_type
249
+ :array
250
+ end
251
+ end
data/test/test-schema.rb CHANGED
@@ -18,28 +18,6 @@ class SchemaTest < Test::Unit::TestCase
18
18
 
19
19
  setup :setup_database
20
20
 
21
- def test_create_table
22
- assert_nil(context["Posts"])
23
- Groonga::Schema.create_table("Posts") do |table|
24
- end
25
- assert_not_nil(context["Posts"])
26
- end
27
-
28
- def test_create_table_force
29
- Groonga::Schema.create_table("Posts") do |table|
30
- table.string("name")
31
- end
32
- assert_not_nil(context["Posts.name"])
33
-
34
- Groonga::Schema.create_table("Posts") do |table|
35
- end
36
- assert_not_nil(context["Posts.name"])
37
-
38
- Groonga::Schema.create_table("Posts", :force => true) do |table|
39
- end
40
- assert_nil(context["Posts.name"])
41
- end
42
-
43
21
  def test_remove_table
44
22
  Groonga::Array.create(:name => "Posts")
45
23
  assert_not_nil(context["Posts"])
@@ -266,7 +244,7 @@ class SchemaTest < Test::Unit::TestCase
266
244
  table.text :content
267
245
  end
268
246
 
269
- assert_raise(ArgumentError) do
247
+ assert_raise(Groonga::Schema::ColumnCreationWithDifferentOptions) do
270
248
  Groonga::Schema.create_table("Posts") do |table|
271
249
  table.integer :content
272
250
  end
@@ -341,7 +319,7 @@ class SchemaTest < Test::Unit::TestCase
341
319
  table.index "Posts.content"
342
320
  end
343
321
 
344
- assert_raise(ArgumentError) do
322
+ assert_raise(Groonga::Schema::ColumnCreationWithDifferentOptions) do
345
323
  Groonga::Schema.create_table("Terms") do |table|
346
324
  table.index "Posts.name", :name => "Posts_content"
347
325
  end
@@ -455,5 +433,7 @@ EOS
455
433
 
456
434
  assert_not_nil(context["Items.text"])
457
435
  assert_not_nil(context["TermsText.Items_text"])
436
+ assert_nil(Groonga::Context.default["Items.text"])
437
+ assert_nil(Groonga::Context.default["TermsText.Items_text"])
458
438
  end
459
439
  end
@@ -18,7 +18,7 @@ module TestOffsetAndLimitSupport
18
18
  assert_equal(((100 + 0)...200).to_a, ids(:offset => 0))
19
19
  assert_equal(((100 + 32)...200).to_a, ids(:offset => 32))
20
20
  assert_equal(((100 + 99)...200).to_a, ids(:offset => 99))
21
- assert_raise(Groonga::InvalidArgument) do
21
+ assert_raise(Groonga::TooLargeOffset) do
22
22
  ids(:offset => 100)
23
23
  end
24
24
  end
@@ -27,7 +27,7 @@ module TestOffsetAndLimitSupport
27
27
  assert_equal(((200 - 1)...200).to_a, ids(:offset => -1))
28
28
  assert_equal(((200 - 32)...200).to_a, ids(:offset => -32))
29
29
  assert_equal(((200 - 100)...200).to_a, ids(:offset => -100))
30
- assert_raise(Groonga::InvalidArgument) do
30
+ assert_raise(Groonga::TooSmallOffset) do
31
31
  ids(:offset => -101)
32
32
  end
33
33
  end
@@ -47,9 +47,7 @@ module TestOffsetAndLimitSupport
47
47
  assert_equal(all_ids[0..-1], ids(:limit => -1))
48
48
  assert_equal(all_ids[0..-32], ids(:limit => -32))
49
49
  assert_equal(all_ids[0..-100], ids(:limit => -100))
50
- assert_raise(Groonga::InvalidArgument) do
51
- ids(:offset => -101)
52
- end
50
+ assert_equal([], ids(:limit => -101))
53
51
  end
54
52
 
55
53
  private
@@ -0,0 +1,80 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2010 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
+ class TableSelectMecabTest < Test::Unit::TestCase
19
+ include GroongaTestUtils
20
+
21
+ setup :setup_database
22
+
23
+ setup
24
+ def check_mecab_availability
25
+ omit("MeCab isn't available") if context["TokenMecab"].nil?
26
+ end
27
+
28
+ setup
29
+ def setup_tables
30
+ Groonga::Schema.define do |schema|
31
+ schema.create_table("Users", :key_type => "ShortText") do |table|
32
+ end
33
+
34
+ schema.create_table("Comments", :type => :array) do |table|
35
+ table.short_text("title")
36
+ table.text("content")
37
+ table.time("created_at")
38
+ table.reference("user", "Users")
39
+ end
40
+
41
+ schema.create_table("Terms",
42
+ :type => :patricia_trie,
43
+ :default_tokenizer => "TokenMecab") do |table|
44
+ table.index("Comments.title", :with_section => true)
45
+ table.index("Comments.content", :with_section => true)
46
+ end
47
+ end
48
+ end
49
+
50
+ setup
51
+ def setup_comments
52
+ @comments = context["Comments"]
53
+ @hello = @comments.add(:title => "Hello",
54
+ :content => "Hello Good-bye!",
55
+ :created_at => Time.parse("2009-08-09"),
56
+ :user => "morita")
57
+ @hello_only_in_content =
58
+ @comments.add(:title => "(no title)",
59
+ :content => "Hello! Hello! Hello!",
60
+ :created_at => Time.parse("2009-07-09"))
61
+ @test = @comments.add(:title => "title",
62
+ :content => "test",
63
+ :created_at => Time.parse("2009-06-09"),
64
+ :user => "gunyara-kun")
65
+ @japanese =
66
+ @comments.add(:title => "日本語",
67
+ :content => "うちのボロTVはまだ現役です",
68
+ :created_at => Time.parse("2009-06-09"),
69
+ :user => "darashi")
70
+ end
71
+
72
+ def test_match
73
+ result = @comments.select do |record|
74
+ record.content =~ "ボロ"
75
+ end
76
+ assert_equal_select_result(["日本語"], result) do |record|
77
+ record.title
78
+ end
79
+ end
80
+ end