rroonga 6.0.4 → 6.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/text/news.md +39 -0
- data/ext/groonga/rb-grn-id.c +56 -0
- data/ext/groonga/rb-grn-name.c +55 -0
- data/ext/groonga/rb-grn-object.c +166 -0
- data/ext/groonga/rb-grn.h +3 -1
- data/ext/groonga/rb-groonga.c +2 -0
- data/rroonga-build.rb +3 -3
- data/test/test-column.rb +34 -0
- data/test/test-database.rb +21 -0
- data/test/test-id.rb +47 -0
- data/test/test-name.rb +34 -0
- data/test/test-table.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21579f26130016f0232888646e9b65d405c0f943
|
4
|
+
data.tar.gz: f6a1817d3951f0b8f2553ca67235a50aef56677c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 170e20bca5a5568bd99b646a3083b944f9b4ae5fc54f1e1322c3c5e8fc8b9423fd8d9e274341b189e192083ea4671b7c2eef40b774e24f6624cf58095de41590
|
7
|
+
data.tar.gz: 7854edb1da626c4120602f8c61b188d11944e1bb0f6d1f4ee4e25fd0b9f810f555e18c570fa927f765f70c452715e444486c0dff562e886a9caccd553d6f95d5
|
data/doc/text/news.md
CHANGED
@@ -1,5 +1,44 @@
|
|
1
1
|
# NEWS
|
2
2
|
|
3
|
+
## 6.0.5: 2016-07-15 {#version-6-0-5}
|
4
|
+
|
5
|
+
### Improvements
|
6
|
+
|
7
|
+
* Supported Groonga 6.0.5. Groonga 6.0.4 or older aren't supported.
|
8
|
+
|
9
|
+
* {Groonga::ID}: Added a module that provided object ID related
|
10
|
+
features.
|
11
|
+
|
12
|
+
* {Groonga::ID.builtin?}: Added a new predicate method that checks
|
13
|
+
whether the given ID is ID for builtin object or not.
|
14
|
+
|
15
|
+
* {Groonga::ID::NIL}: Added a new constant that represents invalid ID.
|
16
|
+
|
17
|
+
* {Groonga::ID::MAX}: Added a new constant that represents the maximum ID.
|
18
|
+
|
19
|
+
* {Groonga::Name}: Added a new module that provides object name
|
20
|
+
related features.
|
21
|
+
|
22
|
+
* {Groonga::Name.column?}: Added a new predicate method that checks
|
23
|
+
whether the given name is column object name or not.
|
24
|
+
|
25
|
+
* {Groonga::Object#column?}: Added a new predicate for column.
|
26
|
+
|
27
|
+
* {Groonga::Object#reference_column?}: Added a new predicate for
|
28
|
+
column that uses table as value type.
|
29
|
+
|
30
|
+
* {Groonga::Object#index_column?}: Added a new predicate for
|
31
|
+
index column.
|
32
|
+
|
33
|
+
* {Groonga::Object#touch}: Added a new method that updates the last
|
34
|
+
modified time of the object.
|
35
|
+
|
36
|
+
* {Groonga::Object#last_modified}: Added a new method that returns
|
37
|
+
the last modified time of the object.
|
38
|
+
|
39
|
+
* {Groonga::Object#dirty?}: Added a new method that checks whether
|
40
|
+
the object is changed after the last flush.
|
41
|
+
|
3
42
|
## 6.0.4: 2016-06-14 {#version-6-0-4}
|
4
43
|
|
5
44
|
### Improvements
|
@@ -0,0 +1,56 @@
|
|
1
|
+
/* -*- mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2
|
+
/*
|
3
|
+
Copyright (C) 2016 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
*/
|
18
|
+
|
19
|
+
#include "rb-grn.h"
|
20
|
+
|
21
|
+
/*
|
22
|
+
* Document-class: Groonga::ID
|
23
|
+
*
|
24
|
+
* This module provides Groonga ID related features.
|
25
|
+
*/
|
26
|
+
|
27
|
+
/*
|
28
|
+
* @overload builtin?(id)
|
29
|
+
* @param [Integer] id The ID to be confirmed.
|
30
|
+
* @return [Boolean] `true` if the `id` is builtin, `false` otherwise.
|
31
|
+
*
|
32
|
+
* @since 6.0.5
|
33
|
+
*/
|
34
|
+
static VALUE
|
35
|
+
rb_grn_id_s_builtin_p (VALUE self, VALUE rb_id)
|
36
|
+
{
|
37
|
+
grn_ctx *ctx = NULL;
|
38
|
+
grn_id id;
|
39
|
+
|
40
|
+
id = NUM2INT(rb_id);
|
41
|
+
|
42
|
+
return CBOOL2RVAL(grn_id_is_builtin(ctx, id));
|
43
|
+
}
|
44
|
+
|
45
|
+
void
|
46
|
+
rb_grn_init_id (VALUE mGrn)
|
47
|
+
{
|
48
|
+
VALUE mGrnID;
|
49
|
+
|
50
|
+
mGrnID = rb_define_module_under(mGrn, "ID");
|
51
|
+
|
52
|
+
rb_define_const(mGrnID, "NIL", INT2NUM(GRN_ID_NIL));
|
53
|
+
rb_define_const(mGrnID, "MAX", INT2NUM(GRN_ID_MAX));
|
54
|
+
|
55
|
+
rb_define_singleton_method(mGrnID, "builtin?", rb_grn_id_s_builtin_p, 1);
|
56
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
/* -*- mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2
|
+
/*
|
3
|
+
Copyright (C) 2016 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
*/
|
18
|
+
|
19
|
+
#include "rb-grn.h"
|
20
|
+
|
21
|
+
/*
|
22
|
+
* Document-class: Groonga::Name
|
23
|
+
*
|
24
|
+
* This module provides object name related features.
|
25
|
+
*/
|
26
|
+
|
27
|
+
/*
|
28
|
+
* @overload column?(name)
|
29
|
+
* @param [String] name The name to be confirmed.
|
30
|
+
* @return [Boolean] `true` if the `name` is column, `false` otherwise.
|
31
|
+
*
|
32
|
+
* @since 6.0.5
|
33
|
+
*/
|
34
|
+
static VALUE
|
35
|
+
rb_grn_name_s_column_p (VALUE self, VALUE rb_name)
|
36
|
+
{
|
37
|
+
grn_ctx *ctx = NULL;
|
38
|
+
const char *name;
|
39
|
+
size_t name_size;
|
40
|
+
|
41
|
+
name = StringValueCStr(rb_name);
|
42
|
+
name_size = RSTRING_LEN(rb_name);
|
43
|
+
|
44
|
+
return CBOOL2RVAL(grn_obj_name_is_column(ctx, name, name_size));
|
45
|
+
}
|
46
|
+
|
47
|
+
void
|
48
|
+
rb_grn_init_name (VALUE mGrn)
|
49
|
+
{
|
50
|
+
VALUE mGrnName;
|
51
|
+
|
52
|
+
mGrnName = rb_define_module_under(mGrn, "Name");
|
53
|
+
|
54
|
+
rb_define_singleton_method(mGrnName, "column?", rb_grn_name_s_column_p, 1);
|
55
|
+
}
|
data/ext/groonga/rb-grn-object.c
CHANGED
@@ -1549,6 +1549,83 @@ rb_grn_object_table_p (VALUE self)
|
|
1549
1549
|
return CBOOL2RVAL(table_p);
|
1550
1550
|
}
|
1551
1551
|
|
1552
|
+
/*
|
1553
|
+
* Checks whether the object is column or not.
|
1554
|
+
*
|
1555
|
+
* @overload column?
|
1556
|
+
* @return [Boolean] `true` if the object is column, `false` otherwise.
|
1557
|
+
*
|
1558
|
+
* @since 6.0.5
|
1559
|
+
*/
|
1560
|
+
static VALUE
|
1561
|
+
rb_grn_object_column_p (VALUE self)
|
1562
|
+
{
|
1563
|
+
grn_ctx *context;
|
1564
|
+
grn_obj *object;
|
1565
|
+
grn_bool column_p = GRN_FALSE;
|
1566
|
+
|
1567
|
+
rb_grn_object_deconstruct(SELF(self), &object, &context,
|
1568
|
+
NULL, NULL, NULL, NULL);
|
1569
|
+
|
1570
|
+
if (context && object) {
|
1571
|
+
column_p = grn_obj_is_column(context, object);
|
1572
|
+
}
|
1573
|
+
|
1574
|
+
return CBOOL2RVAL(column_p);
|
1575
|
+
}
|
1576
|
+
|
1577
|
+
/*
|
1578
|
+
* Checks whether the object is reference column or not.
|
1579
|
+
*
|
1580
|
+
* @overload reference_column?
|
1581
|
+
* @return [Boolean] `true` if the object is reference column,
|
1582
|
+
* `false` otherwise.
|
1583
|
+
*
|
1584
|
+
* @since 6.0.5
|
1585
|
+
*/
|
1586
|
+
static VALUE
|
1587
|
+
rb_grn_object_reference_column_p (VALUE self)
|
1588
|
+
{
|
1589
|
+
grn_ctx *context;
|
1590
|
+
grn_obj *object;
|
1591
|
+
grn_bool reference_column_p = GRN_FALSE;
|
1592
|
+
|
1593
|
+
rb_grn_object_deconstruct(SELF(self), &object, &context,
|
1594
|
+
NULL, NULL, NULL, NULL);
|
1595
|
+
|
1596
|
+
if (context && object) {
|
1597
|
+
reference_column_p = grn_obj_is_reference_column(context, object);
|
1598
|
+
}
|
1599
|
+
|
1600
|
+
return CBOOL2RVAL(reference_column_p);
|
1601
|
+
}
|
1602
|
+
|
1603
|
+
/*
|
1604
|
+
* Checks whether the object is index column or not.
|
1605
|
+
*
|
1606
|
+
* @overload index_column?
|
1607
|
+
* @return [Boolean] `true` if the object is index column,
|
1608
|
+
* `false` otherwise.
|
1609
|
+
*
|
1610
|
+
* @since 6.0.5
|
1611
|
+
*/
|
1612
|
+
static VALUE
|
1613
|
+
rb_grn_object_index_column_p (VALUE self)
|
1614
|
+
{
|
1615
|
+
grn_ctx *context;
|
1616
|
+
grn_obj *object;
|
1617
|
+
grn_bool index_column_p = GRN_FALSE;
|
1618
|
+
|
1619
|
+
rb_grn_object_deconstruct(SELF(self), &object, &context,
|
1620
|
+
NULL, NULL, NULL, NULL);
|
1621
|
+
|
1622
|
+
if (context && object) {
|
1623
|
+
index_column_p = grn_obj_is_index_column(context, object);
|
1624
|
+
}
|
1625
|
+
|
1626
|
+
return CBOOL2RVAL(index_column_p);
|
1627
|
+
}
|
1628
|
+
|
1552
1629
|
/*
|
1553
1630
|
* Checks whether the object is procedure or not.
|
1554
1631
|
*
|
@@ -1767,6 +1844,84 @@ rb_grn_object_key_accessor_p (VALUE self)
|
|
1767
1844
|
return CBOOL2RVAL(key_accessor_p);
|
1768
1845
|
}
|
1769
1846
|
|
1847
|
+
/*
|
1848
|
+
* Update the last modified time of the `object`. It's meaningful only
|
1849
|
+
* for persistent database, table and column.
|
1850
|
+
*
|
1851
|
+
* @overload touch(time=nil)
|
1852
|
+
* @param [Time, nil] time (nil) The last modified time.
|
1853
|
+
* If `time` is `nil`, the current time is used.
|
1854
|
+
* @return [void]
|
1855
|
+
*
|
1856
|
+
* @since 6.0.5
|
1857
|
+
*/
|
1858
|
+
static VALUE
|
1859
|
+
rb_grn_object_touch (int argc, VALUE *argv, VALUE self)
|
1860
|
+
{
|
1861
|
+
grn_ctx *context;
|
1862
|
+
grn_obj *object;
|
1863
|
+
VALUE rb_time;
|
1864
|
+
grn_timeval time_buffer;
|
1865
|
+
grn_timeval *time = NULL;
|
1866
|
+
|
1867
|
+
rb_grn_object_deconstruct(SELF(self), &object, &context,
|
1868
|
+
NULL, NULL, NULL, NULL);
|
1869
|
+
if (!context || !object) {
|
1870
|
+
return Qnil;
|
1871
|
+
}
|
1872
|
+
|
1873
|
+
rb_scan_args(argc, argv, "01", &rb_time);
|
1874
|
+
if (!NIL_P(rb_time)) {
|
1875
|
+
time_buffer.tv_sec = NUM2LONG(rb_funcall(rb_time, rb_intern("sec"), 0));
|
1876
|
+
time_buffer.tv_nsec = NUM2INT(rb_funcall(rb_time, rb_intern("nsec"), 0));
|
1877
|
+
time = &time_buffer;
|
1878
|
+
}
|
1879
|
+
|
1880
|
+
grn_obj_touch(context, object, time);
|
1881
|
+
rb_grn_context_check(context, self);
|
1882
|
+
|
1883
|
+
return Qnil;
|
1884
|
+
}
|
1885
|
+
|
1886
|
+
/*
|
1887
|
+
* @overload last_modified
|
1888
|
+
* @return [Time] The last modified time of the object.
|
1889
|
+
*
|
1890
|
+
* @since 6.0.5
|
1891
|
+
*/
|
1892
|
+
static VALUE
|
1893
|
+
rb_grn_object_get_last_modified (VALUE self)
|
1894
|
+
{
|
1895
|
+
grn_ctx *context;
|
1896
|
+
grn_obj *object;
|
1897
|
+
uint32_t last_modified;
|
1898
|
+
|
1899
|
+
rb_grn_object_deconstruct(SELF(self), &object, &context,
|
1900
|
+
NULL, NULL, NULL, NULL);
|
1901
|
+
last_modified = grn_obj_get_last_modified(context, object);
|
1902
|
+
return rb_funcall(rb_cTime, rb_intern("at"), 1, UINT2NUM(last_modified));
|
1903
|
+
}
|
1904
|
+
|
1905
|
+
|
1906
|
+
/*
|
1907
|
+
* @overload dirty?
|
1908
|
+
* @return [Boolean] `true` if the object isn't flushed after the last change.
|
1909
|
+
*
|
1910
|
+
* @since 6.0.5
|
1911
|
+
*/
|
1912
|
+
static VALUE
|
1913
|
+
rb_grn_object_dirty_p (VALUE self)
|
1914
|
+
{
|
1915
|
+
grn_ctx *context;
|
1916
|
+
grn_obj *object;
|
1917
|
+
grn_bool is_dirty;
|
1918
|
+
|
1919
|
+
rb_grn_object_deconstruct(SELF(self), &object, &context,
|
1920
|
+
NULL, NULL, NULL, NULL);
|
1921
|
+
is_dirty = grn_obj_is_dirty(context, object);
|
1922
|
+
return CBOOL2RVAL(is_dirty);
|
1923
|
+
}
|
1924
|
+
|
1770
1925
|
void
|
1771
1926
|
rb_grn_init_object (VALUE mGrn)
|
1772
1927
|
{
|
@@ -1803,6 +1958,11 @@ rb_grn_init_object (VALUE mGrn)
|
|
1803
1958
|
|
1804
1959
|
rb_define_method(rb_cGrnObject, "builtin?", rb_grn_object_builtin_p, 0);
|
1805
1960
|
rb_define_method(rb_cGrnObject, "table?", rb_grn_object_table_p, 0);
|
1961
|
+
rb_define_method(rb_cGrnObject, "column?", rb_grn_object_column_p, 0);
|
1962
|
+
rb_define_method(rb_cGrnObject, "reference_column?",
|
1963
|
+
rb_grn_object_reference_column_p, 0);
|
1964
|
+
rb_define_method(rb_cGrnObject, "index_column?",
|
1965
|
+
rb_grn_object_index_column_p, 0);
|
1806
1966
|
rb_define_method(rb_cGrnObject, "procedure?", rb_grn_object_procedure_p, 0);
|
1807
1967
|
rb_define_method(rb_cGrnObject, "function_procedure?",
|
1808
1968
|
rb_grn_object_function_procedure_p, 0);
|
@@ -1818,4 +1978,10 @@ rb_grn_init_object (VALUE mGrn)
|
|
1818
1978
|
rb_grn_object_accessor_p, 0);
|
1819
1979
|
rb_define_method(rb_cGrnObject, "key_accessor?",
|
1820
1980
|
rb_grn_object_key_accessor_p, 0);
|
1981
|
+
|
1982
|
+
rb_define_method(rb_cGrnObject, "touch", rb_grn_object_touch, -1);
|
1983
|
+
rb_define_method(rb_cGrnObject, "last_modified",
|
1984
|
+
rb_grn_object_get_last_modified, 0);
|
1985
|
+
rb_define_method(rb_cGrnObject, "dirty?",
|
1986
|
+
rb_grn_object_dirty_p, 0);
|
1821
1987
|
}
|
data/ext/groonga/rb-grn.h
CHANGED
@@ -99,7 +99,7 @@ RB_GRN_BEGIN_DECLS
|
|
99
99
|
|
100
100
|
#define RB_GRN_MAJOR_VERSION 6
|
101
101
|
#define RB_GRN_MINOR_VERSION 0
|
102
|
-
#define RB_GRN_MICRO_VERSION
|
102
|
+
#define RB_GRN_MICRO_VERSION 5
|
103
103
|
|
104
104
|
#define RB_GRN_OBJECT(object) ((RbGrnObject *)(object))
|
105
105
|
#define RB_GRN_NAMED_OBJECT(object) ((RbGrnNamedObject *)(object))
|
@@ -365,6 +365,8 @@ void rb_grn_init_index (VALUE mGrn);
|
|
365
365
|
void rb_grn_init_request_canceler (VALUE mGrn);
|
366
366
|
void rb_grn_init_request_timer (VALUE mGrn);
|
367
367
|
void rb_grn_init_request_timer_id (VALUE mGrn);
|
368
|
+
void rb_grn_init_id (VALUE mGrn);
|
369
|
+
void rb_grn_init_name (VALUE mGrn);
|
368
370
|
|
369
371
|
VALUE rb_grn_rc_to_exception (grn_rc rc);
|
370
372
|
const char *rb_grn_rc_to_message (grn_rc rc);
|
data/ext/groonga/rb-groonga.c
CHANGED
data/rroonga-build.rb
CHANGED
@@ -18,15 +18,15 @@ module RroongaBuild
|
|
18
18
|
module RequiredGroongaVersion
|
19
19
|
MAJOR = 6
|
20
20
|
MINOR = 0
|
21
|
-
MICRO =
|
21
|
+
MICRO = 5
|
22
22
|
VERSION = [MAJOR, MINOR, MICRO]
|
23
|
-
RELEASED_DATE = Time.utc(2016, 6,
|
23
|
+
RELEASED_DATE = Time.utc(2016, 6, 29)
|
24
24
|
end
|
25
25
|
|
26
26
|
module LatestGroongaVersion
|
27
27
|
MAJOR = 6
|
28
28
|
MINOR = 0
|
29
|
-
MICRO =
|
29
|
+
MICRO = 5
|
30
30
|
VERSION = [MAJOR, MINOR, MICRO]
|
31
31
|
end
|
32
32
|
|
data/test/test-column.rb
CHANGED
@@ -349,6 +349,40 @@ class ColumnTest < Test::Unit::TestCase
|
|
349
349
|
end
|
350
350
|
end
|
351
351
|
|
352
|
+
def test_column?
|
353
|
+
assert do
|
354
|
+
@users_name_column.column?
|
355
|
+
end
|
356
|
+
end
|
357
|
+
|
358
|
+
sub_test_case "#reference_column" do
|
359
|
+
test "true" do
|
360
|
+
assert do
|
361
|
+
@bookmarks_user.reference_column?
|
362
|
+
end
|
363
|
+
end
|
364
|
+
|
365
|
+
test "false" do
|
366
|
+
assert do
|
367
|
+
not @users_name_column.reference_column?
|
368
|
+
end
|
369
|
+
end
|
370
|
+
end
|
371
|
+
|
372
|
+
sub_test_case "#index_column?" do
|
373
|
+
test "true" do
|
374
|
+
assert do
|
375
|
+
@bookmarks_index_content.index_column?
|
376
|
+
end
|
377
|
+
end
|
378
|
+
|
379
|
+
test "false" do
|
380
|
+
assert do
|
381
|
+
not @users_name_column.index_column?
|
382
|
+
end
|
383
|
+
end
|
384
|
+
end
|
385
|
+
|
352
386
|
private
|
353
387
|
def assert_content_search(expected_records, term)
|
354
388
|
records = @bookmarks_index_content.search(term).records
|
data/test/test-database.rb
CHANGED
@@ -366,4 +366,25 @@ class DatabaseTest < Test::Unit::TestCase
|
|
366
366
|
@database.disk_usage)
|
367
367
|
end
|
368
368
|
end
|
369
|
+
|
370
|
+
class LastModifiedTest < self
|
371
|
+
setup :setup_database
|
372
|
+
|
373
|
+
def test_touch
|
374
|
+
assert_equal(Time.at(0), @database.last_modified)
|
375
|
+
@database.touch
|
376
|
+
assert_equal(Time.now.sec, @database.last_modified.sec)
|
377
|
+
end
|
378
|
+
|
379
|
+
def test_dirty?
|
380
|
+
omit("TODO: Enable this after Groonga 6.0.6 is released.")
|
381
|
+
assert do
|
382
|
+
not @database.dirty?
|
383
|
+
end
|
384
|
+
@database.touch
|
385
|
+
assert do
|
386
|
+
@database.dirty?
|
387
|
+
end
|
388
|
+
end
|
389
|
+
end
|
369
390
|
end
|
data/test/test-id.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# Copyright (C) 2016 Kouhei Sutou <kou@clear-code.com>
|
2
|
+
#
|
3
|
+
# This library is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
5
|
+
# License version 2.1 as published by the Free Software Foundation.
|
6
|
+
#
|
7
|
+
# This library is distributed in the hope that it will be useful,
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
10
|
+
# Lesser General Public License for more details.
|
11
|
+
#
|
12
|
+
# You should have received a copy of the GNU Lesser General Public
|
13
|
+
# License along with this library; if not, write to the Free Software
|
14
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
15
|
+
|
16
|
+
class IDTest < Test::Unit::TestCase
|
17
|
+
include GroongaTestUtils
|
18
|
+
|
19
|
+
setup :setup_database
|
20
|
+
|
21
|
+
test "NIL" do
|
22
|
+
assert_equal(0, Groonga::ID::NIL)
|
23
|
+
end
|
24
|
+
|
25
|
+
test "MAX" do
|
26
|
+
assert_equal(2 ** 30 - 1, Groonga::ID::MAX)
|
27
|
+
end
|
28
|
+
|
29
|
+
sub_test_case(".builtin?") do
|
30
|
+
test "true" do
|
31
|
+
assert do
|
32
|
+
Groonga::ID.builtin?(Groonga::Type::INT32)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
test "false" do
|
37
|
+
Groonga::Schema.define do |schema|
|
38
|
+
schema.create_table("Users", :type => :hash)
|
39
|
+
end
|
40
|
+
users_id = Groonga["Users"].id
|
41
|
+
|
42
|
+
assert do
|
43
|
+
not Groonga::ID.builtin?(users_id)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/test/test-name.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# Copyright (C) 2016 Kouhei Sutou <kou@clear-code.com>
|
2
|
+
#
|
3
|
+
# This library is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
5
|
+
# License version 2.1 as published by the Free Software Foundation.
|
6
|
+
#
|
7
|
+
# This library is distributed in the hope that it will be useful,
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
10
|
+
# Lesser General Public License for more details.
|
11
|
+
#
|
12
|
+
# You should have received a copy of the GNU Lesser General Public
|
13
|
+
# License along with this library; if not, write to the Free Software
|
14
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
15
|
+
|
16
|
+
class NameTest < Test::Unit::TestCase
|
17
|
+
include GroongaTestUtils
|
18
|
+
|
19
|
+
setup :setup_database
|
20
|
+
|
21
|
+
sub_test_case(".column?") do
|
22
|
+
test "true" do
|
23
|
+
assert do
|
24
|
+
Groonga::Name.column?("Users.age")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
test "false" do
|
29
|
+
assert do
|
30
|
+
not Groonga::Name.column?("Users")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/test/test-table.rb
CHANGED
@@ -561,7 +561,7 @@ class TableTest < Test::Unit::TestCase
|
|
561
561
|
ruby_bookmarks = bookmarks.select {|record| (record["title"] == "Ruby") &
|
562
562
|
(record["title"] == "Ruby") }
|
563
563
|
all_bookmarks = bookmarks.select
|
564
|
-
assert_equal([["groonga", 1], ["Ruby",
|
564
|
+
assert_equal([["groonga", 1.0], ["Ruby", 3.0]],
|
565
565
|
all_bookmarks.merge!(ruby_bookmarks).collect do |record|
|
566
566
|
[record[".title"], record.score]
|
567
567
|
end)
|
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: 6.0.
|
4
|
+
version: 6.0.5
|
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: 2016-
|
15
|
+
date: 2016-07-15 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: pkg-config
|
@@ -254,6 +254,7 @@ files:
|
|
254
254
|
- ext/groonga/rb-grn-greater-operator.c
|
255
255
|
- ext/groonga/rb-grn-hash-cursor.c
|
256
256
|
- ext/groonga/rb-grn-hash.c
|
257
|
+
- ext/groonga/rb-grn-id.c
|
257
258
|
- ext/groonga/rb-grn-index-column.c
|
258
259
|
- ext/groonga/rb-grn-index-cursor.c
|
259
260
|
- ext/groonga/rb-grn-index.c
|
@@ -261,6 +262,7 @@ files:
|
|
261
262
|
- ext/groonga/rb-grn-less-operator.c
|
262
263
|
- ext/groonga/rb-grn-logger.c
|
263
264
|
- ext/groonga/rb-grn-match-operator.c
|
265
|
+
- ext/groonga/rb-grn-name.c
|
264
266
|
- ext/groonga/rb-grn-normalizer.c
|
265
267
|
- ext/groonga/rb-grn-not-equal-operator.c
|
266
268
|
- ext/groonga/rb-grn-object.c
|
@@ -344,11 +346,13 @@ files:
|
|
344
346
|
- test/test-geo-point.rb
|
345
347
|
- test/test-gqtp.rb
|
346
348
|
- test/test-hash.rb
|
349
|
+
- test/test-id.rb
|
347
350
|
- test/test-index-column.rb
|
348
351
|
- test/test-index-cursor.rb
|
349
352
|
- test/test-lock-timeout.rb
|
350
353
|
- test/test-logger.rb
|
351
354
|
- test/test-memory-pool.rb
|
355
|
+
- test/test-name.rb
|
352
356
|
- test/test-normalizer.rb
|
353
357
|
- test/test-operator.rb
|
354
358
|
- test/test-package-label.rb
|
@@ -450,6 +454,7 @@ test_files:
|
|
450
454
|
- test/test-index-cursor.rb
|
451
455
|
- test/test-schema-type.rb
|
452
456
|
- test/test-database.rb
|
457
|
+
- test/test-id.rb
|
453
458
|
- test/test-request-canceler.rb
|
454
459
|
- test/test-logger.rb
|
455
460
|
- test/test-table.rb
|
@@ -463,6 +468,7 @@ test_files:
|
|
463
468
|
- test/test-request-timer.rb
|
464
469
|
- test/test-sub-records.rb
|
465
470
|
- test/test-schema-create-table.rb
|
471
|
+
- test/test-name.rb
|
466
472
|
- test/test-schema.rb
|
467
473
|
- test/test-command-select.rb
|
468
474
|
- test/test-expression-builder.rb
|