rroonga 9.0.7 → 10.0.1
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.
- checksums.yaml +4 -4
- data/Rakefile +3 -114
- data/doc/text/news.md +14 -0
- data/ext/groonga/extconf.rb +5 -73
- data/ext/groonga/rb-grn-table-key-support.c +23 -6
- data/ext/groonga/rb-grn-table.c +51 -45
- data/ext/groonga/rb-grn.h +4 -12
- data/lib/groonga.rb +3 -7
- data/rroonga.gemspec +4 -5
- data/test/test-remote.rb +2 -0
- data/test/test-schema.rb +9 -1
- data/test/test-table-arrow.rb +4 -1
- metadata +63 -104
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4f0e0fdf1d23daf834ebb866894d0f05955af7187e07821154e151090273e06
|
4
|
+
data.tar.gz: e1bff6c3547943e270b04f1c2674845ef26bf2f1a64f40ec72f682a0d3b30843
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee1389b602d9544eb31a7273bf313f83da7599bb6317ffd9e83614bfd334af52d2fad638f23790095a4c2f56e8c70f66dc38a43d968e777e0c2fd0c0fa2e33a1
|
7
|
+
data.tar.gz: 3de057e696486314205762ea1bc6160c892d422cc04dbc8a98e5458ce2cf3404ba28901668158eb65e8b0af0493e5dad1bb5fd4f3ff7c32d02a7cdec65f22e11
|
data/Rakefile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# -*-
|
1
|
+
# -*- ruby -*-
|
2
2
|
#
|
3
|
-
# Copyright (C) 2009-
|
3
|
+
# Copyright (C) 2009-2020 Sutou Kouhei <kou@clear-code.com>
|
4
4
|
# Copyright (C) 2017 Masafumi Yokoyama <yokoyama@clear-code.com>
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -16,15 +16,9 @@
|
|
16
16
|
# License along with this library; if not, write to the Free Software
|
17
17
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
18
18
|
|
19
|
-
require "find"
|
20
|
-
require "fileutils"
|
21
|
-
require "shellwords"
|
22
|
-
require "pathname"
|
23
|
-
require "erb"
|
24
|
-
require "yard"
|
25
19
|
require "bundler/gem_helper"
|
26
|
-
require "rake/extensiontask"
|
27
20
|
require "packnga"
|
21
|
+
require "yard"
|
28
22
|
|
29
23
|
base_dir = File.join(File.dirname(__FILE__))
|
30
24
|
|
@@ -74,51 +68,6 @@ module YARD
|
|
74
68
|
end
|
75
69
|
end
|
76
70
|
|
77
|
-
def windows?(platform=nil)
|
78
|
-
platform ||= RUBY_PLATFORM
|
79
|
-
platform =~ /mswin(?!ce)|mingw|cygwin|bccwin/
|
80
|
-
end
|
81
|
-
|
82
|
-
def collect_binary_files(binary_dir)
|
83
|
-
binary_files = []
|
84
|
-
Find.find(binary_dir) do |name|
|
85
|
-
next unless File.file?(name)
|
86
|
-
next if /\.zip\z/i =~ name
|
87
|
-
binary_files << name
|
88
|
-
end
|
89
|
-
binary_files
|
90
|
-
end
|
91
|
-
|
92
|
-
def windows_gem_name(spec, architecture)
|
93
|
-
"#{spec.name}-#{spec.version}-#{architecture}-mingw32.gem"
|
94
|
-
end
|
95
|
-
|
96
|
-
relative_vendor_dir = "vendor"
|
97
|
-
relative_binary_dir = File.join("vendor", "local")
|
98
|
-
vendor_dir = File.join(base_dir, relative_vendor_dir)
|
99
|
-
binary_dir = File.join(base_dir, relative_binary_dir)
|
100
|
-
|
101
|
-
groonga_win32_i386_p = ENV["RROONGA_USE_GROONGA_X64"].nil?
|
102
|
-
|
103
|
-
Rake::ExtensionTask.new("groonga", spec) do |ext|
|
104
|
-
if groonga_win32_i386_p
|
105
|
-
ext.cross_platform = ["x86-mingw32"]
|
106
|
-
else
|
107
|
-
ext.cross_platform = ["x64-mingw32"]
|
108
|
-
end
|
109
|
-
if windows?
|
110
|
-
ext.gem_spec.files += collect_binary_files(relative_binary_dir)
|
111
|
-
else
|
112
|
-
ext.cross_compile = true
|
113
|
-
ext.cross_compiling do |_spec|
|
114
|
-
if windows?(_spec.platform.to_s)
|
115
|
-
binary_files = collect_binary_files(relative_binary_dir)
|
116
|
-
_spec.files += binary_files
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
71
|
file "Makefile" => ["extconf.rb", "ext/groonga/extconf.rb"] do
|
123
72
|
extconf_args = []
|
124
73
|
if ENV["TRAVIS"]
|
@@ -147,64 +96,4 @@ namespace :test do
|
|
147
96
|
end
|
148
97
|
end
|
149
98
|
|
150
|
-
desc "Remove Groonga binary directory"
|
151
|
-
namespace :clean do
|
152
|
-
task :groonga do
|
153
|
-
rm_rf binary_dir
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
windows_architectures = [:x86, :x64]
|
158
|
-
|
159
|
-
namespace :build do
|
160
|
-
namespace :windows do
|
161
|
-
ruby_versions = "2.3.0:2.4.0:2.5.0:2.6.0"
|
162
|
-
|
163
|
-
windows_architectures.each do |architecture|
|
164
|
-
desc "Build gem for Windows #{architecture}"
|
165
|
-
task architecture do
|
166
|
-
build_dir = "tmp/windows"
|
167
|
-
rm_rf build_dir
|
168
|
-
mkdir_p build_dir
|
169
|
-
|
170
|
-
commands = [
|
171
|
-
["git", "clone", "file://#{Dir.pwd}/.git", build_dir],
|
172
|
-
["cd", build_dir],
|
173
|
-
["gem", "install", "json"],
|
174
|
-
["bundle"],
|
175
|
-
["rake", "cross", "native", "gem", "RUBY_CC_VERSION=#{ruby_versions}"],
|
176
|
-
]
|
177
|
-
if architecture == :x64
|
178
|
-
commands.unshift(["export", "RROONGA_USE_GROONGA_X64=true"])
|
179
|
-
end
|
180
|
-
raw_commands = commands.collect do |command|
|
181
|
-
Shellwords.join(command)
|
182
|
-
end
|
183
|
-
raw_command_line = raw_commands.join(" && ")
|
184
|
-
|
185
|
-
require "rake_compiler_dock"
|
186
|
-
RakeCompilerDock.sh(raw_command_line)
|
187
|
-
|
188
|
-
cp("#{build_dir}/pkg/#{windows_gem_name(spec, architecture)}",
|
189
|
-
"pkg/")
|
190
|
-
end
|
191
|
-
end
|
192
|
-
end
|
193
|
-
|
194
|
-
desc "Build gems for Windows"
|
195
|
-
build_tasks = windows_architectures.collect do |architecture|
|
196
|
-
"windows:#{architecture}"
|
197
|
-
end
|
198
|
-
task :windows => build_tasks
|
199
|
-
end
|
200
|
-
|
201
|
-
namespace :release do
|
202
|
-
desc "Push gems for Windows to RubyGems.org"
|
203
|
-
task :windows do
|
204
|
-
windows_architectures.each do |architecture|
|
205
|
-
ruby("-S", "gem", "push", "pkg/#{windows_gem_name(spec, architecture)}")
|
206
|
-
end
|
207
|
-
end
|
208
|
-
end
|
209
|
-
|
210
99
|
task :default => :test
|
data/doc/text/news.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
# NEWS
|
2
2
|
|
3
|
+
## 10.0.1: 2020-04-02 {#version-10-0-1}
|
4
|
+
|
5
|
+
### Improvements
|
6
|
+
|
7
|
+
* Added support for creating a table with normalizer with options
|
8
|
+
|
9
|
+
* Windows: Added Ruby 2.7 support.
|
10
|
+
|
11
|
+
* Windows: Dropped Ruby 2.3.
|
12
|
+
|
13
|
+
* This version has been EOL.
|
14
|
+
|
15
|
+
* Dropped fat gem support.
|
16
|
+
|
3
17
|
## 9.0.7: 2019-08-29 {#version-9-0-7}
|
4
18
|
|
5
19
|
### Improvements
|
data/ext/groonga/extconf.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
#
|
3
|
-
# Copyright (C) 2009-
|
3
|
+
# Copyright (C) 2009-2020 Sutou Kouhei <kou@clear-code.com>
|
4
4
|
#
|
5
5
|
# This library is free software; you can redistribute it and/or
|
6
6
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -49,30 +49,11 @@ def win32?
|
|
49
49
|
/cygwin|mingw|mswin/ =~ RUBY_PLATFORM
|
50
50
|
end
|
51
51
|
|
52
|
-
checking_for(checking_message("Win32 OS")) do
|
53
|
-
win32 = win32?
|
54
|
-
if win32
|
55
|
-
$defs << "-DRB_GRN_PLATFORM_WIN32"
|
56
|
-
import_library_name = "libruby-#{module_name}.a"
|
57
|
-
$DLDFLAGS << " -Wl,--out-implib=#{import_library_name}"
|
58
|
-
$cleanfiles << import_library_name
|
59
|
-
binary_base_dir = base_dir + "vendor" + "local"
|
60
|
-
pkg_config_dir = binary_base_dir + "lib" + "pkgconfig"
|
61
|
-
PKGConfig.add_path(pkg_config_dir.to_s)
|
62
|
-
PKGConfig.set_override_variable("prefix", binary_base_dir.to_s)
|
63
|
-
end
|
64
|
-
win32
|
65
|
-
end
|
66
|
-
|
67
52
|
def install_groonga_locally
|
68
53
|
FileUtils.mkdir_p(local_groonga_base_dir)
|
69
54
|
|
70
55
|
Dir.chdir(local_groonga_base_dir) do
|
71
|
-
|
72
|
-
extract_groonga_win32_binary
|
73
|
-
else
|
74
|
-
build_groonga
|
75
|
-
end
|
56
|
+
build_groonga
|
76
57
|
end
|
77
58
|
|
78
59
|
prepend_pkg_config_path_for_local_groonga
|
@@ -107,50 +88,6 @@ def download(url)
|
|
107
88
|
end
|
108
89
|
end
|
109
90
|
|
110
|
-
def extract_zip(filename, destrination_dir)
|
111
|
-
require "archive/zip"
|
112
|
-
|
113
|
-
Archive::Zip.extract(filename, destrination_dir)
|
114
|
-
rescue LoadError
|
115
|
-
command_line = ["unzip", filename, "-d", destrination_dir]
|
116
|
-
unless system(*command_line)
|
117
|
-
raise "Failed to unzip: #{command_line.join(' ')}"
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
def extract_groonga_win32_binary
|
122
|
-
if ENV["RROONGA_USE_GROONGA_X64"]
|
123
|
-
architecture = "x64"
|
124
|
-
else
|
125
|
-
architecture = "x86"
|
126
|
-
end
|
127
|
-
zip = "groonga-latest-#{architecture}.zip"
|
128
|
-
url = "https://packages.groonga.org/windows/groonga/#{zip}"
|
129
|
-
install_dir = local_groonga_install_dir
|
130
|
-
|
131
|
-
download(url)
|
132
|
-
|
133
|
-
message("extracting...")
|
134
|
-
before_paths = Dir.glob("*")
|
135
|
-
extract_zip(zip, ".")
|
136
|
-
extracted_dir = (Dir.glob("*") - before_paths).first
|
137
|
-
message(" done\n")
|
138
|
-
|
139
|
-
if File.exist?(install_dir)
|
140
|
-
message("removing old install... #{install_dir}")
|
141
|
-
FileUtils.rm_rf(install_dir)
|
142
|
-
message(" done\n")
|
143
|
-
end
|
144
|
-
|
145
|
-
message("installing...")
|
146
|
-
FileUtils.mv(extracted_dir, install_dir)
|
147
|
-
message(" done\n")
|
148
|
-
|
149
|
-
message("removing binary archive...")
|
150
|
-
FileUtils.rm_rf(zip)
|
151
|
-
message(" done\n")
|
152
|
-
end
|
153
|
-
|
154
91
|
def run_command(start_message, command)
|
155
92
|
message(start_message)
|
156
93
|
if xsystem(command)
|
@@ -247,6 +184,7 @@ def build_groonga_from_tar_gz
|
|
247
184
|
FileUtils.mkdir_p(groonga_source_dir)
|
248
185
|
|
249
186
|
message("extracting...")
|
187
|
+
# TODO: Use Zlip::GzipReader and Gem::Package::TarReader
|
250
188
|
if xsystem("tar xfz #{tar_gz} -C #{groonga_source_dir} --strip-components=1")
|
251
189
|
message(" done\n")
|
252
190
|
else
|
@@ -285,14 +223,8 @@ def install_local_groonga(package_name, major, minor, micro)
|
|
285
223
|
add_rpath_for_local_groonga
|
286
224
|
end
|
287
225
|
|
288
|
-
|
289
|
-
|
290
|
-
install_local_groonga(package_name, major, minor, micro)
|
291
|
-
end
|
292
|
-
else
|
293
|
-
unless PKGConfig.have_package(package_name, major, minor, micro)
|
294
|
-
install_local_groonga(package_name, major, minor, micro)
|
295
|
-
end
|
226
|
+
unless PKGConfig.have_package(package_name, major, minor, micro)
|
227
|
+
install_local_groonga(package_name, major, minor, micro)
|
296
228
|
end
|
297
229
|
|
298
230
|
real_version = PKGConfig.modversion(package_name)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2
2
|
/*
|
3
|
-
Copyright (C) 2009-
|
3
|
+
Copyright (C) 2009-2020 Kouhei Sutou <kou@clear-code.com>
|
4
4
|
Copyright (C) 2014-2016 Masafumi Yokoyama <yokoyama@clear-code.com>
|
5
5
|
|
6
6
|
This library is free software; you can redistribute it and/or
|
@@ -911,7 +911,9 @@ rb_grn_table_key_support_get_normalizer (VALUE self)
|
|
911
911
|
* # Specifies normalizer object.
|
912
912
|
* table.normalizer = Groonga::Context["NormalizerNFKC51"]
|
913
913
|
* # Uses auto normalizer that is a normalizer for backward compatibility.
|
914
|
-
* table.normalizer = "
|
914
|
+
* table.normalizer = "NormalizerAuto"
|
915
|
+
* # Uses a normalizer with options.
|
916
|
+
* table.normalizer = "NormalizerNFKC121('unify_kana', true)"
|
915
917
|
*
|
916
918
|
* @overload normalizer=(name)
|
917
919
|
* @param [String] name Set a nomalizer named @name@.
|
@@ -927,7 +929,6 @@ rb_grn_table_key_support_set_normalizer (VALUE self, VALUE rb_normalizer)
|
|
927
929
|
{
|
928
930
|
grn_ctx *context;
|
929
931
|
grn_obj *table;
|
930
|
-
grn_obj *normalizer;
|
931
932
|
grn_rc rc;
|
932
933
|
|
933
934
|
rb_grn_table_key_support_deconstruct(SELF(self), &table, &context,
|
@@ -935,9 +936,25 @@ rb_grn_table_key_support_set_normalizer (VALUE self, VALUE rb_normalizer)
|
|
935
936
|
NULL, NULL, NULL,
|
936
937
|
NULL);
|
937
938
|
|
938
|
-
|
939
|
-
|
940
|
-
|
939
|
+
if (RB_TYPE_P(rb_normalizer, RUBY_T_STRING)) {
|
940
|
+
grn_obj normalizer;
|
941
|
+
VALUE exception;
|
942
|
+
GRN_TEXT_INIT(&normalizer, GRN_OBJ_DO_SHALLOW_COPY);
|
943
|
+
GRN_TEXT_SET(context,
|
944
|
+
&normalizer,
|
945
|
+
RSTRING_PTR(rb_normalizer),
|
946
|
+
RSTRING_LEN(rb_normalizer));
|
947
|
+
rc = grn_obj_set_info(context, table, GRN_INFO_NORMALIZER, &normalizer);
|
948
|
+
exception = rb_grn_context_to_exception(context, self);
|
949
|
+
GRN_OBJ_FIN(context, &normalizer);
|
950
|
+
if (!NIL_P(exception)) {
|
951
|
+
rb_exc_raise(exception);
|
952
|
+
}
|
953
|
+
} else {
|
954
|
+
grn_obj *normalizer = RVAL2GRNOBJECT(rb_normalizer, &context);
|
955
|
+
rc = grn_obj_set_info(context, table, GRN_INFO_NORMALIZER, normalizer);
|
956
|
+
rb_grn_context_check(context, self);
|
957
|
+
}
|
941
958
|
rb_grn_rc_check(rc, self);
|
942
959
|
|
943
960
|
return Qnil;
|
data/ext/groonga/rb-grn-table.c
CHANGED
@@ -525,8 +525,8 @@ ruby_object_to_column_name (VALUE rb_name,
|
|
525
525
|
}
|
526
526
|
|
527
527
|
/*
|
528
|
-
*
|
529
|
-
*
|
528
|
+
* It returns the column has the specified name.
|
529
|
+
* If the specified column does not exist, it returns `nil`.
|
530
530
|
*
|
531
531
|
* @overload column(name)
|
532
532
|
* @return [Groonga::Column, nil]
|
@@ -606,11 +606,15 @@ rb_grn_table_get_column_surely (VALUE self, VALUE rb_name)
|
|
606
606
|
}
|
607
607
|
|
608
608
|
/*
|
609
|
-
*
|
610
|
-
*
|
609
|
+
* @overload columns(prefix=nil)
|
610
|
+
* It returns the specified columns in the table.
|
611
611
|
*
|
612
|
-
*
|
613
|
-
*
|
612
|
+
* @param prefix [String, nil]
|
613
|
+
* If this is `nil`, it returns the all columns in table.
|
614
|
+
*
|
615
|
+
* Otherwise it returns columns which have name starts with `prefix`.
|
616
|
+
*
|
617
|
+
* @return [::Array<Groonga::Column>]
|
614
618
|
*/
|
615
619
|
static VALUE
|
616
620
|
rb_grn_table_get_columns (int argc, VALUE *argv, VALUE self)
|
@@ -622,9 +626,9 @@ rb_grn_table_get_columns (int argc, VALUE *argv, VALUE self)
|
|
622
626
|
grn_rc rc;
|
623
627
|
int n;
|
624
628
|
grn_table_cursor *cursor;
|
625
|
-
VALUE
|
626
|
-
char *
|
627
|
-
unsigned
|
629
|
+
VALUE rb_prefix, rb_columns;
|
630
|
+
char *prefix = NULL;
|
631
|
+
unsigned prefix_size = 0;
|
628
632
|
VALUE exception;
|
629
633
|
|
630
634
|
rb_grn_table_deconstruct(SELF(self), &table, &context,
|
@@ -632,18 +636,18 @@ rb_grn_table_get_columns (int argc, VALUE *argv, VALUE self)
|
|
632
636
|
NULL, NULL, NULL,
|
633
637
|
NULL);
|
634
638
|
|
635
|
-
rb_scan_args(argc, argv, "01", &
|
639
|
+
rb_scan_args(argc, argv, "01", &rb_prefix);
|
636
640
|
|
637
|
-
if (!NIL_P(
|
638
|
-
|
639
|
-
|
641
|
+
if (!NIL_P(rb_prefix)) {
|
642
|
+
prefix = StringValuePtr(rb_prefix);
|
643
|
+
prefix_size = RSTRING_LEN(rb_prefix);
|
640
644
|
}
|
641
645
|
|
642
646
|
key_type = grn_ctx_at(context, GRN_DB_SHORT_TEXT);
|
643
647
|
columns = grn_table_create(context, NULL, 0, NULL, GRN_TABLE_HASH_KEY,
|
644
648
|
key_type, 0);
|
645
649
|
rb_grn_context_check(context, self);
|
646
|
-
n = grn_table_columns(context, table,
|
650
|
+
n = grn_table_columns(context, table, prefix, prefix_size, columns);
|
647
651
|
rb_grn_context_check(context, self);
|
648
652
|
|
649
653
|
rb_columns = rb_ary_new2(n);
|
@@ -701,9 +705,10 @@ rb_grn_table_get_columns (int argc, VALUE *argv, VALUE self)
|
|
701
705
|
}
|
702
706
|
|
703
707
|
/*
|
704
|
-
*
|
708
|
+
* Checks whether the table has a specified column or not.
|
705
709
|
*
|
706
710
|
* @overload have_column?(name)
|
711
|
+
* @return [Boolean] `true` if the table has a `name` column, `false` otherwise.
|
707
712
|
*/
|
708
713
|
static VALUE
|
709
714
|
rb_grn_table_have_column (VALUE self, VALUE rb_name)
|
@@ -884,11 +889,10 @@ rb_grn_table_open_cursor (int argc, VALUE *argv, VALUE self)
|
|
884
889
|
}
|
885
890
|
|
886
891
|
/*
|
887
|
-
* テーブルに登録されている全てのレコードが入っている配列を
|
888
|
-
* 返す。
|
889
|
-
*
|
890
892
|
* @overload records
|
891
|
-
*
|
893
|
+
* It returns all records in the table.
|
894
|
+
*
|
895
|
+
* @return [::Array<Groonga::Record>]
|
892
896
|
*/
|
893
897
|
static VALUE
|
894
898
|
rb_grn_table_get_records (int argc, VALUE *argv, VALUE self)
|
@@ -909,9 +913,9 @@ rb_grn_table_get_records (int argc, VALUE *argv, VALUE self)
|
|
909
913
|
}
|
910
914
|
|
911
915
|
/*
|
912
|
-
* テーブルに登録されているレコード数を返す。
|
913
|
-
*
|
914
916
|
* @overload size
|
917
|
+
* It returns the number of records in the table.
|
918
|
+
*
|
915
919
|
* @return [Integer]
|
916
920
|
*/
|
917
921
|
static VALUE
|
@@ -930,9 +934,10 @@ rb_grn_table_get_size (VALUE self)
|
|
930
934
|
}
|
931
935
|
|
932
936
|
/*
|
933
|
-
* テーブルにレコードが登録されていなければ +true+ を返す。
|
934
|
-
*
|
935
937
|
* @overload empty?
|
938
|
+
*
|
939
|
+
* @return [Boolean] `true` if the table has no records,
|
940
|
+
* `false` otherwise.
|
936
941
|
*/
|
937
942
|
static VALUE
|
938
943
|
rb_grn_table_empty_p (VALUE self)
|
@@ -950,9 +955,11 @@ rb_grn_table_empty_p (VALUE self)
|
|
950
955
|
}
|
951
956
|
|
952
957
|
/*
|
953
|
-
*
|
958
|
+
* Deletes all records in the table at once.
|
954
959
|
*
|
955
960
|
* @overload truncate
|
961
|
+
*
|
962
|
+
* @return [void]
|
956
963
|
*/
|
957
964
|
static VALUE
|
958
965
|
rb_grn_table_truncate (VALUE self)
|
@@ -1123,7 +1130,7 @@ rb_grn_table_delete_by_expression (VALUE self)
|
|
1123
1130
|
*
|
1124
1131
|
* @param id [Integer] The ID of delete target record.
|
1125
1132
|
*
|
1126
|
-
* @return void
|
1133
|
+
* @return [void]
|
1127
1134
|
*
|
1128
1135
|
* @overload delete
|
1129
1136
|
* Delete records that are matched with the given condition
|
@@ -1141,7 +1148,7 @@ rb_grn_table_delete_by_expression (VALUE self)
|
|
1141
1148
|
* @yieldreturn [Groonga::ExpressionBuilder]
|
1142
1149
|
* TODO: See #select.
|
1143
1150
|
*
|
1144
|
-
* @return void
|
1151
|
+
* @return [void]
|
1145
1152
|
*/
|
1146
1153
|
static VALUE
|
1147
1154
|
rb_grn_table_delete (int argc, VALUE *argv, VALUE self)
|
@@ -1624,9 +1631,10 @@ rb_grn_table_each_sub_record (VALUE self, VALUE rb_id)
|
|
1624
1631
|
}
|
1625
1632
|
|
1626
1633
|
/*
|
1627
|
-
*
|
1634
|
+
* It returns the {Groonga::Record} for the `id` in the `table`.
|
1628
1635
|
*
|
1629
|
-
*
|
1636
|
+
* The return value has been changed to {Groonga::Record} from `id`
|
1637
|
+
* itself since 0.9.0.
|
1630
1638
|
*
|
1631
1639
|
* @overload [](id)
|
1632
1640
|
* @return [Groonga::Record]
|
@@ -1664,16 +1672,16 @@ rb_grn_table_get_value (VALUE self, VALUE rb_id)
|
|
1664
1672
|
}
|
1665
1673
|
|
1666
1674
|
/*
|
1667
|
-
*
|
1675
|
+
* It returns the value for the `id` in the `table`.
|
1668
1676
|
*
|
1669
|
-
*
|
1670
|
-
* {Groonga::Array}
|
1671
|
-
*
|
1677
|
+
* You can specify `id: true` for the convenience. `id: true` works
|
1678
|
+
* with {Groonga::Array} like for {Groonga::Hash},
|
1679
|
+
* {Groonga::PatriciaTrie} and so on.
|
1672
1680
|
*
|
1673
1681
|
* @overload value(id)
|
1674
|
-
* @return [
|
1675
|
-
* @overload value(id, :
|
1676
|
-
* @return [
|
1682
|
+
* @return [value]
|
1683
|
+
* @overload value(id, id: true)
|
1684
|
+
* @return [value]
|
1677
1685
|
*/
|
1678
1686
|
static VALUE
|
1679
1687
|
rb_grn_table_get_value_convenience (int argc, VALUE *argv, VALUE self)
|
@@ -2509,11 +2517,11 @@ rb_grn_table_support_value_p (VALUE self)
|
|
2509
2517
|
}
|
2510
2518
|
|
2511
2519
|
/*
|
2512
|
-
* グループ化したとき、テーブルにグループに含まれるレコード
|
2513
|
-
* 数を格納できる場合は +true+ 、格納できない場合は +false+ を返
|
2514
|
-
* す。
|
2515
|
-
*
|
2516
2520
|
* @overload support_sub_records?
|
2521
|
+
*
|
2522
|
+
* @return [Boolean] `true` if the table can store the number of
|
2523
|
+
* records for each group when the table is grouped, `false`
|
2524
|
+
* otherwise.
|
2517
2525
|
*/
|
2518
2526
|
static VALUE
|
2519
2527
|
rb_grn_table_support_sub_records_p (VALUE self)
|
@@ -2578,13 +2586,11 @@ rb_grn_table_have_n_sub_records_space_p (VALUE self)
|
|
2578
2586
|
}
|
2579
2587
|
|
2580
2588
|
/*
|
2581
|
-
* _table_ に _id_ で指定したIDのレコードが存在する場合は +true+ 、
|
2582
|
-
* 存在しない場合は +false+ を返す。
|
2583
|
-
*
|
2584
|
-
* 注意: 実行には相応のコストがかかるのであまり頻繁に呼ばな
|
2585
|
-
* いようにして下さい。
|
2586
|
-
*
|
2587
2589
|
* @overload exist?(id)
|
2590
|
+
* @return [Boolean] `true` if the table has a record specified ID
|
2591
|
+
* by `id`, `false` otherwise.
|
2592
|
+
*
|
2593
|
+
* @note This method is heavy. You should not call this as much as possible.
|
2588
2594
|
*/
|
2589
2595
|
static VALUE
|
2590
2596
|
rb_grn_table_exist_p (VALUE self, VALUE id)
|
data/ext/groonga/rb-grn.h
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2
2
|
/*
|
3
|
-
Copyright (C) 2009-
|
3
|
+
Copyright (C) 2009-2020 Sutou Kouhei <kou@clear-code.com>
|
4
4
|
Copyright (C) 2015-2017 Masafumi Yokoyama <yokoyama@clear-code.com>
|
5
5
|
|
6
6
|
This library is free software; you can redistribute it and/or
|
@@ -73,15 +73,7 @@ RB_GRN_BEGIN_DECLS
|
|
73
73
|
# define RB_GRN_GNUC_NULL_TERMINATED
|
74
74
|
#endif
|
75
75
|
|
76
|
-
#
|
77
|
-
# define RB_GRN_PLATFORM_WIN32 RUBY_GRN_PLATFORM_WIN32
|
78
|
-
#endif
|
79
|
-
|
80
|
-
#if defined(RUBY_GRN_STATIC_COMPILATION) && !defined(RB_GRN_STATIC_COMPILATION)
|
81
|
-
# define RB_GRN_STATIC_COMPILATION RUBY_GRN_STATIC_COMPILATION
|
82
|
-
#endif
|
83
|
-
|
84
|
-
#if defined(RB_GRN_PLATFORM_WIN32) && !defined(RB_GRN_STATIC_COMPILATION)
|
76
|
+
#ifdef __WIN32__
|
85
77
|
# ifdef RB_GRN_COMPILATION
|
86
78
|
# define RB_GRN_VAR __declspec(dllexport)
|
87
79
|
# else
|
@@ -97,9 +89,9 @@ RB_GRN_BEGIN_DECLS
|
|
97
89
|
# define debug(...)
|
98
90
|
#endif
|
99
91
|
|
100
|
-
#define RB_GRN_MAJOR_VERSION
|
92
|
+
#define RB_GRN_MAJOR_VERSION 10
|
101
93
|
#define RB_GRN_MINOR_VERSION 0
|
102
|
-
#define RB_GRN_MICRO_VERSION
|
94
|
+
#define RB_GRN_MICRO_VERSION 1
|
103
95
|
|
104
96
|
#define RB_GRN_OBJECT(object) ((RbGrnObject *)(object))
|
105
97
|
#define RB_GRN_NAMED_OBJECT(object) ((RbGrnNamedObject *)(object))
|
data/lib/groonga.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2009-
|
1
|
+
# Copyright (C) 2009-2020 Sutou Kouhei <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
|
@@ -44,12 +44,8 @@ require "groonga/record"
|
|
44
44
|
require "groonga/expression-builder"
|
45
45
|
require "groonga/posting"
|
46
46
|
require "groonga/index"
|
47
|
-
|
48
|
-
|
49
|
-
require "#{major}.#{minor}/groonga.so"
|
50
|
-
rescue LoadError
|
51
|
-
require "groonga.so"
|
52
|
-
end
|
47
|
+
|
48
|
+
require "groonga.so"
|
53
49
|
|
54
50
|
##
|
55
51
|
# rroonga用のネームスペース。rroongaのクラスやメソッ
|
data/rroonga.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# -*-
|
1
|
+
# -*- ruby -*-
|
2
2
|
#
|
3
|
-
# Copyright (C) 2012-
|
3
|
+
# Copyright (C) 2012-2020 Sutou Kouhei <kou@clear-code.com>
|
4
4
|
# Copyright (C) 2017 Masafumi Yokoyama <yokoyama@clear-code.com>
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -85,14 +85,13 @@ Gem::Specification.new do |s|
|
|
85
85
|
s.add_runtime_dependency("pkg-config")
|
86
86
|
s.add_runtime_dependency("groonga-client", ">= 0.0.3")
|
87
87
|
s.add_runtime_dependency("json")
|
88
|
-
s.add_runtime_dependency("archive-zip")
|
89
88
|
s.add_development_dependency("test-unit", [">= 3.0.0"])
|
90
89
|
s.add_development_dependency("rake")
|
91
|
-
s.add_development_dependency("rake-compiler", [">= 0.9.5"])
|
92
|
-
s.add_development_dependency("rake-compiler-dock", [">= 0.6.2"])
|
93
90
|
s.add_development_dependency("bundler")
|
94
91
|
s.add_development_dependency("yard")
|
95
92
|
s.add_development_dependency("packnga", [">= 1.0.0"])
|
96
93
|
s.add_development_dependency("kramdown")
|
94
|
+
|
95
|
+
s.metadata["msys2_mingw_dependencies"] = "groonga"
|
97
96
|
end
|
98
97
|
|
data/test/test-remote.rb
CHANGED
@@ -26,6 +26,7 @@ class RemoteTest < Test::Unit::TestCase
|
|
26
26
|
else
|
27
27
|
package_config = PKGConfig.package_config("groonga")
|
28
28
|
groonga = package_config.variable("groonga")
|
29
|
+
groonga = "groonga" unless File.exist?(groonga)
|
29
30
|
end
|
30
31
|
|
31
32
|
@host = "127.0.0.1"
|
@@ -83,6 +84,7 @@ class RemoteTest < Test::Unit::TestCase
|
|
83
84
|
"command_version",
|
84
85
|
"default_command_version",
|
85
86
|
"max_command_version",
|
87
|
+
"n_jobs",
|
86
88
|
"n_queries",
|
87
89
|
"start_time",
|
88
90
|
"starttime",
|
data/test/test-schema.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2009-
|
1
|
+
# Copyright (C) 2009-2020 Kouhei Sutou <kou@clear-code.com>
|
2
2
|
# Copyright (C) 2014 Masafumi Yokoyama <myokoym@gmail.com>
|
3
3
|
#
|
4
4
|
# This library is free software; you can redistribute it and/or
|
@@ -920,6 +920,14 @@ class SchemaTest < Test::Unit::TestCase
|
|
920
920
|
end
|
921
921
|
end
|
922
922
|
|
923
|
+
def test_normalizer_with_options
|
924
|
+
Groonga::Schema.create_table("Names",
|
925
|
+
key_type: :short_text,
|
926
|
+
normalizer: "NormalizerNFKC121('unify_kana', true)")
|
927
|
+
assert_equal(Groonga["NormalizerNFKC121"],
|
928
|
+
Groonga["Names"].normalizer)
|
929
|
+
end
|
930
|
+
|
923
931
|
private
|
924
932
|
def columns_directory_path(table)
|
925
933
|
"#{table.path}.columns"
|
data/test/test-table-arrow.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2017-
|
1
|
+
# Copyright (C) 2017-2020 Sutou Kouhei <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
|
@@ -20,6 +20,9 @@ class TableArrowTest < Test::Unit::TestCase
|
|
20
20
|
setup_database
|
21
21
|
|
22
22
|
omit("Apache Arrow support is required") unless context.support_arrow?
|
23
|
+
if (Groonga::VERSION[0, 3] <=> [9, 1, 2]) <= 0
|
24
|
+
omit("Groonga 9.1.2 is buggy")
|
25
|
+
end
|
23
26
|
end
|
24
27
|
|
25
28
|
def assert_dump_load(type, n_records)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rroonga
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 10.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kouhei Sutou
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2020-04-06 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: pkg-config
|
@@ -56,20 +56,6 @@ dependencies:
|
|
56
56
|
- - ">="
|
57
57
|
- !ruby/object:Gem::Version
|
58
58
|
version: '0'
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: archive-zip
|
61
|
-
requirement: !ruby/object:Gem::Requirement
|
62
|
-
requirements:
|
63
|
-
- - ">="
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
version: '0'
|
66
|
-
type: :runtime
|
67
|
-
prerelease: false
|
68
|
-
version_requirements: !ruby/object:Gem::Requirement
|
69
|
-
requirements:
|
70
|
-
- - ">="
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: '0'
|
73
59
|
- !ruby/object:Gem::Dependency
|
74
60
|
name: test-unit
|
75
61
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,34 +84,6 @@ dependencies:
|
|
98
84
|
- - ">="
|
99
85
|
- !ruby/object:Gem::Version
|
100
86
|
version: '0'
|
101
|
-
- !ruby/object:Gem::Dependency
|
102
|
-
name: rake-compiler
|
103
|
-
requirement: !ruby/object:Gem::Requirement
|
104
|
-
requirements:
|
105
|
-
- - ">="
|
106
|
-
- !ruby/object:Gem::Version
|
107
|
-
version: 0.9.5
|
108
|
-
type: :development
|
109
|
-
prerelease: false
|
110
|
-
version_requirements: !ruby/object:Gem::Requirement
|
111
|
-
requirements:
|
112
|
-
- - ">="
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
version: 0.9.5
|
115
|
-
- !ruby/object:Gem::Dependency
|
116
|
-
name: rake-compiler-dock
|
117
|
-
requirement: !ruby/object:Gem::Requirement
|
118
|
-
requirements:
|
119
|
-
- - ">="
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
version: 0.6.2
|
122
|
-
type: :development
|
123
|
-
prerelease: false
|
124
|
-
version_requirements: !ruby/object:Gem::Requirement
|
125
|
-
requirements:
|
126
|
-
- - ">="
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
version: 0.6.2
|
129
87
|
- !ruby/object:Gem::Dependency
|
130
88
|
name: bundler
|
131
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -194,8 +152,8 @@ email:
|
|
194
152
|
- y.hayamizu@gmail.com
|
195
153
|
- dara@shidara.net
|
196
154
|
executables:
|
197
|
-
- grndump
|
198
155
|
- groonga-database-inspect
|
156
|
+
- grndump
|
199
157
|
- grntest-log-analyze
|
200
158
|
- groonga-index-dump
|
201
159
|
extensions:
|
@@ -396,7 +354,8 @@ files:
|
|
396
354
|
homepage: http://ranguba.org/#about-rroonga
|
397
355
|
licenses:
|
398
356
|
- LGPL-2.1
|
399
|
-
metadata:
|
357
|
+
metadata:
|
358
|
+
msys2_mingw_dependencies: groonga
|
400
359
|
post_install_message:
|
401
360
|
rdoc_options: []
|
402
361
|
require_paths:
|
@@ -413,79 +372,79 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
413
372
|
- !ruby/object:Gem::Version
|
414
373
|
version: '0'
|
415
374
|
requirements: []
|
416
|
-
rubygems_version: 3.
|
375
|
+
rubygems_version: 3.1.2
|
417
376
|
signing_key:
|
418
377
|
specification_version: 4
|
419
378
|
summary: Ruby bindings for Groonga that provide full text search and column store
|
420
379
|
features.
|
421
380
|
test_files:
|
422
|
-
- test/test-
|
423
|
-
- test/test-remote.rb
|
424
|
-
- test/run-test.rb
|
425
|
-
- test/test-query-logger.rb
|
426
|
-
- test/test-data-column.rb
|
427
|
-
- test/test-database-inspector.rb
|
428
|
-
- test/test-type.rb
|
429
|
-
- test/test-column.rb
|
430
|
-
- test/test-expression.rb
|
431
|
-
- test/test-fix-size-column.rb
|
432
|
-
- test/test-table-offset-and-limit.rb
|
433
|
-
- test/test-windows-event-logger.rb
|
434
|
-
- test/test-lock-timeout.rb
|
381
|
+
- test/test-request-canceler.rb
|
435
382
|
- test/test-convert.rb
|
436
|
-
- test/test-
|
383
|
+
- test/test-table-select.rb
|
384
|
+
- test/test-table-dumper.rb
|
385
|
+
- test/test-table.rb
|
386
|
+
- test/test-thread.rb
|
387
|
+
- test/test-gqtp.rb
|
388
|
+
- test/test-geo-point.rb
|
389
|
+
- test/test-variable.rb
|
390
|
+
- test/test-operator.rb
|
391
|
+
- test/test-table-select-mecab.rb
|
392
|
+
- test/test-version.rb
|
393
|
+
- test/test-patricia-trie.rb
|
437
394
|
- test/test-context.rb
|
438
|
-
- test/test-procedure.rb
|
439
395
|
- test/test-table-traverse.rb
|
440
|
-
- test/test-
|
441
|
-
- test/test-package-label.rb
|
442
|
-
- test/test-logger.rb
|
443
|
-
- test/test-table-select.rb
|
396
|
+
- test/test-memory-pool.rb
|
444
397
|
- test/test-config.rb
|
445
|
-
- test/test-
|
446
|
-
- test/test-
|
398
|
+
- test/test-data-column.rb
|
399
|
+
- test/test-table-offset-and-limit.rb
|
400
|
+
- test/test-variable-size-column.rb
|
401
|
+
- test/test-fix-size-column.rb
|
402
|
+
- test/test-database.rb
|
447
403
|
- test/test-token-regexp.rb
|
448
|
-
- test/test-variable.rb
|
449
|
-
- test/test-thread.rb
|
450
|
-
- test/test-index-cursor.rb
|
451
|
-
- test/test-table.rb
|
452
|
-
- test/test-operator.rb
|
453
|
-
- test/test-default-cache.rb
|
454
|
-
- test/test-error-message.rb
|
455
|
-
- test/test-vector-column.rb
|
456
|
-
- test/test-index-column.rb
|
457
|
-
- test/test-exception.rb
|
458
|
-
- test/test-expression-builder.rb
|
459
|
-
- test/test-double-array-trie.rb
|
460
|
-
- test/test-plugin.rb
|
461
|
-
- test/test-table-group.rb
|
462
|
-
- test/test-snippet.rb
|
463
404
|
- test/test-schema-dumper.rb
|
464
|
-
- test/test-
|
465
|
-
- test/test-
|
466
|
-
- test/test-
|
467
|
-
- test/test-
|
405
|
+
- test/test-database-inspector.rb
|
406
|
+
- test/test-logger.rb
|
407
|
+
- test/test-windows-event-logger.rb
|
408
|
+
- test/test-package-label.rb
|
409
|
+
- test/test-flushable.rb
|
410
|
+
- test/test-expression-builder.rb
|
411
|
+
- test/test-table-arrow.rb
|
468
412
|
- test/groonga-test-utils.rb
|
469
|
-
- test/test-
|
470
|
-
- test/test-
|
413
|
+
- test/test-array.rb
|
414
|
+
- test/test-procedure.rb
|
415
|
+
- test/test-index-cursor.rb
|
416
|
+
- test/test-lock-timeout.rb
|
417
|
+
- test/test-double-array-trie.rb
|
418
|
+
- test/test-exception.rb
|
419
|
+
- test/test-accessor.rb
|
420
|
+
- test/test-schema-create-table.rb
|
421
|
+
- test/run-test.rb
|
422
|
+
- test/test-column-cache.rb
|
423
|
+
- test/test-request-timer.rb
|
424
|
+
- test/test-sub-records.rb
|
471
425
|
- test/test-normalizer.rb
|
472
|
-
- test/test-
|
473
|
-
- test/test-
|
474
|
-
- test/test-patricia-trie.rb
|
426
|
+
- test/test-error-message.rb
|
427
|
+
- test/test-type.rb
|
475
428
|
- test/test-table-select-normalize.rb
|
476
|
-
- test/test-
|
477
|
-
- test/test-
|
478
|
-
- test/test-
|
429
|
+
- test/test-snippet.rb
|
430
|
+
- test/test-index-column.rb
|
431
|
+
- test/test-query-logger.rb
|
432
|
+
- test/test-column.rb
|
479
433
|
- test/test-name.rb
|
480
|
-
- test/test-table-
|
481
|
-
- test/test-
|
482
|
-
- test/test-
|
483
|
-
- test/test-
|
434
|
+
- test/test-table-select-weight.rb
|
435
|
+
- test/test-pagination.rb
|
436
|
+
- test/test-vector-column.rb
|
437
|
+
- test/test-default-cache.rb
|
438
|
+
- test/test-id.rb
|
439
|
+
- test/test-schema.rb
|
440
|
+
- test/test-plugin.rb
|
441
|
+
- test/test-table-group.rb
|
484
442
|
- test/test-record.rb
|
443
|
+
- test/test-expression.rb
|
485
444
|
- test/test-table-key-support.rb
|
486
|
-
- test/test-
|
487
|
-
- test/test-
|
488
|
-
- test/test-request-canceler.rb
|
445
|
+
- test/test-remote.rb
|
446
|
+
- test/test-encoding.rb
|
489
447
|
- test/test-database-dumper.rb
|
490
|
-
- test/test-
|
491
|
-
- test/test-
|
448
|
+
- test/test-command-select.rb
|
449
|
+
- test/test-hash.rb
|
450
|
+
- test/test-schema-type.rb
|