News
Release 7.0.6 - 2017-08-29
Improvements
- Supported prefix match search using multiple
indexes. (e.g.
--query "Foo*" --match_columns
"TITLE_INDEX_COLUMN||BODY_INDEX_COLUMN"
).
- [window_count] Supported
window_count
function to add count data to result set. It is
useful to analyze or filter additionally.
- Added the following API
grn_obj_get_disk_usage():
GRN_EXPR_QUERY_NO_SYNTAX_ERROR
grn_expr_syntax_expand_query_by_table()
grn_table_find_reference_object()
- [object_inspect] Supported to show disk
usage about specified object.
- Supported falling back query parse feature. It is enabled when
QUERY_NO_SYNTAX_ERROR
flag is set to query_flags
. (this
feature is disabled by default). If this flag is set, query never
causes syntax error. For example, "A +" is parsed and escaped
automatically into "A +". This behavior is useful when application
uses user input directly and doesn't want to show syntax error to
user and in log.
- Supported to adjust score for term in query. ">", "<", and "~"
operators are supported. For example, ">Groonga" increments score of
"Groonga", "<Groonga" decrements score of "Groonga". "~Groonga"
decreases score of matched document in the current search
result. "~" operator doesn't change search result itself.
- Improved performance to remove table.
thread_limit=1
is not
needed for it. The process about checking referenced table existence
is done without opening objects. As a result, performance is
improved.
- [httpd] Updated bundled nginx to 1.13.4.
Fixes
- [dump] Fixed a bug that the 7-th unnamed
parameter for --sort_hash_table option is ignored.
Thanks
Release 7.0.5 - 2017-07-29
Improvements
- [httpd] Updated bundled nginx to 1.13.3. Note that this version
contains security fix for CVE-2017-7529.
- [load] Supported to load the value of max
UInt64. In the previous versions, max UInt64 value is converted into
0 unexpectedlly.
- Added the following API
grn_window_get_size()
[GitHub#725] [Patch by Naoya Murakami]
- [math_abs] Supported
math_abs()
function to calculate absolute value. [GitHub#721]
- Supported to make
grn_default_logger_set_path()
and
grn_default_query_logger_set_path()
thread safe.
- [windows] Updated bundled pcre library to 8.41.
- [normalize] Improved not to output
redundant empty string
""
on error. [GitHub#730]
- [functions/time] Supported to show error message when division by
zero was happened. [GitHub#733] [Patch by Naoya Murakami]
- [windows] Changed to map
ERROR_NO_SYSTEM_RESOURCES
to
GRN_RESOURCE_TEMPORARILY_UNAVAILABLE
. In the previous versions,
it returns rc=-1
as a result code. It is not helpful to
investigate what actually happened. With this fix, it returns
rc=-12
.
- [functions/min][functions/max] Supported vector column. Now you need
not to care scalar column or vector column to use. [GitHub#735]
[Patch by Naoya Murakami]
- [dump] Supported
--sort_hash_table
option to sort by _key
for hash table. Specify
--sort_hash_table yes
to use it.
- [between] Supported to specify index
column. [GitHub#740] [Patch by Naoya Murakami]
- [load] Supported Apache Arrow 0.5.0 or later.
- [エラーメッセージの解析方法]
Added howto article to analyze error message in Groonga.
- [Debian GNU/Linux] Updated required package list to
build from source.
- [Ubuntu] Dropped Ubuntu 16.10 (Yakkety
Yak) support. It has reached EOL at July 20, 2017.
Fixes
- Fixed to construct correct fulltext indexes against vector column
which type belongs to text family (
`ShortText
and so on). This
fix resolves that fulltext search doesn't work well against text
vector column after updating indexes. [GitHub#494]
- [thread_limit] Fixed a bug that deadlock
occurs when thread_limit?max=1 is requested at once.
- [groonga-httpd] Fixed a mismatch path
of pid file between default one and restart command assumed. This
mismatch blocked restarting groonga-httpd. [GitHub#743] [Reported by
sozaki]
Release 7.0.4 - 2017-06-29
Improvements
- Added physical create/delete operation logs to identify problem for
troubleshooting. [GitHub#700,#701]
- [in_records] Improved performance for
fixed sized column. It may reduce 50% execution time.
- [grndb] Added
--log-path
option.
[GitHub#702,#703]
- [grndb] Added
--log-level
option.
[GitHub#706,#708]
- Added the following API
grn_operator_to_exec_func()
grn_obj_is_corrupt()
- Improved performance for "FIXED_SIZE_COLUMN OP CONSTANT". Supported
operators are:
==
, !=
, <
, >
, <=
and >=
.
- Improved performance for "COLUMN OP VALUE && COLUMN OP VALUE && ...".
- [grndb] Supported corrupted object
detection with
grndb check
.
- [io_flush] Supported
--only_opened
option which enables to flush only opened database objects.
- [grndb] Supported to detect/delete
orphan "inspect" object. The orphaned "inspect" object is created by
renamed command name from
inspect
to object_inspect
.
Fixes
- [rpm][centos] Fixed unexpected macro expansion problem with
customized build. This bug only affects when rebuilding Groonga SRPM
with customized
additional_configure_options
parameter in spec
file.
- Fixed missing null check for
grn_table_setoperation()
. There is a
possibility of crash bug when indexes are broken. [GitHub#699]
Thanks
Release 7.0.3 - 2017-05-29
Improvements
Fixes
- [select] Add document about
Full text search with specific index name.
- [index] Supported to log warning message which record causes posting
list overflows.
- [load][dump]
Supported Apache Arrow. [GitHub#691]
- [cmake] Supported linking lz4 in embedded static library build.
[Original patch by Sergei Golubchik]
- [delete] Supported to cancel.
- [httpd] Updated bundled nginx to 1.13.0
- Exported the following API
- grn_plugin_proc_get_caller()
- Added index column related function and selector.
- Added new selector: index_column_df_ratio_between()
- Added new function: index_column_df_ratio()
Fixes
- [delete] Fixed a bug that error isn't
cleared correctly. It affects to following deletions so that it
causes unexpected behavior.
- [windows] Fixed a bug that IO version is not detected correctly when the
file is opened with
O_CREAT
flag.
- [vector_slice] Fixed a bug that non 4
bytes vector columns can't slice. [GitHub#695] [Patch by Naoya
Murakami]
- Fixed a bug that non 4 bytes fixed vector column can't sequential
match by specifying index of vector. [GitHub#696] [Patch by Naoya
Murakami]
- [logical_select] Fixed a bug that
"argument out of range" occurs when setting last day of month to the
min. [GitHub#698]
Thanks
- Sergei Golubchik
- Naoya Murakami
Release 7.0.2 - 2017-04-29
Fixes
- [logical_select] Fixed a bug that wrong
cache is used. This bug was occurred when dynamic column parameter
is used.
- [logical_select] Fixed a bug that dynamic
columns aren't created. It's occurred when no match case.
- [reindex] Fixed a bug that data is lost
by reindex. [GitHub#646]
- [httpd] Fixed a bug that response of quit
and shutdown is broken JSON when worker is
running as another user. [GitHub ranguba/groonga-client#12]
Release 7.0.1 - 2017-03-29
Improvements
- Exported the following API
- grn_ii_cursor_next_pos()
- grn_table_apply_expr()
- grn_obj_is_data_column()
- grn_obj_is_expr()
- grn_obj_is_scalar_column()
- [dump] Supported to dump weight reference
vector.
- [load] Supported to load
array<object>
style weight vector column. The example of
array<object>
style is: [{"key1": weight1}, {"key2":
weight2}]
.
- Supported to search
!(XXX OPERATOR VALUE)
by index. Supported
operator is not only >
but also >=
, <
, <=
, ==
and !=
.
- Supported index search for "!(column == CONSTANT)". The example in
this case is:
!(column == 29)
and so on.
- Supported more "!" optimization in the following patterns.
!(column @ "X") && (column @ "Y")
(column @ "Y") && !(column @ "X")
(column @ "Y") &! !(column @ "X")
- Supported to search
XXX || !(column @ "xxx")
by index.
- [dump] Changed to use
'{"x": 1, "y":
2}'
style for not referenced weight vector. This change doesn't
affect to old Groonga because it already supports one.
- [experimental] Supported
GRN_ORDER_BY_ESTIMATED_SIZE_ENABLE
environment variable. This variable controls whether query
optimization which is based on estimated size is applied or not.
This feature is disabled by default. Set
GRN_ORDER_BY_ESTIMATED_SIZE_ENABLE=yes
if you want to try it.
- [select] Added query log for
columns
,
drilldown
evaluation.
- [select] Changed query log format for
drilldown
. This is backward incompatible change, but it only
affects users who convert query log by own programs.
- [table_remove] Reduced temporary memory
usage. It's enabled when the number of max threads is 0.
- [select]
columns[LABEL](N)
is used
for query log format instead of columns(N)[LABEL]
..
- [Query expansion] Updated example to use vector
column because it is recommended way. [Reported by Gurunavi, Inc]
- Supported to detect canceled request while locking. It fixes the
problem that
request_cancel
is ignored unexpectedly while locking.
- [logical_select] Supported
initial
and filtered
stage dynamic columns. The examples are:
--columns[LABEL].stage initial
or --columns[LABEL].stage
filtered
.
- [logical_select] Supported
match_columns
, query
and drilldown_filter
option.
- [highlight_html] Supported similar
search.
- [logical_select] Supported
initial
and stage dynamic columns in labeled drilldown. The example is:
--drilldowns[LABEL].stage initial
.
- [logical_select] Supported window
function in dynamic column.
- [select] Added documentation about
dynamic columns.
- [Window function] Added section about window
functions.
- [CentOS] Dropped CentOS 5 support because of EOL.
- [httpd] Updated bundled nginx to 1.11.12
- Supported to disable AND match optimization by environment variable.
You can disable this feature by
GRN_TABLE_SELECT_AND_MIN_SKIP_ENABLE=no
. This feature is enable
by default.
- [vector_new] Added a new function to
create a new vector.
- [select] Added documentation about
drilldown_filter
.
Fixes
- [lock_clear] Fixed a crash bug against
temporary database.
- Fixed a problem that dynamically updated index size was increased
for natural language since Grooonga 6.1.4.
- [select] Fixed a bug that "A && B.C @ X"
may not return records that should be matched.
- Fixed a conflict with
grn_io_flush()
and
grn_io_expire()
. Without this change, if io_flush
and load
command are executed simultaneously in specific timing, it causes a
crash bug by access violation.
- [logical_table_remove] Fixed a crash bug
when the max number of threads is 1.
Release 7.0.0 - 2017-02-09
Improvements
- [in_values] Supported sequential search
for reference vector column. [Patch by Naoya Murakami] [GitHub#629]
- [select] Changed to report error instead
of ignoring on invalid
drilldown[LABEL].sort_keys
.
- [select] Removed needless metadata
updates on DB. It reduces the case that database lock remains
even though
select
command is executed. [Reported by aomi-n]
- [lock_clear] Changed to clear metadata lock
by lock_clear against DB.
- [CentOS] Enabled EPEL by default to install Groonga
on Amazon Linux.
- [query] Supported "@X" style in script
syntax for prefix("@^"), suffix("@$"), regexp("@^") search.
- [query] Added documentation about
available list of mode. The default mode is
MATCH
("@") mode
which executes full text search.
- [rpm][centos] Supported groonga-token-filter-stem package which
provides stemming feature by
TokenFilterStem
token filter on
CentOS 7. [GitHub#633] [Reported by Tim Bellefleur]
- [window_record_number] Marked
record_number
as deprecated. Use window_record_number
instead. record_number
is still available for backward
compatibility.
- [window_sum] Added
window_sum
window function. It's similar behavior to window function sum() on
PostgreSQL.
- Supported to construct offline indexing with in-memory (temporary)
TABLE_DAT_KEY
table. [GitHub#623] [Reported by Naoya Murakami]
- [onigmo] Updated bundled Onigmo to 6.1.1.
- Supported
columns[LABEL].window.group_keys
. It's used to apply
window function for every group.
- [load] Supported to report error on
invalid key. It enables you to detect mismatch type of key.
- [load] Supported
--output_errors yes
option. If you specify "yes", you can get errors for each load
failed record. Note that this feature requires command version 3.
- [load] Improve error message on table key
cast failure. Instead of "cast failed", type of table key and target
type of table key are also contained in error message.
- [httpd] Updated bundled nginx to 1.11.9.
Fixes
- Fixed a bug that nonexistent sort keys for
drilldowns[LABEL]
or
slices[LABEL]
causes invalid JSON parse error. [Patch by Naoya
Murakami] [GitHub#627]
- Fixed a bug that access to nonexistent sub records for group causes
a crash. For example, This bug affects the case when you use
drilldowns[LABEL].sort_keys _sum
without specifying
calc_types
. [Patch by Naoya Murakami] [GitHub#625]
- Fixed a crash bug when tokenizer has an error. It's caused when
tokenizer and token filter are registered and tokenizer has an
error.
- [window_record_number] Fixed a
bug that arguments for window function is not correctly
passed. [GitHub#634][Patch by Naoya Murakami]