rroonga 9.0.7 → 10.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|