rroonga 0.9.4-x86-mingw32 → 0.9.5-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data/NEWS.ja.rdoc +29 -0
- data/NEWS.rdoc +29 -0
- data/Rakefile +6 -6
- data/ext/groonga/rb-grn-array.c +1 -1
- data/ext/groonga/rb-grn-context.c +15 -28
- data/ext/groonga/rb-grn-exception.c +46 -1
- data/ext/groonga/rb-grn-expression.c +22 -13
- data/ext/groonga/rb-grn-fix-size-column.c +2 -8
- data/ext/groonga/rb-grn-hash.c +8 -1
- data/ext/groonga/rb-grn-object.c +1 -1
- data/ext/groonga/rb-grn-patricia-trie.c +23 -1
- data/ext/groonga/rb-grn-table-key-support.c +22 -0
- data/ext/groonga/rb-grn-table.c +37 -5
- data/ext/groonga/rb-grn-utils.c +20 -2
- data/ext/groonga/rb-grn.h +1 -1
- data/ext/groonga/rb-groonga.c +76 -38
- data/extconf.rb +17 -1
- data/html/developer.html +32 -7
- data/html/footer.html.erb +5 -0
- data/html/heading-mark.svg +393 -0
- data/html/index.html +33 -3
- data/lib/1.8/groonga.so +0 -0
- data/lib/1.9/groonga.so +0 -0
- data/lib/groonga.rb +3 -7
- data/lib/groonga/context.rb +2 -13
- data/lib/groonga/expression-builder.rb +273 -67
- data/lib/groonga/pagination.rb +143 -0
- data/lib/groonga/record.rb +2 -0
- data/lib/groonga/schema.rb +140 -29
- data/pkg/rroonga-0.9.5/NEWS.ja.rdoc +156 -0
- data/pkg/rroonga-0.9.5/NEWS.rdoc +158 -0
- data/pkg/rroonga-0.9.5/README.ja.rdoc +65 -0
- data/pkg/rroonga-0.9.5/README.rdoc +66 -0
- data/pkg/rroonga-0.9.5/text/TUTORIAL.ja.rdoc +394 -0
- data/pkg/rroonga-0.9.5/text/expression.rdoc +285 -0
- data/rroonga-build.rb +2 -2
- data/test-unit/Rakefile +40 -0
- data/test-unit/TODO +5 -0
- data/test-unit/bin/testrb +5 -0
- data/test-unit/html/classic.html +15 -0
- data/test-unit/html/index.html +25 -0
- data/test-unit/html/index.html.ja +27 -0
- data/test-unit/lib/test/unit.rb +323 -0
- data/test-unit/lib/test/unit/assertionfailederror.rb +25 -0
- data/test-unit/lib/test/unit/assertions.rb +1230 -0
- data/test-unit/lib/test/unit/attribute.rb +125 -0
- data/test-unit/lib/test/unit/autorunner.rb +360 -0
- data/test-unit/lib/test/unit/collector.rb +36 -0
- data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
- data/test-unit/lib/test/unit/collector/dir.rb +108 -0
- data/test-unit/lib/test/unit/collector/load.rb +144 -0
- data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
- data/test-unit/lib/test/unit/color-scheme.rb +102 -0
- data/test-unit/lib/test/unit/color.rb +96 -0
- data/test-unit/lib/test/unit/diff.rb +724 -0
- data/test-unit/lib/test/unit/error.rb +130 -0
- data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
- data/test-unit/lib/test/unit/failure.rb +136 -0
- data/test-unit/lib/test/unit/fixture.rb +176 -0
- data/test-unit/lib/test/unit/notification.rb +129 -0
- data/test-unit/lib/test/unit/omission.rb +191 -0
- data/test-unit/lib/test/unit/pending.rb +150 -0
- data/test-unit/lib/test/unit/priority.rb +180 -0
- data/test-unit/lib/test/unit/runner/console.rb +52 -0
- data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
- data/test-unit/lib/test/unit/runner/tap.rb +8 -0
- data/test-unit/lib/test/unit/testcase.rb +476 -0
- data/test-unit/lib/test/unit/testresult.rb +89 -0
- data/test-unit/lib/test/unit/testsuite.rb +110 -0
- data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
- data/test-unit/lib/test/unit/ui/console/testrunner.rb +466 -0
- data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +63 -0
- data/test-unit/lib/test/unit/ui/tap/testrunner.rb +92 -0
- data/test-unit/lib/test/unit/ui/testrunner.rb +28 -0
- data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
- data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
- data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
- data/test-unit/lib/test/unit/util/method-owner-finder.rb +28 -0
- data/test-unit/lib/test/unit/util/observable.rb +90 -0
- data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
- data/test-unit/lib/test/unit/version.rb +7 -0
- data/test-unit/sample/adder.rb +13 -0
- data/test-unit/sample/subtracter.rb +12 -0
- data/test-unit/sample/test_adder.rb +20 -0
- data/test-unit/sample/test_subtracter.rb +20 -0
- data/test-unit/sample/test_user.rb +23 -0
- data/test-unit/test/collector/test-descendant.rb +133 -0
- data/test-unit/test/collector/test-load.rb +442 -0
- data/test-unit/test/collector/test_dir.rb +406 -0
- data/test-unit/test/collector/test_objectspace.rb +100 -0
- data/test-unit/test/run-test.rb +15 -0
- data/test-unit/test/test-attribute.rb +86 -0
- data/test-unit/test/test-color-scheme.rb +67 -0
- data/test-unit/test/test-color.rb +47 -0
- data/test-unit/test/test-diff.rb +518 -0
- data/test-unit/test/test-emacs-runner.rb +60 -0
- data/test-unit/test/test-fixture.rb +287 -0
- data/test-unit/test/test-notification.rb +33 -0
- data/test-unit/test/test-omission.rb +81 -0
- data/test-unit/test/test-pending.rb +70 -0
- data/test-unit/test/test-priority.rb +119 -0
- data/test-unit/test/test-testcase.rb +544 -0
- data/test-unit/test/test_assertions.rb +1151 -0
- data/test-unit/test/test_error.rb +26 -0
- data/test-unit/test/test_failure.rb +33 -0
- data/test-unit/test/test_testresult.rb +113 -0
- data/test-unit/test/test_testsuite.rb +129 -0
- data/test-unit/test/testunit-test-util.rb +14 -0
- data/test-unit/test/ui/test_testrunmediator.rb +20 -0
- data/test-unit/test/util/test-method-owner-finder.rb +38 -0
- data/test-unit/test/util/test_backtracefilter.rb +41 -0
- data/test-unit/test/util/test_observable.rb +102 -0
- data/test-unit/test/util/test_procwrapper.rb +36 -0
- data/test/groonga-test-utils.rb +3 -2
- data/test/run-test.rb +14 -2
- data/test/test-column.rb +7 -7
- data/test/test-context-select.rb +34 -11
- data/test/test-exception.rb +3 -0
- data/test/test-expression-builder.rb +11 -0
- data/test/test-expression.rb +3 -6
- data/test/test-gqtp.rb +3 -5
- data/test/test-pagination.rb +249 -0
- data/test/test-record.rb +36 -8
- data/test/test-remote.rb +11 -4
- data/test/test-schema-create-table.rb +251 -0
- data/test/test-schema.rb +4 -24
- data/test/test-table-offset-and-limit.rb +3 -5
- data/test/test-table-select-mecab.rb +80 -0
- data/test/test-table-select-weight.rb +104 -0
- data/test/test-table.rb +22 -4
- data/test/test-version.rb +1 -1
- data/text/TUTORIAL.ja.rdoc +2 -0
- data/text/expression.rdoc +1 -0
- data/vendor/local/bin/grntest.exe +0 -0
- data/vendor/local/bin/groonga.exe +0 -0
- data/vendor/local/bin/libgroonga-0.dll +0 -0
- data/vendor/local/include/{groonga.h → groonga/groonga.h} +93 -32
- data/vendor/local/lib/groonga/modules/functions/cast.dll +0 -0
- data/vendor/local/lib/groonga/modules/functions/cast.la +41 -0
- data/vendor/local/lib/pkgconfig/groonga.pc +12 -0
- data/vendor/local/share/groonga/admin_html/css/admin.css +104 -0
- data/vendor/local/share/groonga/admin_html/css/ui-lightness/jquery-ui-1.8.1.custom.css +486 -0
- data/vendor/local/share/groonga/admin_html/index.html +1355 -0
- data/vendor/local/share/groonga/admin_html/js/jquery-1.4.2.min.js +154 -0
- data/vendor/local/share/groonga/admin_html/js/jquery-ui-1.8.1.custom.min.js +756 -0
- data/vendor/local/share/groonga/munin/plugins/groonga_cpu_load +47 -0
- data/vendor/local/share/groonga/munin/plugins/groonga_cpu_time +57 -0
- data/vendor/local/share/groonga/munin/plugins/groonga_disk +162 -0
- data/vendor/local/share/groonga/munin/plugins/groonga_memory +51 -0
- data/vendor/local/share/groonga/munin/plugins/groonga_n_records +110 -0
- data/vendor/local/share/groonga/munin/plugins/groonga_query_performance +133 -0
- data/vendor/local/share/groonga/munin/plugins/groonga_status +84 -0
- metadata +126 -36
@@ -0,0 +1,104 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# Copyright (C) 2010 Kouhei Sutou <kou@clear-code.com>
|
4
|
+
#
|
5
|
+
# This library is free software; you can redistribute it and/or
|
6
|
+
# modify it under the terms of the GNU Lesser General Public
|
7
|
+
# License version 2.1 as published by the Free Software Foundation.
|
8
|
+
#
|
9
|
+
# This library is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# Lesser General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU Lesser General Public
|
15
|
+
# License along with this library; if not, write to the Free Software
|
16
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
17
|
+
|
18
|
+
class TableSelectWeightTest < Test::Unit::TestCase
|
19
|
+
include GroongaTestUtils
|
20
|
+
|
21
|
+
setup :setup_database
|
22
|
+
|
23
|
+
setup
|
24
|
+
def setup_tables
|
25
|
+
Groonga::Schema.define do |schema|
|
26
|
+
schema.create_table("Users",
|
27
|
+
:type => :hash,
|
28
|
+
:key_type => "ShortText") do |table|
|
29
|
+
end
|
30
|
+
|
31
|
+
schema.create_table("Comments") do |table|
|
32
|
+
table.short_text("title")
|
33
|
+
table.text("content")
|
34
|
+
table.time("created_at")
|
35
|
+
table.reference("user", "Users")
|
36
|
+
end
|
37
|
+
|
38
|
+
schema.create_table("Terms",
|
39
|
+
:type => :patricia_trie,
|
40
|
+
:default_tokenizer => "TokenBigram") do |table|
|
41
|
+
table.index("Comments.title", :with_section => true)
|
42
|
+
table.index("Comments.content", :with_section => true)
|
43
|
+
end
|
44
|
+
|
45
|
+
schema.change_table("Users") do |table|
|
46
|
+
table.index("Comments.user")
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
setup
|
52
|
+
def setup_comments
|
53
|
+
@comments = context["Comments"]
|
54
|
+
@hello = @comments.add(:title => "Hello",
|
55
|
+
:content => "Hello Good-bye!",
|
56
|
+
:created_at => Time.parse("2009-08-09"),
|
57
|
+
:user => "morita")
|
58
|
+
@hello_only_in_content =
|
59
|
+
@comments.add(:title => "(no title)",
|
60
|
+
:content => "Hello! Hello! Hello!",
|
61
|
+
:created_at => Time.parse("2009-07-09"))
|
62
|
+
@test = @comments.add(:title => "title",
|
63
|
+
:content => "test",
|
64
|
+
:created_at => Time.parse("2009-06-09"),
|
65
|
+
:user => "gunyara-kun")
|
66
|
+
@japanese =
|
67
|
+
@comments.add(:title => "日本語",
|
68
|
+
:content => "うちのボロTVはまだ現役です",
|
69
|
+
:created_at => Time.parse("2009-06-09"),
|
70
|
+
:user => "darashi")
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_full_text_search
|
74
|
+
result = @comments.select do |record|
|
75
|
+
record.match("Hello") do |match_record|
|
76
|
+
(match_record.title * 100) |
|
77
|
+
match_record.content
|
78
|
+
end
|
79
|
+
end
|
80
|
+
assert_equal_select_result([["Hello", 101], ["(no title)", 3]],
|
81
|
+
result) do |record|
|
82
|
+
[record.title, record.score]
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_reference
|
87
|
+
result = @comments.select do |record|
|
88
|
+
full_text_match = record.match("Hello") do |match_record|
|
89
|
+
(match_record.title * 100) |
|
90
|
+
match_record.content
|
91
|
+
end
|
92
|
+
reference_match = record.match("darashi") do |match_record|
|
93
|
+
match_record.user * 1000
|
94
|
+
end
|
95
|
+
full_text_match | reference_match
|
96
|
+
end
|
97
|
+
assert_equal_select_result([["Hello", 101],
|
98
|
+
["(no title)", 3],
|
99
|
+
["日本語", 1000]],
|
100
|
+
result) do |record|
|
101
|
+
[record.title, record.score]
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
data/test/test-table.rb
CHANGED
@@ -46,15 +46,17 @@ class TableTest < Test::Unit::TestCase
|
|
46
46
|
|
47
47
|
def test_temporary_table_define_column_default_persistent
|
48
48
|
table = Groonga::Hash.create
|
49
|
-
|
50
|
-
|
49
|
+
assert_raise(Groonga::InvalidArgument) do
|
50
|
+
table.define_column("name", "ShortText")
|
51
|
+
end
|
51
52
|
end
|
52
53
|
|
53
54
|
def test_temporary_table_define_index_column_default_persistent
|
54
55
|
bookmarks = Groonga::Hash.create(:name => "Bookmarks")
|
55
56
|
terms = Groonga::Hash.create
|
56
|
-
|
57
|
-
|
57
|
+
assert_raise(Groonga::InvalidArgument) do
|
58
|
+
terms.define_index_column("url", bookmarks)
|
59
|
+
end
|
58
60
|
end
|
59
61
|
|
60
62
|
def test_define_column_default_persistent
|
@@ -430,6 +432,22 @@ class TableTest < Test::Unit::TestCase
|
|
430
432
|
bookmark["title"],
|
431
433
|
bookmark.key]
|
432
434
|
end)
|
435
|
+
assert_equal([[2, "groonga", "http://groonga.org/"],
|
436
|
+
[1, "Ruby", "http://ruby-lang.org/"]],
|
437
|
+
records.group(%w".bookmark").collect do |record|
|
438
|
+
bookmark = record.key
|
439
|
+
[record.n_sub_records,
|
440
|
+
bookmark["title"],
|
441
|
+
bookmark.key]
|
442
|
+
end)
|
443
|
+
end
|
444
|
+
|
445
|
+
def test_group_with_unknown_key
|
446
|
+
bookmarks = Groonga::Hash.create(:name => "Bookmarks")
|
447
|
+
message = "unknown group key: <\"nonexistent\">: <#{bookmarks.inspect}>"
|
448
|
+
assert_raise(ArgumentError.new(message)) do
|
449
|
+
bookmarks.group("nonexistent")
|
450
|
+
end
|
433
451
|
end
|
434
452
|
|
435
453
|
def test_union!
|
data/test/test-version.rb
CHANGED
@@ -20,7 +20,7 @@ class VersionTest < Test::Unit::TestCase
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def test_version
|
23
|
-
assert_match(/\A\d+\.\d+\.\d
|
23
|
+
assert_match(/\A\d+\.\d+\.\d+(?:\.\d+-[a-zA-Z\d]+)?\z/, Groonga.version)
|
24
24
|
assert_match(Groonga.version, Groonga::VERSION.join("."))
|
25
25
|
end
|
26
26
|
|
data/text/TUTORIAL.ja.rdoc
CHANGED
data/text/expression.rdoc
CHANGED
Binary file
|
Binary file
|
Binary file
|
@@ -106,6 +106,10 @@ typedef enum {
|
|
106
106
|
GRN_RETRY_MAX = -64,
|
107
107
|
GRN_INCOMPATIBLE_FILE_FORMAT = -65,
|
108
108
|
GRN_UPDATE_NOT_ALLOWED = -66,
|
109
|
+
GRN_TOO_SMALL_OFFSET = -67,
|
110
|
+
GRN_TOO_LARGE_OFFSET = -68,
|
111
|
+
GRN_TOO_SMALL_LIMIT = -69,
|
112
|
+
GRN_CAS_ERROR = -70
|
109
113
|
} grn_rc;
|
110
114
|
|
111
115
|
GRN_API grn_rc grn_init(void);
|
@@ -138,7 +142,8 @@ typedef enum {
|
|
138
142
|
GRN_CONTENT_NONE = 0,
|
139
143
|
GRN_CONTENT_TSV,
|
140
144
|
GRN_CONTENT_JSON,
|
141
|
-
GRN_CONTENT_XML
|
145
|
+
GRN_CONTENT_XML,
|
146
|
+
GRN_CONTENT_MSGPACK
|
142
147
|
} grn_content_type;
|
143
148
|
|
144
149
|
typedef struct _grn_obj grn_obj;
|
@@ -251,6 +256,7 @@ typedef unsigned short int grn_obj_flags;
|
|
251
256
|
#define GRN_OBJ_KEY_UINT (0x00<<3)
|
252
257
|
#define GRN_OBJ_KEY_INT (0x01<<3)
|
253
258
|
#define GRN_OBJ_KEY_FLOAT (0x02<<3)
|
259
|
+
#define GRN_OBJ_KEY_GEO_POINT (0x03<<3)
|
254
260
|
|
255
261
|
#define GRN_OBJ_KEY_WITH_SIS (0x01<<6)
|
256
262
|
#define GRN_OBJ_KEY_NORMALIZE (0x01<<7)
|
@@ -481,7 +487,8 @@ GRN_API grn_obj *grn_ctx_at(grn_ctx *ctx, grn_id id);
|
|
481
487
|
GRN_API grn_obj *grn_type_create(grn_ctx *ctx, const char *name, unsigned name_size,
|
482
488
|
grn_obj_flags flags, unsigned int size);
|
483
489
|
|
484
|
-
GRN_API grn_rc
|
490
|
+
GRN_API grn_rc grn_db_register(grn_ctx *ctx, const char *path);
|
491
|
+
GRN_API grn_rc grn_db_register_by_name(grn_ctx *ctx, const char *name);
|
485
492
|
|
486
493
|
/**
|
487
494
|
* grn_proc_create:
|
@@ -502,18 +509,17 @@ typedef struct {
|
|
502
509
|
grn_obj value;
|
503
510
|
} grn_expr_var;
|
504
511
|
|
505
|
-
typedef grn_rc
|
512
|
+
typedef grn_rc (*grn_module_func)(grn_ctx *ctx);
|
506
513
|
|
507
514
|
typedef enum {
|
508
515
|
GRN_PROC_TOKENIZER = 1,
|
509
|
-
|
516
|
+
GRN_PROC_COMMAND,
|
510
517
|
GRN_PROC_FUNCTION,
|
511
518
|
GRN_PROC_HOOK
|
512
519
|
} grn_proc_type;
|
513
520
|
|
514
521
|
GRN_API grn_obj *grn_proc_create(grn_ctx *ctx,
|
515
|
-
const char *name, unsigned name_size,
|
516
|
-
const char *path, grn_proc_type type,
|
522
|
+
const char *name, unsigned name_size, grn_proc_type type,
|
517
523
|
grn_proc_func *init, grn_proc_func *next, grn_proc_func *fin,
|
518
524
|
unsigned nvars, grn_expr_var *vars);
|
519
525
|
/**
|
@@ -658,22 +664,57 @@ typedef grn_obj grn_table_cursor;
|
|
658
664
|
#define GRN_CURSOR_BY_KEY (0x00<<3)
|
659
665
|
#define GRN_CURSOR_BY_ID (0x01<<3)
|
660
666
|
#define GRN_CURSOR_PREFIX (0x01<<4)
|
667
|
+
#define GRN_CURSOR_SIZE_BY_BIT (0x01<<5)
|
661
668
|
|
662
669
|
/**
|
663
670
|
* grn_table_cursor_open:
|
664
671
|
* @table: 対象table
|
665
|
-
* @min: keyの下限 (NULLは下限なしと見なす)
|
666
|
-
* @min_size: @minのsize
|
667
|
-
* @max: keyの上限 (NULLは上限なしと見なす)
|
668
|
-
* @max_size: @maxのsize
|
672
|
+
* @min: keyの下限 (NULLは下限なしと見なす)、GRN_CURSOR_PREFIXについては後述
|
673
|
+
* @min_size: @minのsize、GRN_CURSOR_PREFIXについては後述
|
674
|
+
* @max: keyの上限 (NULLは上限なしと見なす)、GRN_CURSOR_PREFIXについては後述
|
675
|
+
* @max_size: @maxのsize、GRN_CURSOR_PREFIXについては無視される場合がある
|
669
676
|
* @flags: GRN_CURSOR_ASCENDINGを指定すると昇順にレコードを取り出す。
|
670
677
|
* GRN_CURSOR_DESCENDINGを指定すると降順にレコードを取り出す。
|
678
|
+
* (下記GRN_CURSOR_PREFIXを指定し、
|
679
|
+
* keyが近いレコードを取得する場合、
|
680
|
+
* もしくは、common prefix searchを行う場合には、
|
681
|
+
* GRN_CURSOR_ASCENDING/DESCENDINGは無視される)
|
671
682
|
* GRN_CURSOR_GTを指定するとminに一致したkeyをcursorの範囲に含まない。
|
683
|
+
* (minがNULLの場合もしくは、下記GRN_CURSOR_PREFIXを指定し、
|
684
|
+
* keyが近いレコードを取得する場合、
|
685
|
+
* もしくは、common prefix searchを行う場合には、
|
686
|
+
* GRN_CURSOR_GTは無視される)
|
672
687
|
* GRN_CURSOR_LTを指定するとmaxに一致したkeyをcursorの範囲に含まない。
|
688
|
+
* (maxがNULLの場合もしくは、下記GRN_CURSOR_PREFIXを指定した場合には、
|
689
|
+
* GRN_CURSOR_LTは無視される)
|
673
690
|
* GRN_CURSOR_BY_IDを指定するとID順にレコードを取り出す。
|
691
|
+
* (下記GRN_CURSOR_PREFIXを指定した場合には、
|
692
|
+
* GRN_CURSOR_BY_IDは無視される)
|
674
693
|
* GRN_OBJ_TABLE_PAT_KEYを指定したtableについては、
|
675
694
|
* GRN_CURSOR_BY_KEYを指定するとkey順にレコードを取り出す。
|
676
|
-
* (GRN_OBJ_TABLE_HASH_KEY,GRN_OBJ_TABLE_NO_KEY
|
695
|
+
* (GRN_OBJ_TABLE_HASH_KEY,GRN_OBJ_TABLE_NO_KEYを指定したテーブルでは
|
696
|
+
* GRN_CURSOR_BY_KEYは無視される)
|
697
|
+
* GRN_CURSOR_PREFIXを指定すると、
|
698
|
+
* GRN_OBJ_TABLE_PAT_KEYを指定したテーブルに関する
|
699
|
+
* 下記のレコードを取り出すカーソルが作成される。
|
700
|
+
* maxがNULLの場合には、minとkeyが前方一致するレコードを取り出す。
|
701
|
+
* maxが指定され、かつ、テーブルのkeyがShortText型である場合、
|
702
|
+
* maxとcommon prefix searchを行い、
|
703
|
+
* common prefixがmin_sizeバイト以上のレコードを取り出す。
|
704
|
+
* この場合、minパラメータは無視される。
|
705
|
+
* maxが指定され、かつ、テーブルのkeyが固定長型の場合、
|
706
|
+
* maxと値が近い順番にレコードを取り出す。
|
707
|
+
* ただし、keyのパトリシア木で、min_sizeバイト未満のビットに対する
|
708
|
+
* ノードで、maxと異なった方向にあるノードに対応するレコードについては
|
709
|
+
* 取り出さない。
|
710
|
+
* 「keyが近い」ことの定義は、keyの型によって異なる。
|
711
|
+
* (GeoPoint型では、地理的に近いものほど近いものとし、
|
712
|
+
* 数値型では、数値が近いものほど近いものとする)
|
713
|
+
* この場合、maxで与えられるポインタが指す値は、
|
714
|
+
* 対象テーブルのkeyサイズと同じか超える幅である必要がある。
|
715
|
+
* minとmax_sizeは無視される。
|
716
|
+
* GRN_CURSOR_BY_ID/GRN_CURSOR_BY_KEY/GRN_CURSOR_PREFIXの3フラグは、
|
717
|
+
* 同時に指定することができない。
|
677
718
|
* @offset: 該当する範囲のレコードのうち、(0ベースで)offset番目からレコードを取り出す。
|
678
719
|
* @limit: 該当する範囲のレコードのうち、limit件のみを取り出す。
|
679
720
|
* -1が指定された場合は、全件が指定されたものとみなす。
|
@@ -1319,6 +1360,15 @@ GRN_API grn_rc grn_obj_clear_lock(grn_ctx *ctx, grn_obj *obj);
|
|
1319
1360
|
**/
|
1320
1361
|
GRN_API unsigned int grn_obj_is_locked(grn_ctx *ctx, grn_obj *obj);
|
1321
1362
|
|
1363
|
+
/**
|
1364
|
+
* grn_obj_defrag;
|
1365
|
+
* @obj: 対象object
|
1366
|
+
*
|
1367
|
+
* objの占有するDBファイル領域のうち、可能な領域をthresholdを指標としてフラグメントの解消を行う。
|
1368
|
+
* フラグメント解消が実行されたセグメントの数を返す。
|
1369
|
+
**/
|
1370
|
+
GRN_API int grn_obj_defrag(grn_ctx *ctx, grn_obj *obj, int threshold);
|
1371
|
+
|
1322
1372
|
/**
|
1323
1373
|
* grn_obj_db:
|
1324
1374
|
* @obj: 対象object
|
@@ -1658,14 +1708,16 @@ struct _grn_obj_format {
|
|
1658
1708
|
int nhits;
|
1659
1709
|
int offset;
|
1660
1710
|
int limit;
|
1711
|
+
int hits_offset;
|
1661
1712
|
int flags;
|
1662
1713
|
};
|
1663
1714
|
|
1664
|
-
#define GRN_OBJ_FORMAT_INIT(format,format_nhits,format_offset,format_limit) do { \
|
1715
|
+
#define GRN_OBJ_FORMAT_INIT(format,format_nhits,format_offset,format_limit,format_hits_offset) do { \
|
1665
1716
|
GRN_PTR_INIT(&(format)->columns, GRN_OBJ_VECTOR, GRN_ID_NIL);\
|
1666
1717
|
(format)->nhits = (format_nhits);\
|
1667
1718
|
(format)->offset = (format_offset);\
|
1668
1719
|
(format)->limit = (format_limit);\
|
1720
|
+
(format)->hits_offset = (format_hits_offset);\
|
1669
1721
|
} while (0)
|
1670
1722
|
|
1671
1723
|
#define GRN_OBJ_FORMAT_FIN(ctx,format) do {\
|
@@ -1675,6 +1727,10 @@ struct _grn_obj_format {
|
|
1675
1727
|
GRN_OBJ_FIN((ctx), &(format)->columns);\
|
1676
1728
|
} while (0)
|
1677
1729
|
|
1730
|
+
GRN_API void grn_output_obj(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
|
1731
|
+
grn_obj *obj, grn_obj_format *format);
|
1732
|
+
|
1733
|
+
/* obsolete */
|
1678
1734
|
GRN_API grn_rc grn_text_otoj(grn_ctx *ctx, grn_obj *bulk, grn_obj *obj,
|
1679
1735
|
grn_obj_format *format);
|
1680
1736
|
|
@@ -1747,6 +1803,10 @@ GRN_API grn_rc grn_text_otoj(grn_ctx *ctx, grn_obj *bulk, grn_obj *obj,
|
|
1747
1803
|
#define GRN_PTR_INIT(obj,flags,domain)\
|
1748
1804
|
GRN_OBJ_INIT((obj), ((flags) & GRN_OBJ_VECTOR) ? GRN_PVECTOR : GRN_PTR,\
|
1749
1805
|
((flags) & GRN_OBJ_DO_SHALLOW_COPY), (domain))
|
1806
|
+
#define GRN_TOKYO_GEO_POINT_INIT(obj,flags) \
|
1807
|
+
GRN_VALUE_FIX_SIZE_INIT(obj, flags, GRN_DB_TOKYO_GEO_POINT)
|
1808
|
+
#define GRN_WGS84_GEO_POINT_INIT(obj,flags) \
|
1809
|
+
GRN_VALUE_FIX_SIZE_INIT(obj, flags, GRN_DB_WGS84_GEO_POINT)
|
1750
1810
|
|
1751
1811
|
#define GRN_BOOL_SET(ctx,obj,val) do {\
|
1752
1812
|
unsigned char _val = (unsigned char)(val);\
|
@@ -1798,6 +1858,18 @@ GRN_API grn_rc grn_text_otoj(grn_ctx *ctx, grn_obj *bulk, grn_obj *obj,
|
|
1798
1858
|
grn_bulk_write_from((ctx), (obj), (char *)&_val, 0, sizeof(grn_obj *));\
|
1799
1859
|
} while (0)
|
1800
1860
|
|
1861
|
+
typedef struct {
|
1862
|
+
int latitude;
|
1863
|
+
int longitude;
|
1864
|
+
} grn_geo_point;
|
1865
|
+
|
1866
|
+
#define GRN_GEO_POINT_SET(ctx,obj,_latitude,_longitude) do {\
|
1867
|
+
grn_geo_point _val;\
|
1868
|
+
_val.latitude = (int)(_latitude);\
|
1869
|
+
_val.longitude = (int)(_longitude);\
|
1870
|
+
grn_bulk_write_from((ctx), (obj), (char *)&_val, 0, sizeof(grn_geo_point));\
|
1871
|
+
} while (0)
|
1872
|
+
|
1801
1873
|
#define GRN_BOOL_SET_AT(ctx,obj,offset,val) do {\
|
1802
1874
|
unsigned char _val = (unsigned char)(val);\
|
1803
1875
|
grn_bulk_write_from((ctx), (obj), (char *)&_val,\
|
@@ -1885,6 +1957,11 @@ GRN_API void grn_time_now(grn_ctx *ctx, grn_obj *obj);
|
|
1885
1957
|
#define GRN_TIME_VALUE GRN_INT64_VALUE
|
1886
1958
|
#define GRN_RECORD_VALUE(obj) (*((grn_id *)GRN_BULK_HEAD(obj)))
|
1887
1959
|
#define GRN_PTR_VALUE(obj) (*((grn_obj **)GRN_BULK_HEAD(obj)))
|
1960
|
+
#define GRN_GEO_POINT_VALUE(obj,_latitude,_longitude) do {\
|
1961
|
+
grn_geo_point *_val = (grn_geo_point *)GRN_BULK_HEAD(obj);\
|
1962
|
+
_latitude = _val->latitude;\
|
1963
|
+
_longitude = _val->longitude;\
|
1964
|
+
} while (0)
|
1888
1965
|
|
1889
1966
|
#define GRN_BOOL_VALUE_AT(obj,offset) (((unsigned char *)GRN_BULK_HEAD(obj))[offset])
|
1890
1967
|
#define GRN_INT8_VALUE_AT(obj,offset) (((signed char *)GRN_BULK_HEAD(obj))[offset])
|
@@ -1895,7 +1972,7 @@ GRN_API void grn_time_now(grn_ctx *ctx, grn_obj *obj);
|
|
1895
1972
|
#define GRN_UINT32_VALUE_AT(obj,offset) (((unsigned int *)GRN_BULK_HEAD(obj))[offset])
|
1896
1973
|
#define GRN_INT64_VALUE_AT(obj,offset) (((long long int *)GRN_BULK_HEAD(obj))[offset])
|
1897
1974
|
#define GRN_UINT64_VALUE_AT(obj,offset) (((long long unsigned int *)GRN_BULK_HEAD(obj))[offset])
|
1898
|
-
#define GRN_FLOAT_VALUE_AT(
|
1975
|
+
#define GRN_FLOAT_VALUE_AT(obj,offset) (((double *)GRN_BULK_HEAD(obj))[offset])
|
1899
1976
|
#define GRN_TIME_VALUE_AT GRN_INT64_VALUE_AT
|
1900
1977
|
#define GRN_RECORD_VALUE_AT(obj,offset) (((grn_id *)GRN_BULK_HEAD(obj))[offset])
|
1901
1978
|
#define GRN_PTR_VALUE_AT(obj,offset) (((grn_obj **)GRN_BULK_HEAD(obj))[offset])
|
@@ -1992,13 +2069,10 @@ GRN_API grn_obj *grn_expr_append_const_int(grn_ctx *ctx, grn_obj *expr, int i,
|
|
1992
2069
|
GRN_API grn_rc grn_expr_append_op(grn_ctx *ctx, grn_obj *expr, grn_operator op, int nargs);
|
1993
2070
|
|
1994
2071
|
GRN_API grn_rc grn_expr_compile(grn_ctx *ctx, grn_obj *expr);
|
1995
|
-
GRN_API
|
2072
|
+
GRN_API grn_obj *grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs);
|
1996
2073
|
GRN_API grn_rc grn_ctx_push(grn_ctx *ctx, grn_obj *obj);
|
1997
2074
|
GRN_API grn_obj *grn_ctx_pop(grn_ctx *ctx);
|
1998
2075
|
|
1999
|
-
#define GRN_EXPR_CALL(ctx,expr,nargs) \
|
2000
|
-
(grn_expr_exec((ctx), (expr), (nargs)), grn_ctx_pop(ctx))
|
2001
|
-
|
2002
2076
|
GRN_API grn_obj *grn_expr_alloc(grn_ctx *ctx, grn_obj *expr,
|
2003
2077
|
grn_id domain, grn_obj_flags flags);
|
2004
2078
|
|
@@ -2042,21 +2116,6 @@ GRN_API grn_table_sort_key *grn_table_sort_key_from_str(grn_ctx *ctx,
|
|
2042
2116
|
GRN_API grn_rc grn_table_sort_key_close(grn_ctx *ctx,
|
2043
2117
|
grn_table_sort_key *keys, unsigned nkeys);
|
2044
2118
|
|
2045
|
-
GRN_API grn_rc grn_select(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
|
2046
|
-
const char *table, unsigned table_len,
|
2047
|
-
const char *match_columns, unsigned match_columns_len,
|
2048
|
-
const char *query, unsigned query_len,
|
2049
|
-
const char *filter, unsigned filter_len,
|
2050
|
-
const char *scorer, unsigned scorer_len,
|
2051
|
-
const char *sortby, unsigned sortby_len,
|
2052
|
-
const char *output_columns, unsigned output_columns_len,
|
2053
|
-
int offset, int hits,
|
2054
|
-
const char *drilldown, unsigned drilldown_len,
|
2055
|
-
const char *drilldown_sortby, unsigned drilldown_sortby_len,
|
2056
|
-
const char *drilldown_output_columns,
|
2057
|
-
unsigned drilldown_output_columns_len,
|
2058
|
-
int drilldown_offset, int drilldown_hits);
|
2059
|
-
|
2060
2119
|
GRN_API grn_rc grn_load(grn_ctx *ctx, grn_content_type input_type,
|
2061
2120
|
const char *table, unsigned table_len,
|
2062
2121
|
const char *columns, unsigned columns_len,
|
@@ -2085,6 +2144,8 @@ struct _grn_ctx_info {
|
|
2085
2144
|
GRN_API grn_rc grn_ctx_info_get(grn_ctx *ctx, grn_ctx_info *info);
|
2086
2145
|
|
2087
2146
|
GRN_API grn_rc grn_set_segv_handler(void);
|
2147
|
+
GRN_API grn_rc grn_set_int_handler(void);
|
2148
|
+
GRN_API grn_rc grn_set_term_handler(void);
|
2088
2149
|
|
2089
2150
|
/* hash */
|
2090
2151
|
|
Binary file
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# cast.la - a libtool library file
|
2
|
+
# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2
|
3
|
+
#
|
4
|
+
# Please DO NOT delete this file!
|
5
|
+
# It is necessary for linking the library.
|
6
|
+
|
7
|
+
# The name that we can dlopen(3).
|
8
|
+
dlname='cast.dll'
|
9
|
+
|
10
|
+
# Names of this library.
|
11
|
+
library_names='cast.dll.a'
|
12
|
+
|
13
|
+
# The name of the static archive.
|
14
|
+
old_library='cast.a'
|
15
|
+
|
16
|
+
# Linker flags that can not go in dependency_libs.
|
17
|
+
inherited_linker_flags=''
|
18
|
+
|
19
|
+
# Libraries that this one depends upon.
|
20
|
+
dependency_libs=' /tmp/local/lib/libgroonga.la -ladvapi32 -lws2_32'
|
21
|
+
|
22
|
+
# Names of additional weak libraries provided by this library
|
23
|
+
weak_library_names=''
|
24
|
+
|
25
|
+
# Version information for cast.
|
26
|
+
current=0
|
27
|
+
age=0
|
28
|
+
revision=0
|
29
|
+
|
30
|
+
# Is this an already installed library?
|
31
|
+
installed=yes
|
32
|
+
|
33
|
+
# Should we warn about portability when linking against -modules?
|
34
|
+
shouldnotlink=yes
|
35
|
+
|
36
|
+
# Files to dlopen/dlpreopen
|
37
|
+
dlopen=''
|
38
|
+
dlpreopen=''
|
39
|
+
|
40
|
+
# Directory that this library needs to be installed in:
|
41
|
+
libdir='/tmp/local/lib/groonga/modules/functions'
|