News

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]

Thanks

  • Naoya Murakami

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

Improvements

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.

Thanks

  • Gurunavi, Inc.

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]

Thanks

  • Naoya Murakami
  • aomi-n

The old releases