rroonga 1.2.4 → 1.2.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +134 -35
- data/bin/grndump +14 -0
- data/ext/groonga/Makefile +31 -31
- data/ext/groonga/extconf.rb +3 -4
- data/ext/groonga/rb-grn-context.c +48 -2
- data/ext/groonga/rb-grn-exception.c +14 -3
- data/ext/groonga/rb-grn-object.c +1 -1
- data/ext/groonga/rb-grn.h +3 -2
- data/lib/groonga/dumper.rb +6 -5
- data/lib/groonga/schema.rb +0 -4
- data/test/test-context.rb +7 -0
- data/test/test-database-dumper.rb +60 -0
- data/test/test-schema-create-table.rb +1 -23
- data/test/test-schema-dumper.rb +3 -3
- metadata +74 -76
- data/bug.rb +0 -36
- data/crash.rb +0 -17
data/Rakefile
CHANGED
@@ -22,6 +22,7 @@ require 'fileutils'
|
|
22
22
|
require 'pathname'
|
23
23
|
require 'erb'
|
24
24
|
require 'rubygems'
|
25
|
+
require 'rubygems/package_task'
|
25
26
|
require 'yard'
|
26
27
|
require 'jeweler'
|
27
28
|
require 'rake/extensiontask'
|
@@ -59,12 +60,12 @@ def cleanup_white_space(entry)
|
|
59
60
|
end
|
60
61
|
|
61
62
|
ENV["VERSION"] ||= guess_version(groonga_ext_dir)
|
62
|
-
version = ENV["VERSION"]
|
63
|
+
version = ENV["VERSION"].dup
|
63
64
|
spec = nil
|
64
65
|
Jeweler::Tasks.new do |_spec|
|
65
66
|
spec = _spec
|
66
67
|
spec.name = "rroonga"
|
67
|
-
spec.version = version
|
68
|
+
spec.version = version
|
68
69
|
spec.rubyforge_project = "groonga"
|
69
70
|
spec.homepage = "http://groonga.rubyforge.org/"
|
70
71
|
authors = File.join(base_dir, "AUTHORS")
|
@@ -92,9 +93,14 @@ Jeweler::Tasks.new do |_spec|
|
|
92
93
|
spec.test_files = FileList["test/**/*.rb"]
|
93
94
|
end
|
94
95
|
|
96
|
+
Rake::Task["release"].prerequisites.clear
|
95
97
|
Jeweler::RubygemsDotOrgTasks.new do
|
96
98
|
end
|
97
99
|
|
100
|
+
Gem::PackageTask.new(spec) do |pkg|
|
101
|
+
pkg.need_tar_gz = true
|
102
|
+
end
|
103
|
+
|
98
104
|
module YARD
|
99
105
|
module CodeObjects
|
100
106
|
class Proxy
|
@@ -117,10 +123,12 @@ module YARD
|
|
117
123
|
end
|
118
124
|
end
|
119
125
|
|
120
|
-
reference_base_dir = Pathname.new("doc/
|
126
|
+
reference_base_dir = Pathname.new("doc/reference")
|
121
127
|
doc_en_dir = reference_base_dir + "en"
|
128
|
+
html_base_dir = Pathname.new("doc/html")
|
129
|
+
html_reference_dir = html_base_dir + spec.name
|
122
130
|
YARD::Rake::YardocTask.new do |task|
|
123
|
-
task.options += ["--title",
|
131
|
+
task.options += ["--title", spec.name]
|
124
132
|
# task.options += ["--charset", "UTF-8"]
|
125
133
|
task.options += ["--readme", "README.textile"]
|
126
134
|
task.options += ["--files", "doc/text/**/*"]
|
@@ -185,31 +193,28 @@ end
|
|
185
193
|
|
186
194
|
include ERB::Util
|
187
195
|
|
188
|
-
def apply_template(
|
189
|
-
content =
|
190
|
-
content = content.sub(/lang="en"/, 'lang="#{language}"')
|
196
|
+
def apply_template(content, paths, templates, language)
|
197
|
+
content = content.sub(/lang="en"/, "lang=\"#{language}\"")
|
191
198
|
|
192
199
|
title = nil
|
193
200
|
content = content.sub(/<title>(.+?)<\/title>/m) do
|
194
201
|
title = $1
|
195
|
-
head.result(binding)
|
202
|
+
templates[:head].result(binding)
|
196
203
|
end
|
197
204
|
|
198
205
|
content = content.sub(/<body(?:.*?)>/) do |body_start|
|
199
|
-
"#{body_start}\n#{header.result(binding)}\n"
|
206
|
+
"#{body_start}\n#{templates[:header].result(binding)}\n"
|
200
207
|
end
|
201
208
|
|
202
209
|
content = content.sub(/<\/body/) do |body_end|
|
203
|
-
"\n#{footer.result(binding)}\n#{body_end}"
|
210
|
+
"\n#{templates[:footer].result(binding)}\n#{body_end}"
|
204
211
|
end
|
205
212
|
|
206
|
-
|
207
|
-
file.print(content)
|
208
|
-
end
|
213
|
+
content
|
209
214
|
end
|
210
215
|
|
211
216
|
def erb_template(name)
|
212
|
-
file = File.join("
|
217
|
+
file = File.join("doc/templates", "#{name}.html.erb")
|
213
218
|
template = File.read(file)
|
214
219
|
erb = ERB.new(template, nil, "-")
|
215
220
|
erb.filename = file
|
@@ -233,7 +238,7 @@ end
|
|
233
238
|
namespace :reference do
|
234
239
|
translate_languages = [:ja]
|
235
240
|
supported_languages = [:en, *translate_languages]
|
236
|
-
html_files = FileList["
|
241
|
+
html_files = FileList[doc_en_dir + "**/*.html"].to_a
|
237
242
|
|
238
243
|
directory reference_base_dir.to_s
|
239
244
|
CLOBBER.include(reference_base_dir.to_s)
|
@@ -314,50 +319,144 @@ namespace :reference do
|
|
314
319
|
namespace :publication do
|
315
320
|
task :prepare do
|
316
321
|
supported_languages.each do |language|
|
317
|
-
|
322
|
+
raw_reference_dir = reference_base_dir + language.to_s
|
323
|
+
prepared_reference_dir = html_reference_dir + language.to_s
|
324
|
+
rm_rf(prepared_reference_dir.to_s)
|
318
325
|
head = erb_template("head.#{language}")
|
319
326
|
header = erb_template("header.#{language}")
|
320
327
|
footer = erb_template("footer.#{language}")
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
328
|
+
raw_reference_dir.find do |path|
|
329
|
+
relative_path = path.relative_path_from(raw_reference_dir)
|
330
|
+
prepared_path = prepared_reference_dir + relative_path
|
331
|
+
if path.directory?
|
332
|
+
mkdir_p(prepared_path.to_s)
|
333
|
+
else
|
334
|
+
case path.basename.to_s
|
335
|
+
when /(?:file|method|class)_list\.html\z/
|
336
|
+
cp(path.to_s, prepared_path.to_s)
|
337
|
+
when /\.html\z/
|
338
|
+
relative_dir_path = relative_path.dirname
|
339
|
+
current_path = relative_dir_path + path.basename
|
340
|
+
if current_path.basename.to_s == "index.html"
|
341
|
+
current_path = current_path.dirname
|
342
|
+
end
|
343
|
+
top_path = html_base_dir.relative_path_from(prepared_path.dirname)
|
344
|
+
paths = {
|
345
|
+
:top => top_path,
|
346
|
+
:current => current_path,
|
347
|
+
}
|
348
|
+
templates = {
|
349
|
+
:head => head,
|
350
|
+
:header => header,
|
351
|
+
:footer => footer
|
352
|
+
}
|
353
|
+
content = apply_template(File.read(path.to_s),
|
354
|
+
paths,
|
355
|
+
templates,
|
356
|
+
language)
|
357
|
+
File.open(prepared_path.to_s, "w") do |file|
|
358
|
+
file.print(content)
|
359
|
+
end
|
360
|
+
else
|
361
|
+
cp(path.to_s, prepared_path.to_s)
|
362
|
+
end
|
331
363
|
end
|
332
364
|
end
|
333
365
|
end
|
334
|
-
File.open("#{
|
335
|
-
file.puts("Redirect permanent /
|
336
|
-
"
|
337
|
-
file.puts("RedirectMatch permanent
|
338
|
-
"
|
366
|
+
File.open("#{html_reference_dir}/.htaccess", "w") do |file|
|
367
|
+
file.puts("Redirect permanent /#{spec.name}/text/TUTORIAL_ja_rdoc.html " +
|
368
|
+
"#{spec.homepage}#{spec.name}/ja/file.tutorial.html")
|
369
|
+
file.puts("RedirectMatch permanent ^/#{spec.name}/$ " +
|
370
|
+
"#{spec.homepage}#{spec.name}/en/")
|
339
371
|
end
|
340
372
|
end
|
341
373
|
end
|
342
374
|
|
343
375
|
desc "Upload document to rubyforge."
|
344
376
|
task :publish => [:generate, "reference:publication:prepare"] do
|
345
|
-
rsync_to_rubyforge(spec, "#{
|
346
|
-
:delete => true)
|
377
|
+
rsync_to_rubyforge(spec, "#{html_reference_dir}/", spec.name)
|
347
378
|
end
|
348
379
|
end
|
349
380
|
|
350
381
|
namespace :html do
|
351
382
|
desc "Publish HTML to Web site."
|
352
383
|
task :publish do
|
353
|
-
rsync_to_rubyforge(spec, "
|
384
|
+
rsync_to_rubyforge(spec, "#{html_base_dir}/", "")
|
354
385
|
end
|
355
386
|
end
|
356
387
|
|
357
388
|
desc "Upload document and HTML to rubyforge."
|
358
|
-
task :publish => ["
|
389
|
+
task :publish => ["html:publish", "reference:publish"]
|
359
390
|
|
360
391
|
desc "Tag the current revision."
|
361
392
|
task :tag do
|
362
393
|
sh("git tag -a #{version} -m 'release #{version}!!!'")
|
363
394
|
end
|
395
|
+
|
396
|
+
namespace :release do
|
397
|
+
namespace :info do
|
398
|
+
desc "update version in index HTML."
|
399
|
+
task :update do
|
400
|
+
old_version = ENV["OLD_VERSION"]
|
401
|
+
old_release_date = ENV["OLD_RELEASE_DATE"]
|
402
|
+
new_release_date = ENV["RELEASE_DATE"] || Time.now.strftime("%Y-%m-%d")
|
403
|
+
new_version = ENV["VERSION"]
|
404
|
+
|
405
|
+
empty_options = []
|
406
|
+
empty_options << "OLD_VERSION" if old_version.nil?
|
407
|
+
empty_options << "OLD_RELEASE_DATE" if old_release_date.nil?
|
408
|
+
|
409
|
+
unless empty_options.empty?
|
410
|
+
raise ArgumentError, "Specify option(s) of #{empty_options.join(",")}."
|
411
|
+
end
|
412
|
+
|
413
|
+
indexes = ["doc/html/index.html", "doc/html/index.html.ja"]
|
414
|
+
indexes.each do |index|
|
415
|
+
content = replaced_content = File.read(index)
|
416
|
+
[[old_version, new_version],
|
417
|
+
[old_release_date, new_release_date]].each do |old, new|
|
418
|
+
replaced_content = replaced_content.gsub(/#{Regexp.escape(old)}/, new)
|
419
|
+
if /\./ =~ old
|
420
|
+
old_undnerscore = old.gsub(/\./, '-')
|
421
|
+
new_underscore = new.gsub(/\./, '-')
|
422
|
+
replaced_content =
|
423
|
+
replaced_content.gsub(/#{Regexp.escape(old_underscore)}/,
|
424
|
+
new_underscore)
|
425
|
+
end
|
426
|
+
end
|
427
|
+
|
428
|
+
next if replaced_content == content
|
429
|
+
File.open(index, "w") do |output|
|
430
|
+
output.print(replaced_content)
|
431
|
+
end
|
432
|
+
end
|
433
|
+
end
|
434
|
+
end
|
435
|
+
|
436
|
+
namespace :rubyforge do
|
437
|
+
desc "Upload tar.gz to RubyForge."
|
438
|
+
task :upload => "package" do
|
439
|
+
ruby("-S", "rubyforge",
|
440
|
+
"add_release",
|
441
|
+
spec.rubyforge_project,
|
442
|
+
spec.name,
|
443
|
+
spec.version.to_s,
|
444
|
+
"pkg/#{spec.name}-#{spec.version}.tar.gz")
|
445
|
+
end
|
446
|
+
end
|
447
|
+
|
448
|
+
desc "Release to RubyForge."
|
449
|
+
task :rubyforge => "release:rubyforge:upload"
|
450
|
+
end
|
451
|
+
|
452
|
+
namespace :test do
|
453
|
+
task :install do
|
454
|
+
gemspec_helper = Rake.application.jeweler.gemspec_helper
|
455
|
+
ruby("-S gem install --user-install #{gemspec_helper.gem_path}")
|
456
|
+
|
457
|
+
gem_spec = Gem.source_index.find_name("rroonga").last
|
458
|
+
installed_path = gem_spec.full_gem_path
|
459
|
+
ENV["NO_MAKE"] = "yes"
|
460
|
+
ruby("-rubygems", "#{installed_path}/test/run-test.rb")
|
461
|
+
end
|
462
|
+
end
|
data/bin/grndump
CHANGED
@@ -24,6 +24,7 @@ require 'groonga'
|
|
24
24
|
|
25
25
|
options = OpenStruct.new
|
26
26
|
options.tables = []
|
27
|
+
options.exclude_tables = []
|
27
28
|
options.dump_schema = true
|
28
29
|
options.dump_tables = true
|
29
30
|
option_parser = OptionParser.new do |parser|
|
@@ -50,6 +51,18 @@ option_parser = OptionParser.new do |parser|
|
|
50
51
|
options.tables << table
|
51
52
|
end
|
52
53
|
end
|
54
|
+
|
55
|
+
parser.on("--exclude-table=TABLE",
|
56
|
+
"don't dump TABLE.",
|
57
|
+
"use this option multiple to not dump multiple tables.",
|
58
|
+
"use /.../ as TABLE to match table name with regexp.") do |table|
|
59
|
+
case table
|
60
|
+
when /\A\/(.*)\/(i)?\z/
|
61
|
+
options.exclude_tables << Regexp.new($1, $2 == "i")
|
62
|
+
when
|
63
|
+
options.exclude_tables << table
|
64
|
+
end
|
65
|
+
end
|
53
66
|
end
|
54
67
|
args = option_parser.parse!(ARGV)
|
55
68
|
|
@@ -66,6 +79,7 @@ dumper_options = {
|
|
66
79
|
:dump_schema => options.dump_schema,
|
67
80
|
:dump_tables => options.dump_tables,
|
68
81
|
:tables => options.tables,
|
82
|
+
:exclude_tables => options.exclude_tables,
|
69
83
|
}
|
70
84
|
database_dumper = Groonga::DatabaseDumper.new(dumper_options)
|
71
85
|
database_dumper.dump
|
data/ext/groonga/Makefile
CHANGED
@@ -57,12 +57,12 @@ cflags = $(optflags) $(debugflags) $(warnflags)
|
|
57
57
|
optflags = -O3
|
58
58
|
debugflags = -ggdb
|
59
59
|
warnflags = -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long
|
60
|
-
CFLAGS = -fPIC -fno-strict-aliasing -g -g -O2 -fPIC -Wall -I/
|
60
|
+
CFLAGS = -fPIC -fno-strict-aliasing -g -g -O2 -fPIC -Wall -I/tmp/local/include/groonga
|
61
61
|
INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
|
62
62
|
DEFS =
|
63
|
-
CPPFLAGS = -DRB_GRN_COMPILATION -DGRN_MAJOR_VERSION=1 -DGRN_MINOR_VERSION=2 -DGRN_MICRO_VERSION=
|
63
|
+
CPPFLAGS = -DRB_GRN_COMPILATION -DGRN_MAJOR_VERSION=1 -DGRN_MINOR_VERSION=2 -DGRN_MICRO_VERSION=1 -DHAVE_RB_ERRINFO -DHAVE_TYPE_ENUM_RUBY_VALUE_TYPE $(DEFS) $(cppflags)
|
64
64
|
CXXFLAGS = $(CFLAGS) -fno-strict-aliasing -g
|
65
|
-
ldflags = -L. -rdynamic -Wl,-export-dynamic -L/
|
65
|
+
ldflags = -L. -rdynamic -Wl,-export-dynamic -L/tmp/local/lib
|
66
66
|
dldflags =
|
67
67
|
ARCH_FLAG =
|
68
68
|
DLDFLAGS = $(ldflags) $(dldflags)
|
@@ -105,8 +105,8 @@ extout_prefix =
|
|
105
105
|
target_prefix =
|
106
106
|
LOCAL_LIBS =
|
107
107
|
LIBS = $(LIBRUBYARG_SHARED) -lgroonga -lpthread -lrt -ldl -lcrypt -lm -lc
|
108
|
-
SRCS = rb-grn-
|
109
|
-
OBJS = rb-grn-
|
108
|
+
SRCS = rb-grn-exception.c rb-grn-view-accessor.c rb-grn-hash-cursor.c rb-grn-query.c rb-grn-record.c rb-grn-variable.c rb-grn-view.c rb-grn-table-cursor-key-support.c rb-grn-fix-size-column.c rb-grn-context.c rb-grn-plugin.c rb-grn-hash.c rb-grn-variable-size-column.c rb-grn-index-column.c rb-grn-operator.c rb-grn-table-key-support.c rb-grn-patricia-trie.c rb-grn-table-cursor.c rb-grn-object.c rb-grn-table.c rb-grn-procedure.c rb-grn-snippet.c rb-grn-encoding-support.c rb-grn-view-record.c rb-grn-patricia-trie-cursor.c rb-grn-array.c rb-grn-database.c rb-grn-view-cursor.c rb-grn-column.c rb-grn-index-cursor.c rb-grn-type.c rb-grn-accessor.c rb-grn-posting.c rb-groonga.c rb-grn-array-cursor.c rb-grn-utils.c rb-grn-logger.c rb-grn-expression.c rb-grn-encoding.c rb-grn-expression-builder.c
|
109
|
+
OBJS = rb-grn-exception.o rb-grn-view-accessor.o rb-grn-hash-cursor.o rb-grn-query.o rb-grn-record.o rb-grn-variable.o rb-grn-view.o rb-grn-table-cursor-key-support.o rb-grn-fix-size-column.o rb-grn-context.o rb-grn-plugin.o rb-grn-hash.o rb-grn-variable-size-column.o rb-grn-index-column.o rb-grn-operator.o rb-grn-table-key-support.o rb-grn-patricia-trie.o rb-grn-table-cursor.o rb-grn-object.o rb-grn-table.o rb-grn-procedure.o rb-grn-snippet.o rb-grn-encoding-support.o rb-grn-view-record.o rb-grn-patricia-trie-cursor.o rb-grn-array.o rb-grn-database.o rb-grn-view-cursor.o rb-grn-column.o rb-grn-index-cursor.o rb-grn-type.o rb-grn-accessor.o rb-grn-posting.o rb-groonga.o rb-grn-array-cursor.o rb-grn-utils.o rb-grn-logger.o rb-grn-expression.o rb-grn-encoding.o rb-grn-expression-builder.o
|
110
110
|
TARGET = groonga
|
111
111
|
DLLIB = $(TARGET).so
|
112
112
|
EXTSTATIC =
|
@@ -154,54 +154,54 @@ install-rb: pre-install-rb install-rb-default
|
|
154
154
|
install-rb-default: pre-install-rb-default
|
155
155
|
pre-install-rb: Makefile
|
156
156
|
pre-install-rb-default: Makefile
|
157
|
-
pre-install-rb: $(RUBYLIBDIR)
|
158
|
-
install-rb: $(RUBYLIBDIR)/groonga
|
159
|
-
$(RUBYLIBDIR)/groonga
|
157
|
+
pre-install-rb: $(RUBYLIBDIR)
|
158
|
+
install-rb: $(RUBYLIBDIR)/groonga.rb
|
159
|
+
$(RUBYLIBDIR)/groonga.rb: $(srcdir)/../../lib/groonga.rb
|
160
160
|
@-$(MAKEDIRS) $(@D)
|
161
|
-
$(INSTALL_DATA) $(srcdir)/../../lib/groonga
|
162
|
-
install-rb: $(RUBYLIBDIR)/groonga
|
163
|
-
|
161
|
+
$(INSTALL_DATA) $(srcdir)/../../lib/groonga.rb $(@D)
|
162
|
+
pre-install-rb: $(RUBYLIBDIR)/groonga
|
163
|
+
install-rb: $(RUBYLIBDIR)/groonga/record.rb
|
164
|
+
$(RUBYLIBDIR)/groonga/record.rb: $(srcdir)/../../lib/groonga/record.rb
|
164
165
|
@-$(MAKEDIRS) $(@D)
|
165
|
-
$(INSTALL_DATA) $(srcdir)/../../lib/groonga/
|
166
|
+
$(INSTALL_DATA) $(srcdir)/../../lib/groonga/record.rb $(@D)
|
166
167
|
install-rb: $(RUBYLIBDIR)/groonga/view-record.rb
|
167
168
|
$(RUBYLIBDIR)/groonga/view-record.rb: $(srcdir)/../../lib/groonga/view-record.rb
|
168
169
|
@-$(MAKEDIRS) $(@D)
|
169
170
|
$(INSTALL_DATA) $(srcdir)/../../lib/groonga/view-record.rb $(@D)
|
170
|
-
install-rb: $(RUBYLIBDIR)/groonga/
|
171
|
-
$(RUBYLIBDIR)/groonga/
|
171
|
+
install-rb: $(RUBYLIBDIR)/groonga/context.rb
|
172
|
+
$(RUBYLIBDIR)/groonga/context.rb: $(srcdir)/../../lib/groonga/context.rb
|
172
173
|
@-$(MAKEDIRS) $(@D)
|
173
|
-
$(INSTALL_DATA) $(srcdir)/../../lib/groonga/
|
174
|
-
install-rb: $(RUBYLIBDIR)/groonga/
|
175
|
-
$(RUBYLIBDIR)/groonga/
|
174
|
+
$(INSTALL_DATA) $(srcdir)/../../lib/groonga/context.rb $(@D)
|
175
|
+
install-rb: $(RUBYLIBDIR)/groonga/pagination.rb
|
176
|
+
$(RUBYLIBDIR)/groonga/pagination.rb: $(srcdir)/../../lib/groonga/pagination.rb
|
176
177
|
@-$(MAKEDIRS) $(@D)
|
177
|
-
$(INSTALL_DATA) $(srcdir)/../../lib/groonga/
|
178
|
+
$(INSTALL_DATA) $(srcdir)/../../lib/groonga/pagination.rb $(@D)
|
179
|
+
install-rb: $(RUBYLIBDIR)/groonga/schema.rb
|
180
|
+
$(RUBYLIBDIR)/groonga/schema.rb: $(srcdir)/../../lib/groonga/schema.rb
|
181
|
+
@-$(MAKEDIRS) $(@D)
|
182
|
+
$(INSTALL_DATA) $(srcdir)/../../lib/groonga/schema.rb $(@D)
|
178
183
|
install-rb: $(RUBYLIBDIR)/groonga/posting.rb
|
179
184
|
$(RUBYLIBDIR)/groonga/posting.rb: $(srcdir)/../../lib/groonga/posting.rb
|
180
185
|
@-$(MAKEDIRS) $(@D)
|
181
186
|
$(INSTALL_DATA) $(srcdir)/../../lib/groonga/posting.rb $(@D)
|
182
|
-
install-rb: $(RUBYLIBDIR)/groonga/
|
183
|
-
$(RUBYLIBDIR)/groonga/
|
184
|
-
@-$(MAKEDIRS) $(@D)
|
185
|
-
$(INSTALL_DATA) $(srcdir)/../../lib/groonga/context.rb $(@D)
|
186
|
-
install-rb: $(RUBYLIBDIR)/groonga/record.rb
|
187
|
-
$(RUBYLIBDIR)/groonga/record.rb: $(srcdir)/../../lib/groonga/record.rb
|
187
|
+
install-rb: $(RUBYLIBDIR)/groonga/patricia-trie.rb
|
188
|
+
$(RUBYLIBDIR)/groonga/patricia-trie.rb: $(srcdir)/../../lib/groonga/patricia-trie.rb
|
188
189
|
@-$(MAKEDIRS) $(@D)
|
189
|
-
$(INSTALL_DATA) $(srcdir)/../../lib/groonga/
|
190
|
+
$(INSTALL_DATA) $(srcdir)/../../lib/groonga/patricia-trie.rb $(@D)
|
190
191
|
install-rb: $(RUBYLIBDIR)/groonga/expression-builder.rb
|
191
192
|
$(RUBYLIBDIR)/groonga/expression-builder.rb: $(srcdir)/../../lib/groonga/expression-builder.rb
|
192
193
|
@-$(MAKEDIRS) $(@D)
|
193
194
|
$(INSTALL_DATA) $(srcdir)/../../lib/groonga/expression-builder.rb $(@D)
|
194
|
-
|
195
|
-
|
196
|
-
$(RUBYLIBDIR)/groonga.rb: $(srcdir)/../../lib/groonga.rb
|
195
|
+
install-rb: $(RUBYLIBDIR)/groonga/dumper.rb
|
196
|
+
$(RUBYLIBDIR)/groonga/dumper.rb: $(srcdir)/../../lib/groonga/dumper.rb
|
197
197
|
@-$(MAKEDIRS) $(@D)
|
198
|
-
$(INSTALL_DATA) $(srcdir)/../../lib/groonga.rb $(@D)
|
198
|
+
$(INSTALL_DATA) $(srcdir)/../../lib/groonga/dumper.rb $(@D)
|
199
199
|
$(RUBYARCHDIR):
|
200
200
|
$(MAKEDIRS) $@
|
201
|
-
$(RUBYLIBDIR)/groonga:
|
202
|
-
$(MAKEDIRS) $@
|
203
201
|
$(RUBYLIBDIR):
|
204
202
|
$(MAKEDIRS) $@
|
203
|
+
$(RUBYLIBDIR)/groonga:
|
204
|
+
$(MAKEDIRS) $@
|
205
205
|
|
206
206
|
site-install: site-install-so site-install-rb
|
207
207
|
site-install-so: install-so
|
data/ext/groonga/extconf.rb
CHANGED
@@ -130,10 +130,9 @@ unless PKGConfig.have_package(package_name, major, minor, micro)
|
|
130
130
|
unless have_local_groonga?(package_name, major, minor, micro)
|
131
131
|
install_groonga_locally(major, minor, micro)
|
132
132
|
end
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
have_local_groonga?(package_name, major, minor, micro) or exit 1
|
133
|
+
unless PKGConfig.have_package(package_name, major, minor, micro)
|
134
|
+
exit(false)
|
135
|
+
end
|
137
136
|
add_rpath_for_local_groonga
|
138
137
|
end
|
139
138
|
|
@@ -53,6 +53,9 @@ rb_grn_context_from_ruby_object (VALUE object)
|
|
53
53
|
Data_Get_Struct(object, RbGrnContext, rb_grn_context);
|
54
54
|
if (!rb_grn_context)
|
55
55
|
rb_raise(rb_eGrnError, "groonga context is NULL");
|
56
|
+
if (!rb_grn_context->context)
|
57
|
+
rb_raise(rb_eGrnClosed,
|
58
|
+
"can't access already closed groonga context");
|
56
59
|
return rb_grn_context->context;
|
57
60
|
}
|
58
61
|
|
@@ -88,7 +91,7 @@ rb_grn_context_free (void *pointer)
|
|
88
91
|
|
89
92
|
context = rb_grn_context->context;
|
90
93
|
debug("context-free: %p\n", context);
|
91
|
-
if (!rb_grn_exited)
|
94
|
+
if (context && !rb_grn_exited)
|
92
95
|
rb_grn_context_fin(context);
|
93
96
|
debug("context-free: %p: done\n", context);
|
94
97
|
xfree(rb_grn_context);
|
@@ -332,7 +335,8 @@ rb_grn_context_initialize (int argc, VALUE *argv, VALUE self)
|
|
332
335
|
rb_grn_context = ALLOC(RbGrnContext);
|
333
336
|
DATA_PTR(self) = rb_grn_context;
|
334
337
|
rb_grn_context->self = self;
|
335
|
-
|
338
|
+
grn_ctx_init(&(rb_grn_context->context_entity), flags);
|
339
|
+
context = rb_grn_context->context = &(rb_grn_context->context_entity);
|
336
340
|
rb_grn_context_check(context, self);
|
337
341
|
|
338
342
|
GRN_CTX_USER_DATA(context)->ptr = rb_grn_context;
|
@@ -350,6 +354,45 @@ rb_grn_context_initialize (int argc, VALUE *argv, VALUE self)
|
|
350
354
|
return Qnil;
|
351
355
|
}
|
352
356
|
|
357
|
+
/*
|
358
|
+
* call-seq:
|
359
|
+
* context.close
|
360
|
+
*
|
361
|
+
* Closes the _context_. Closed _context_ can't be used
|
362
|
+
* anymore.
|
363
|
+
*/
|
364
|
+
static VALUE
|
365
|
+
rb_grn_context_close (VALUE self)
|
366
|
+
{
|
367
|
+
int rc;
|
368
|
+
grn_ctx *context;
|
369
|
+
RbGrnContext *rb_grn_context;
|
370
|
+
|
371
|
+
context = SELF(self);
|
372
|
+
rc = grn_ctx_fin(context);
|
373
|
+
Data_Get_Struct(self, RbGrnContext, rb_grn_context);
|
374
|
+
rb_grn_context->context = NULL;
|
375
|
+
rb_grn_rc_check(rc, self);
|
376
|
+
|
377
|
+
return Qnil;
|
378
|
+
}
|
379
|
+
|
380
|
+
/*
|
381
|
+
* call-seq:
|
382
|
+
* context.closed?
|
383
|
+
*
|
384
|
+
* Returns whether the _context_ is closed by #close or not.
|
385
|
+
*/
|
386
|
+
static VALUE
|
387
|
+
rb_grn_context_closed_p (VALUE self)
|
388
|
+
{
|
389
|
+
RbGrnContext *rb_grn_context;
|
390
|
+
|
391
|
+
Data_Get_Struct(self, RbGrnContext, rb_grn_context);
|
392
|
+
|
393
|
+
return CBOOL2RVAL(rb_grn_context->context == NULL);
|
394
|
+
}
|
395
|
+
|
353
396
|
/*
|
354
397
|
* call-seq:
|
355
398
|
* context.inspect -> String
|
@@ -763,6 +806,9 @@ rb_grn_init_context (VALUE mGrn)
|
|
763
806
|
|
764
807
|
rb_define_method(cGrnContext, "initialize", rb_grn_context_initialize, -1);
|
765
808
|
|
809
|
+
rb_define_method(cGrnContext, "close", rb_grn_context_close, 0);
|
810
|
+
rb_define_method(cGrnContext, "closed?", rb_grn_context_closed_p, 0);
|
811
|
+
|
766
812
|
rb_define_method(cGrnContext, "inspect", rb_grn_context_inspect, 0);
|
767
813
|
|
768
814
|
rb_define_method(cGrnContext, "encoding", rb_grn_context_get_encoding, 0);
|
@@ -19,7 +19,7 @@
|
|
19
19
|
#include "rb-grn.h"
|
20
20
|
|
21
21
|
VALUE rb_eGrnError;
|
22
|
-
VALUE
|
22
|
+
VALUE rb_eGrnClosed;
|
23
23
|
VALUE rb_eGrnNoSuchColumn;
|
24
24
|
|
25
25
|
static VALUE eGrnEndOfData;
|
@@ -589,14 +589,25 @@ rb_grn_init_exception (VALUE mGrn)
|
|
589
589
|
rb_eGrnError =
|
590
590
|
rb_define_class_under(mGrn, "Error", rb_eStandardError);
|
591
591
|
|
592
|
+
/*
|
593
|
+
* Document-class: Groonga::Closed
|
594
|
+
*
|
595
|
+
* groongaレベルでは破棄されているが、Rubyレベルでは生き
|
596
|
+
* ているオブジェクトにアクセスすると発生する。
|
597
|
+
*
|
598
|
+
* @since 1.2.3
|
599
|
+
*/
|
600
|
+
rb_eGrnClosed = rb_define_class_under(mGrn, "Closed", rb_eGrnError);
|
601
|
+
|
592
602
|
/*
|
593
603
|
* Document-class: Groonga::ObjectClosed
|
594
604
|
*
|
595
605
|
* groongaレベルでは破棄されているが、Rubyレベルでは生き
|
596
606
|
* ているオブジェクトにアクセスすると発生する。
|
607
|
+
*
|
608
|
+
* @deprecated since 1.2.3. Use Groonga::Closed instead.
|
597
609
|
*/
|
598
|
-
|
599
|
-
rb_define_class_under(mGrn, "ObjectClosed", rb_eGrnError);
|
610
|
+
rb_define_const(mGrn, "ObjectClosed", rb_eGrnClosed);
|
600
611
|
|
601
612
|
/*
|
602
613
|
* Document-class: Groonga::NoSuchColumn
|
data/ext/groonga/rb-grn-object.c
CHANGED
@@ -464,7 +464,7 @@ rb_grn_object_deconstruct (RbGrnObject *rb_grn_object,
|
|
464
464
|
return;
|
465
465
|
|
466
466
|
if (!rb_grn_object->object) {
|
467
|
-
rb_raise(
|
467
|
+
rb_raise(rb_eGrnClosed,
|
468
468
|
"can't access already closed groonga object: %s",
|
469
469
|
rb_grn_inspect(CLASS_OF(rb_grn_object->self)));
|
470
470
|
}
|
data/ext/groonga/rb-grn.h
CHANGED
@@ -69,7 +69,7 @@ RB_GRN_BEGIN_DECLS
|
|
69
69
|
|
70
70
|
#define RB_GRN_MAJOR_VERSION 1
|
71
71
|
#define RB_GRN_MINOR_VERSION 2
|
72
|
-
#define RB_GRN_MICRO_VERSION
|
72
|
+
#define RB_GRN_MICRO_VERSION 5
|
73
73
|
|
74
74
|
#define RB_GRN_QUERY_DEFAULT_MAX_EXPRESSIONS 32
|
75
75
|
|
@@ -93,6 +93,7 @@ typedef struct _RbGrnContext RbGrnContext;
|
|
93
93
|
struct _RbGrnContext
|
94
94
|
{
|
95
95
|
grn_ctx *context;
|
96
|
+
grn_ctx context_entity;
|
96
97
|
VALUE self;
|
97
98
|
};
|
98
99
|
|
@@ -192,7 +193,7 @@ struct _RbGrnPlugin
|
|
192
193
|
RB_GRN_VAR grn_bool rb_grn_exited;
|
193
194
|
|
194
195
|
RB_GRN_VAR VALUE rb_eGrnError;
|
195
|
-
RB_GRN_VAR VALUE
|
196
|
+
RB_GRN_VAR VALUE rb_eGrnClosed;
|
196
197
|
RB_GRN_VAR VALUE rb_eGrnNoSuchColumn;
|
197
198
|
RB_GRN_VAR VALUE rb_eGrnInvalidArgument;
|
198
199
|
RB_GRN_VAR VALUE rb_cGrnObject;
|
data/lib/groonga/dumper.rb
CHANGED
@@ -72,7 +72,8 @@ module Groonga
|
|
72
72
|
options[:database].each(:order_by => :key) do |object|
|
73
73
|
next unless object.is_a?(Groonga::Table)
|
74
74
|
next if object.size.zero?
|
75
|
-
next
|
75
|
+
next if target_table?(options[:exclude_tables], object, false)
|
76
|
+
next unless target_table?(options[:tables], object, true)
|
76
77
|
options[:output].write("\n") if !first_table or options[:dump_schema]
|
77
78
|
first_table = false
|
78
79
|
dump_records(object, options)
|
@@ -93,8 +94,8 @@ module Groonga
|
|
93
94
|
output.write("register #{plugin_name}\n")
|
94
95
|
end
|
95
96
|
|
96
|
-
def target_table?(target_tables, table)
|
97
|
-
return
|
97
|
+
def target_table?(target_tables, table, default_value)
|
98
|
+
return default_value if target_tables.nil? or target_tables.empty?
|
98
99
|
target_tables.any? do |name|
|
99
100
|
name === table.name
|
100
101
|
end
|
@@ -278,7 +279,7 @@ module Groonga
|
|
278
279
|
target_table_name = column.range.name
|
279
280
|
sources = column.sources
|
280
281
|
source_names = sources.collect do |source|
|
281
|
-
if source.is_a?(
|
282
|
+
if source.is_a?(Groonga::Table)
|
282
283
|
"_key".dump
|
283
284
|
else
|
284
285
|
source.local_name.dump
|
@@ -393,7 +394,7 @@ module Groonga
|
|
393
394
|
parameters << "#{flags.join('|')}"
|
394
395
|
parameters << "#{column.range.name}"
|
395
396
|
source_names = column.sources.collect do |source|
|
396
|
-
if source.is_a?(
|
397
|
+
if source.is_a?(Groonga::Table)
|
397
398
|
"_key"
|
398
399
|
else
|
399
400
|
source.local_name
|
data/lib/groonga/schema.rb
CHANGED
@@ -1217,10 +1217,6 @@ module Groonga
|
|
1217
1217
|
sub_records = options[:sub_records]
|
1218
1218
|
sub_records = false if sub_records.nil?
|
1219
1219
|
return false unless table.support_sub_records? == sub_records
|
1220
|
-
path = options[:path]
|
1221
|
-
if path and File.expand_path(table.path) != File.expand_path(path)
|
1222
|
-
return false
|
1223
|
-
end
|
1224
1220
|
|
1225
1221
|
case table
|
1226
1222
|
when Groonga::Array
|
data/test/test-context.rb
CHANGED
@@ -120,4 +120,11 @@ class ContextTest < Test::Unit::TestCase
|
|
120
120
|
context.match_escalation_threshold = -1
|
121
121
|
assert_equal(-1, context.match_escalation_threshold)
|
122
122
|
end
|
123
|
+
|
124
|
+
def test_close
|
125
|
+
context = Groonga::Context.new
|
126
|
+
assert_false(context.closed?)
|
127
|
+
context.close
|
128
|
+
assert_true(context.closed?)
|
129
|
+
end
|
123
130
|
end
|
@@ -157,6 +157,66 @@ load --table Posts
|
|
157
157
|
EOS
|
158
158
|
end
|
159
159
|
|
160
|
+
def test_exclude_tables
|
161
|
+
dump_options = {
|
162
|
+
:exclude_tables => ["Posts"],
|
163
|
+
}
|
164
|
+
assert_equal(<<-EOS, dump(dump_options))
|
165
|
+
#{dumped_schema.chomp}
|
166
|
+
|
167
|
+
load --table Tags
|
168
|
+
[
|
169
|
+
["_key","name"],
|
170
|
+
["search",""],
|
171
|
+
["mori",""]
|
172
|
+
]
|
173
|
+
|
174
|
+
load --table Users
|
175
|
+
[
|
176
|
+
["_key","name"],
|
177
|
+
["mori",""]
|
178
|
+
]
|
179
|
+
EOS
|
180
|
+
end
|
181
|
+
|
182
|
+
def test_exclude_tables_with_regexp
|
183
|
+
dump_options = {
|
184
|
+
:exclude_tables => [/Posts?/],
|
185
|
+
}
|
186
|
+
assert_equal(<<-EOS, dump(dump_options))
|
187
|
+
#{dumped_schema.chomp}
|
188
|
+
|
189
|
+
load --table Tags
|
190
|
+
[
|
191
|
+
["_key","name"],
|
192
|
+
["search",""],
|
193
|
+
["mori",""]
|
194
|
+
]
|
195
|
+
|
196
|
+
load --table Users
|
197
|
+
[
|
198
|
+
["_key","name"],
|
199
|
+
["mori",""]
|
200
|
+
]
|
201
|
+
EOS
|
202
|
+
end
|
203
|
+
|
204
|
+
def test_tables_combination
|
205
|
+
dump_options = {
|
206
|
+
:exclude_tables => ["Posts"],
|
207
|
+
:tables => ["Posts", "Users"],
|
208
|
+
}
|
209
|
+
assert_equal(<<-EOS, dump(dump_options))
|
210
|
+
#{dumped_schema.chomp}
|
211
|
+
|
212
|
+
load --table Users
|
213
|
+
[
|
214
|
+
["_key","name"],
|
215
|
+
["mori",""]
|
216
|
+
]
|
217
|
+
EOS
|
218
|
+
end
|
219
|
+
|
160
220
|
def test_no_schema
|
161
221
|
assert_equal(<<-EOS, dump(:dump_schema => false))
|
162
222
|
load --table Posts
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2009-
|
1
|
+
# Copyright (C) 2009-2011 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,28 +99,6 @@ module SchemaCreateTableTests
|
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
|
-
def test_same_path
|
103
|
-
path = (@tmp_dir + "posts.groonga").to_s
|
104
|
-
Groonga::Schema.create_table("Posts", options(:path => path)) do |table|
|
105
|
-
end
|
106
|
-
|
107
|
-
Groonga::Schema.create_table("Posts", options(:path => path)) do |table|
|
108
|
-
end
|
109
|
-
assert_equal(path, context["Posts"].path)
|
110
|
-
end
|
111
|
-
|
112
|
-
def test_different_path
|
113
|
-
path = (@tmp_dir + "posts.groonga").to_s
|
114
|
-
Groonga::Schema.create_table("Posts", options(:path => path)) do |table|
|
115
|
-
end
|
116
|
-
|
117
|
-
assert_raise(Groonga::Schema::TableCreationWithDifferentOptions) do
|
118
|
-
path = (@tmp_dir + "posts.grn").to_s
|
119
|
-
Groonga::Schema.create_table("Posts", options(:path => path)) do |table|
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
102
|
def test_default_path
|
125
103
|
Groonga::Schema.create_table("Posts", options) do |table|
|
126
104
|
end
|
data/test/test-schema-dumper.rb
CHANGED
@@ -49,7 +49,7 @@ class SchemaDumperTest < Test::Unit::TestCase
|
|
49
49
|
def define_index_schema
|
50
50
|
Groonga::Schema.define do |schema|
|
51
51
|
schema.create_table("Items",
|
52
|
-
:type => :
|
52
|
+
:type => :hash,
|
53
53
|
:key_type => "ShortText") do |table|
|
54
54
|
table.short_text("title")
|
55
55
|
end
|
@@ -106,7 +106,7 @@ EOS
|
|
106
106
|
define_index_schema
|
107
107
|
assert_equal(<<-EOS, dump)
|
108
108
|
create_table("Items",
|
109
|
-
:type => :
|
109
|
+
:type => :hash,
|
110
110
|
:key_type => "ShortText",
|
111
111
|
:force => true) do |table|
|
112
112
|
table.short_text("title")
|
@@ -163,7 +163,7 @@ EOS
|
|
163
163
|
def test_index
|
164
164
|
define_index_schema
|
165
165
|
assert_equal(<<-EOS, dump)
|
166
|
-
table_create Items
|
166
|
+
table_create Items TABLE_HASH_KEY --key_type ShortText
|
167
167
|
column_create Items title COLUMN_SCALAR ShortText
|
168
168
|
|
169
169
|
table_create Terms TABLE_PAT_KEY|KEY_NORMALIZE --key_type ShortText --default_tokenizer TokenBigram
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rroonga
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 1.2.
|
9
|
+
- 5
|
10
|
+
version: 1.2.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kouhei Sutou
|
@@ -19,7 +19,7 @@ autorequire:
|
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
21
|
|
22
|
-
date: 2011-
|
22
|
+
date: 2011-08-05 00:00:00 Z
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
25
25
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
@@ -143,8 +143,6 @@ files:
|
|
143
143
|
- benchmark/select.rb
|
144
144
|
- benchmark/write-many-small-items.rb
|
145
145
|
- bin/grndump
|
146
|
-
- bug.rb
|
147
|
-
- crash.rb
|
148
146
|
- example/bookmark.rb
|
149
147
|
- example/index-html.rb
|
150
148
|
- ext/groonga/Makefile
|
@@ -206,52 +204,52 @@ files:
|
|
206
204
|
- rroonga-build.rb
|
207
205
|
- README.textile
|
208
206
|
- TODO
|
209
|
-
- test/
|
210
|
-
- test/
|
207
|
+
- test/test-remote.rb
|
208
|
+
- test/test-table-cursor.rb
|
211
209
|
- test/test-accessor.rb
|
212
|
-
- test/test-array.rb
|
213
|
-
- test/test-column.rb
|
214
|
-
- test/test-context-select.rb
|
215
|
-
- test/test-context.rb
|
216
210
|
- test/test-database-dumper.rb
|
217
|
-
- test/test-database.rb
|
218
|
-
- test/test-encoding.rb
|
219
|
-
- test/test-exception.rb
|
220
|
-
- test/test-expression-builder.rb
|
221
|
-
- test/test-expression.rb
|
222
|
-
- test/test-fix-size-column.rb
|
223
|
-
- test/test-gqtp.rb
|
224
|
-
- test/test-hash.rb
|
225
211
|
- test/test-index-column.rb
|
226
|
-
- test/test-
|
227
|
-
- test/test-
|
212
|
+
- test/test-context-select.rb
|
213
|
+
- test/groonga-test-utils.rb
|
228
214
|
- test/test-pagination.rb
|
229
|
-
- test/test-
|
215
|
+
- test/test-table.rb
|
216
|
+
- test/test-variable-size-column.rb
|
230
217
|
- test/test-plugin.rb
|
231
|
-
- test/test-
|
232
|
-
- test/test-
|
233
|
-
- test/test-record.rb
|
234
|
-
- test/test-remote.rb
|
218
|
+
- test/test-hash.rb
|
219
|
+
- test/test-encoding.rb
|
235
220
|
- test/test-schema-create-table.rb
|
236
|
-
- test/test-
|
237
|
-
- test/test-
|
238
|
-
- test/test-
|
239
|
-
- test/test-
|
240
|
-
- test/test-
|
241
|
-
- test/test-
|
221
|
+
- test/test-type.rb
|
222
|
+
- test/test-database.rb
|
223
|
+
- test/test-variable.rb
|
224
|
+
- test/test-table-select.rb
|
225
|
+
- test/test-patricia-trie.rb
|
226
|
+
- test/test-expression-builder.rb
|
227
|
+
- test/test-logger.rb
|
228
|
+
- test/test-array.rb
|
229
|
+
- test/test-record.rb
|
230
|
+
- test/test-column.rb
|
231
|
+
- test/test-fix-size-column.rb
|
232
|
+
- test/run-test.rb
|
233
|
+
- test/test-procedure.rb
|
242
234
|
- test/test-table-dumper.rb
|
243
|
-
- test/test-
|
235
|
+
- test/test-schema.rb
|
236
|
+
- test/test-view.rb
|
244
237
|
- test/test-table-select-mecab.rb
|
245
238
|
- test/test-table-select-normalize.rb
|
246
|
-
- test/test-
|
247
|
-
- test/test-table-select.rb
|
248
|
-
- test/test-table.rb
|
249
|
-
- test/test-type.rb
|
250
|
-
- test/test-variable-size-column.rb
|
251
|
-
- test/test-variable.rb
|
239
|
+
- test/test-expression.rb
|
252
240
|
- test/test-vector-column.rb
|
253
241
|
- test/test-version.rb
|
254
|
-
- test/test-view.rb
|
242
|
+
- test/test-schema-view.rb
|
243
|
+
- test/test-index-cursor.rb
|
244
|
+
- test/test-exception.rb
|
245
|
+
- test/test-schema-dumper.rb
|
246
|
+
- test/test-query.rb
|
247
|
+
- test/test-schema-type.rb
|
248
|
+
- test/test-table-select-weight.rb
|
249
|
+
- test/test-gqtp.rb
|
250
|
+
- test/test-context.rb
|
251
|
+
- test/test-snippet.rb
|
252
|
+
- test/test-table-offset-and-limit.rb
|
255
253
|
homepage: http://groonga.rubyforge.org/
|
256
254
|
licenses:
|
257
255
|
- LGPLv2
|
@@ -286,49 +284,49 @@ signing_key:
|
|
286
284
|
specification_version: 3
|
287
285
|
summary: Ruby bindings for groonga that provide full text search and column store features.
|
288
286
|
test_files:
|
289
|
-
- test/
|
290
|
-
- test/
|
287
|
+
- test/test-remote.rb
|
288
|
+
- test/test-table-cursor.rb
|
291
289
|
- test/test-accessor.rb
|
292
|
-
- test/test-array.rb
|
293
|
-
- test/test-column.rb
|
294
|
-
- test/test-context-select.rb
|
295
|
-
- test/test-context.rb
|
296
290
|
- test/test-database-dumper.rb
|
297
|
-
- test/test-database.rb
|
298
|
-
- test/test-encoding.rb
|
299
|
-
- test/test-exception.rb
|
300
|
-
- test/test-expression-builder.rb
|
301
|
-
- test/test-expression.rb
|
302
|
-
- test/test-fix-size-column.rb
|
303
|
-
- test/test-gqtp.rb
|
304
|
-
- test/test-hash.rb
|
305
291
|
- test/test-index-column.rb
|
306
|
-
- test/test-
|
307
|
-
- test/test-
|
292
|
+
- test/test-context-select.rb
|
293
|
+
- test/groonga-test-utils.rb
|
308
294
|
- test/test-pagination.rb
|
309
|
-
- test/test-
|
295
|
+
- test/test-table.rb
|
296
|
+
- test/test-variable-size-column.rb
|
310
297
|
- test/test-plugin.rb
|
311
|
-
- test/test-
|
312
|
-
- test/test-
|
313
|
-
- test/test-record.rb
|
314
|
-
- test/test-remote.rb
|
298
|
+
- test/test-hash.rb
|
299
|
+
- test/test-encoding.rb
|
315
300
|
- test/test-schema-create-table.rb
|
316
|
-
- test/test-
|
317
|
-
- test/test-
|
318
|
-
- test/test-
|
319
|
-
- test/test-
|
320
|
-
- test/test-
|
321
|
-
- test/test-
|
301
|
+
- test/test-type.rb
|
302
|
+
- test/test-database.rb
|
303
|
+
- test/test-variable.rb
|
304
|
+
- test/test-table-select.rb
|
305
|
+
- test/test-patricia-trie.rb
|
306
|
+
- test/test-expression-builder.rb
|
307
|
+
- test/test-logger.rb
|
308
|
+
- test/test-array.rb
|
309
|
+
- test/test-record.rb
|
310
|
+
- test/test-column.rb
|
311
|
+
- test/test-fix-size-column.rb
|
312
|
+
- test/run-test.rb
|
313
|
+
- test/test-procedure.rb
|
322
314
|
- test/test-table-dumper.rb
|
323
|
-
- test/test-
|
315
|
+
- test/test-schema.rb
|
316
|
+
- test/test-view.rb
|
324
317
|
- test/test-table-select-mecab.rb
|
325
318
|
- test/test-table-select-normalize.rb
|
326
|
-
- test/test-
|
327
|
-
- test/test-table-select.rb
|
328
|
-
- test/test-table.rb
|
329
|
-
- test/test-type.rb
|
330
|
-
- test/test-variable-size-column.rb
|
331
|
-
- test/test-variable.rb
|
319
|
+
- test/test-expression.rb
|
332
320
|
- test/test-vector-column.rb
|
333
321
|
- test/test-version.rb
|
334
|
-
- test/test-view.rb
|
322
|
+
- test/test-schema-view.rb
|
323
|
+
- test/test-index-cursor.rb
|
324
|
+
- test/test-exception.rb
|
325
|
+
- test/test-schema-dumper.rb
|
326
|
+
- test/test-query.rb
|
327
|
+
- test/test-schema-type.rb
|
328
|
+
- test/test-table-select-weight.rb
|
329
|
+
- test/test-gqtp.rb
|
330
|
+
- test/test-context.rb
|
331
|
+
- test/test-snippet.rb
|
332
|
+
- test/test-table-offset-and-limit.rb
|
data/bug.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'fileutils'
|
4
|
-
require 'groonga'
|
5
|
-
|
6
|
-
Groonga::Logger.log_path = "/tmp/groonga.log"
|
7
|
-
Groonga::Logger.query_log_path = "/tmp/groonga-query.log"
|
8
|
-
|
9
|
-
i = 0
|
10
|
-
loop do
|
11
|
-
path = "/tmp/db/db"
|
12
|
-
FileUtils.rm_rf(File.dirname(path))
|
13
|
-
FileUtils.mkdir_p(File.dirname(path))
|
14
|
-
Groonga::Context.default = nil
|
15
|
-
database = Groonga::Database.create(:path => path)
|
16
|
-
Groonga::Schema.define do |schema|
|
17
|
-
schema.create_table("Users",
|
18
|
-
:type => :hash,
|
19
|
-
:key_type => "ShortText") do |table|
|
20
|
-
table.uint32("name_length")
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
users = Groonga["Users"]
|
25
|
-
10.times do
|
26
|
-
i += 1
|
27
|
-
exit if i > 100
|
28
|
-
name = i.to_s
|
29
|
-
users.add(name, :name_length => name.length)
|
30
|
-
end
|
31
|
-
builder = Groonga::RecordExpressionBuilder.new(users, nil)
|
32
|
-
builder.query = "name_length:3"
|
33
|
-
builder.build
|
34
|
-
database.close
|
35
|
-
GC.start
|
36
|
-
end
|
data/crash.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'groonga'
|
4
|
-
|
5
|
-
context = Groonga::Context.default
|
6
|
-
context.connect(:port => 10042)
|
7
|
-
|
8
|
-
10000.times do |i|
|
9
|
-
p i
|
10
|
-
GC.stress = true
|
11
|
-
result = context.select("Program")
|
12
|
-
result.records.each do |record|
|
13
|
-
record["_key"]
|
14
|
-
record["unknown"]
|
15
|
-
end
|
16
|
-
GC.stress = false
|
17
|
-
end
|