.. -*- rst -*-

News - 6.x
==========

.. _release-6-1-5:

Release 6.1.5 - 2017-01-23
--------------------------

This is a bug fix release of 6.1.4. 6.1.4 users should upgrade to
6.1.5.

Improvements
^^^^^^^^^^^^

* Supported binary operation against nonexistent reference column
  value. It's always false.

* [:doc:`/reference/commands/logical_select`] Added
  :ref:`logical-select-sort-keys`,
  :ref:`logical-select-drilldown-sort-keys` and
  :ref:`logical-select-drilldowns-label-sort-keys`.
  :ref:`logical-select-sortby`,
  :ref:`logical-select-drilldown-sortby` and
  :ref:`logical-select-drilldowns-label-sortby` are deprecated.

Fixes
^^^^^

* [:doc:`/reference/commands/select`] Fixed a bug that index search
  may not return matched record.

.. _release-6-1-4:

Release 6.1.4 - 2017-01-18
--------------------------

This is a bug fix release of 6.1.3. 6.1.3 users should upgrade to
6.1.4.

Improvements
^^^^^^^^^^^^

* [:ref:`script-syntax-near-search-operator`] Supported customizing
  the max interval.

* [:ref:`script-syntax-near-search-operator`] Supported unlimited interval.

* Stopped to install ``groonga-httpd-restart`` when ``groonga-httpd``
  isn't installed. [GitHub#626] [Patch by OBATA Akio]

* Improved index update performance against non natural language text
  data such as multi column index data in Mroonga.
  [groonga-dev,04219] [Reported by Masanori Miyashita]
  [GitHub#617]

* [:doc:`/reference/commands/logical_select`] Supported
  ``drilldowns[LABEL]`` form. ``drilldown[LABEL]`` form is deprecated.

* Supported using system Onigmo.
  [GitUub#628] [Patch by OBATA Akio]

Fixes
^^^^^

* [:doc:`/reference/commands/truncate`] Fixed a memory leak. It's
  caused when the target is :ref:`table-hash-key` or
  :ref:`table-pat-key` and the target table has many token filters are
  registered. [GitHub#622] [Patch by Naoya Murakami]

* [:doc:`/reference/commands/select`] Fixed a bug that old cache is
  used after :doc:`/reference/commands/column_rename` is used.

* [:doc:`/reference/commands/select`] Fixed a bug that index search
  may not return matched record. [GitHub#624] [Patch by Naoya Murakami]

Thanks
^^^^^^

* Naoya Murakami

* OBATA Akio

.. _release-6-1-3:

Release 6.1.3 - 2017-01-06
--------------------------

Improvements
^^^^^^^^^^^^

* [:c:func:`grn_db_recover()`][:doc:`/reference/executables/grndb`] Reduced memory usage when only 1 thread mode.

Fixes
^^^^^

* Reverted "Improved performance of updating inverted indexes in the worst case".
  It had reported error when key has multibyte character.
  This change was included in 6.1.2.

* [:ref:`token-regexp`] Fixed a bug that `\\A${ONE_CHARACTER}\\z`
  returns all one character values.

.. _release-6-1-2:

Release 6.1.2 - 2016-12-31
--------------------------

Improvements
^^^^^^^^^^^^

* windows: Supported to bundle groonga-normalizer-mysql.

* [:doc:`/reference/log`] Added description about log format with
  ``PID`` case.

* [:doc:`/install/centos`] Improved installation procedure about
  recent ``groonga-release`` package.

* [:doc:`/reference/commands/load`] Supported to show
  ``{"n_loaded_records": N}`` in response for command version 3 or
  later.

* [:doc:`/reference/commands/load`] Supported ``--output_ids yes``
  parameter for command version 3 or later.  If ``--output_ids yes`` is
  specified, loaded record IDs(``loaded_ids``) are also returned. ID
  is 0 for record that is failed to add.

* [:doc:`/install/others`] Added installation instruction about
  depended packages (Zstandard, LZ4)

* Changed to use Onigmo 6.0 as regular expression library.

* Marked some features as stable.

  * :doc:`/reference/executables/grndb` command.
  * :doc:`/reference/commands/request_cancel` command.
  * :doc:`/reference/functions/highlight_html` function.
  * :doc:`/reference/functions/highlight_full` function.
  * :doc:`/reference/functions/snippet_html` function.

* [httpd] Updated bundled nginx to 1.11.8.

* Improved to reduce ``AND`` search response time.
  [GitHub#618,#619,#620] [Patch by Naoya Murakami]

* Improved performance of updating inverted indexes in the worst case.
  This fix also reduces memory usage in that
  process. [groonga-dev,04219] [Reported by Masanori Miyashita]

Fixes
^^^^^

* Added missing ``NULL`` check about return value of
  ``grn_ctx_at``. This fix prevents from unexpected crash bug.

Thanks
^^^^^^

* Naoya Murakami
* Masanori Miyashita

.. _release-6-1-1:

Release 6.1.1 - 2016-11-29
--------------------------

Improvements
^^^^^^^^^^^^

* [:doc:`/reference/commands/select`] Supported the following functions in slices.

  * :doc:`/reference/functions/between`
  * :doc:`/reference/functions/geo_in_circle`
  * :doc:`/reference/functions/geo_in_rectangle`
  * :doc:`/reference/functions/in_values`
  * :doc:`/reference/functions/fuzzy_search`
  * :doc:`/reference/functions/query`

* [:doc:`/reference/executables/groonga-httpd`] Supported PID output to
  log file. It is useful to distinct multiple worker processes.
  The messages are logged as ``TIMESTAMP|MARK|PID: MESSAGE``.

* [ja] Changed to stop compressing small data. If column data is less
  than 256 byte, the data aren't compressed even when ``COMPRESS_ZLIB``
  or ``COMPRESS_LZ4`` or ``COMPRESS_ZSTD`` is specified. By this change,
  performance and space efficiency will be improved.

* [:doc:`/reference/commands/column_create`] Supported Zstandard.
  ``COMPRESS_ZSTD`` flag is used to enable this feature.

* [rpm][centos] Enabled Zstandard for CentOS 6 or later packages.

* [:doc:`/reference/functions/between`] Supported ``between(_key, ...)``
  as target.

* [httpd] Updated bundled nginx to 1.11.6.

Fixes
^^^^^

* Fixed a bug that needless index check reports error wrongly when the
  default column value such as 0 exists in lexicon. It shows error
  message such as "[ii][delete][one] failed to allocate a segment:
  ..." unexpectedly.

* [:doc:`/reference/commands/logical_table_remove`] Fixed a bug that
  it may return error with ``--dependent yes`` option. In the previous
  version, if one or more columns that refer the same table, the error
  is occurred.

* [sort] Fixed a crash bug when one of sort keys is a compressed
  column and ``--query`` and/or ``--filter`` are used at the same time.

.. _release-6-1-0:

Release 6.1.0 - 2016-10-29
--------------------------

Improvements
^^^^^^^^^^^^

* [:doc:`/reference/commands/dump`] Supported to sort load table names by key instead of ID to make output stable. This is incompatible change but it makes easy to compare result of dump command.

* [:doc:`/reference/commands/table_create`][:doc:`/reference/commands/column_create`]
  Revised outdated descriptions with execution examples. English
  documentation is also published and section about small/medium index
  column is also added.

* [experimental][httpd] Supported mruby to customize configuration
  settings in groonga-httpd.conf.

* [windows] Updated bundled Groonga Admin to 0.9.5. It is recommended
  to upgrade because amount of memory usage is drastically
  reduced. Note that this version drops Groonga 5.0.8 or earlier
  support.

* Added log token and token ID on error. [Gitter:groonga/ja:58043f77614116a2568d529c]
  [Suggested by torinky]

* [:doc:`/reference/tables`] Updated description about the max record ID.

* [mruby] Suppported to convert time of ``mrb_value`` to ``grn_bulk``.
  [GitHub:#607] [Patch by Naoya Murakami]

* [ubuntu] Supported Ubuntu 16.10 (Yakkety Yak)

* [httpd] Updated bundled nginx to 1.11.5.

Fixes
^^^^^

* Fixed a bug that table of index column was reported in log instead of
  correct index column.

* Fixed a bug that in posting list skip optimization in index search
  may skip to wrong
  position. [Gitter:groonga/ja:57f2ff87d45d7f0f525e2216] [Reported by
  torinky]

* Fixed a memory leak on static index construction.

* [hash] Fixed a memory leak for many token filters are set case.

* [:doc:`/reference/commands/select`] Fixed a bug that wrong column
  name that starts with number in output_columns is not ignored. It
  caused a syntax error.

Thanks
^^^^^^

* torinky
* Naoya Murakami

.. _release-6-0-9:

Release 6.0.9 - 2016-09-29
--------------------------

Improvements
^^^^^^^^^^^^

* [:doc:`/reference/commands/logical_table_remove`] Supported to remove broken
  tables and columns. It supports ``force`` parameter.

* [:doc:`/reference/commands/select`] Supported match_columns, query,
  query_flags and query_expander for slices.

* [http][httpd] Supported incomplete POST-ed JSON. Only passed JSON is
  processed.

* [httpd] Changed to stop not to create the default log file when
  custom file is specified.

* Changed to reduce the default lock timeout to 15min from 2.7h.

* [:doc:`/reference/executables/groonga-httpd`] support "~" modifier
  in location such as "location ~ /d/...".

* [mruby] Updated to the latest mruby to fix build error with Visutal
  Studio.

* [httpd] Updated bundled nginx to 1.11.4.
  
Fixes
^^^^^

* Fixed build error on OpenBSD. OpenBSD doesn't provide
  ``TCP_NODELAY``. [MariaDB JIRA: fix MDEV-7209][Reported by Brad
  Smith]

* Fixed a missing deleted check for indexes. It causes missing search
  results even though it should be matched. Groonga 6.0.3 or later
  version are affected. [groonga-dev, 04107] [Reported by Kazuhiko]

* [doc] Fixed a missing entry in Groonga 6.0.2 news that sequential
  search is also executed as a fallback for :doc:`/reference/functions/geo_in_circle` [Reported by Gurunavi,
  Inc.]

* [:doc:`/reference/commands/table_create`] Fixed a bug that
  ``table_create`` command accepts no key type for ``TABLE_PAT_KEY``,
  ``TABLE_HASH_KEY`` and ``TABLE_DAT_KEY`` tables. It creates a
  invalid table. [GitHub#599]

* [admin] Fixed a bug that it can not create a new record.

* Fixed a bug that select command with a wrong filter causes
  crash. [GitHub#601]


Thanks
^^^^^^

* Brad Smith
* Kazuhiko
* Gurunavi, Inc.

.. _release-6-0-8:

Release 6.0.8 - 2016-08-29
--------------------------

Improvements
^^^^^^^^^^^^

* [:doc:`/reference/commands/object_list`] Supported to show more
  properties such as ``value_size`` and ``n_elements`` in metadata.

* Supported operator per selector. This change enables to choose
  correct index for selector. It means that ``between()`` chooses
  index for range search, ``in_values()`` chooses index for equality
  comparison. [GitHub#589] [Reported by Naoya Murakami]

* [debian] Changed to use nginx log reopen feature instead of
  Groonga's [:doc:`/reference/commands/log_reopen`] command because
  log_reopen command works only for one worker. On the contrast, nginx
  log reopen feature works for multiple workers.

* [:doc:`/reference/commands/table_copy`] Added ``table_copy`` command
  which copies specified table.

* [:doc:`/reference/commands/column_copy`] Supported to cast A table
  record to B table record. It fixes a case that ``column_copy``
  failure in the previous version. Note that both tables must support
  key.

* [:doc:`/reference/commands/column_copy`] Supported reference type
  vector.

* [admin] Supported no response error case. It fixes the problem
  that "Loading..." message will remain displayed.

* [:doc:`/reference/executables/groonga`][http] Supported to return
  400 Bad Request against not implemented function.

* [:doc:`/reference/executables/groonga-httpd`] Supported to return
  body on failure.

* [:doc:`/reference/executables/groonga-httpd`] Supported to load
  large data as stream.

* Supported sequential search by ``_key`` when it is specified as a
  source of index column.

* Supported to report index information on resolving by accessor for
  data column if log level is equal to info.

* Added valid lexicon check on setting index sources. If users create
  wrong index for sources by
  [:doc:`/reference/commands/column_create`], this check shows
  details.

* [:doc:`/limitations`] Updated description about table
  limitations.

Fixes
^^^^^

* [:doc:`/reference/commands/column_create`] Fixed a bug that buffer
  overflow occurs on logging.

* Fixed to output response even when critical level error.

* Fixed to ensure clearing output buffer for each grn_ctx_send.
  This change solves sometimes response may broken. [GitHub#330]

* [:doc:`/reference/functions/fuzzy_search`] Fixed a bug that
  ``prefix_match_size`` option returns wrong node. It causes a problem
  that ``fuzzy_search`` returns wrong edit distance. [GitHub#590]
  [Patch by Naoya Murakami]

* [:doc:`/reference/commands/load`] Changed to report error when
  column value set is failed. It enables you to notice mismatch
  between type of column and actual value.

* [:doc:`/reference/executables/groonga-httpd`] Fixed a bug that wrong
  HTTP status is set on success.

* [:doc:`/reference/functions/fuzzy_search`][:doc:`/reference/functions/in_values`]
  Fixed to resolve record id correctly on sequential
  search. [GitHub#591,#592,#593] [Patch by Naoya Murakami]

Thanks
^^^^^^

* Naoya Murakami

.. _release-6-0-7:

Release 6.0.7 - 2016-07-29
--------------------------

Improvements
^^^^^^^^^^^^

* [:doc:`/reference/functions/string_substring`] Added
  ``string_substring`` function to extract a substring from given
  string. The syntax of ``string_substring`` is
  ``string_substring(string, from, [length])``. [GitHub#564] [Patch by
  Naoya Murakami]

* [experimental] Added ``GRN_II_MAX_N_SEGMENTS_TINY`` and
  ``GRN_II_MAX_N_CHUNKS_TINY`` environment variables to customize the
  value about default max N segments/chunks. This feature is affected to
  index column for fixed size scalar column. It reduces memory usage
  but not tested widely yet.

* [:doc:`/reference/functions/vector_slice`] Added ``vector_slice``
  function to extract specific elements in vector column. [GitHub#582]
  [Patch by Naoya Murakami]

* Supported index range search for ``_key`` of PAT/DAT table.
  [GitHub#583]

* [:doc:`/reference/commands/object_list`] Added ``object_list``
  command for debugging. It is useful to investigate whether database
  is corrupted or not.

* Added a script that checks ``object_list`` response.

* [mruby] Supported float bulk in expression_rewriter. [GitHub#587]
  [Patch by Naoya Murakami]

* [:doc:`/reference/commands/dump`] Changed output order about table
  by name instead of ID. It breaks dump output compatibility but it
  can be restored as usual.

* [windows] Updated bundled msgpack to 2.0.0.

* [windows] Added
  :doc:`/reference/executables/groonga-suggest-create-dataset`.

* [httpd] Updated bundled nginx to 1.11.3.

* [deb] Dropped support for Ubuntu 15.10 (Wily werewolf).

Fixes
^^^^^

* [examples edict] Fixed to use ``gzcat`` instead of ``zcat`` if
  exists. [GitHub#576] [Patch by Yuya TAMANO]

* Added missing null-check before dereferencing a
  pointer. [GitHub#579] [Patch by Sho Minagawa]

* Fixed not to perform a sequential search if an index is available.
  [GitHub#580]

* [:doc:`/reference/commands/load`] Fixed a bug that ``Time`` column
  can reduce the precision of values. [GitHub#581]

* Fixed a bug that object literal expression codes is broken when
  executing multiple logical operations. [GitHub#584] [Patch by Naoya
  Murakami]

* Fixed a bug that columns of Float, WGS84GeoPoint and TokyoGeoPoint
  were created with ``GRN_OBJ_COMPRESS_ZLIB`` even if the flag was not
  specified. [GitHub#586] [Reported by Naoya Murakami]

Thanks
^^^^^^

* Naoya Murakami
* Yuya TAMANO
* Sho Minagawa

.. _release-6-0-5:

Release 6.0.5 - 2016-06-29
--------------------------

Improvements
^^^^^^^^^^^^

* [:doc:`/reference/commands/io_flush`] Marked as stable command.

* [mruby] Supported to optimize prefix search by estimating
  data size efficiently

* [:doc:`/reference/functions/fuzzy_search`] Supported
  ``max_distance`` option as 3rd argument to specify it
  easily. [GitHub#553] [Patch by Naoya Murakami]

* [:doc:`/reference/commands/query_expand`] Supported command to
  expand query. It is useful if there are many synonyms.

* [:doc:`/reference/commands/select`] Supported ``--drilldown`` with
  ``command_version=3``. [groonga-dev,04055] [Reported by Naoya
  Murakami]

* Removed needless code from ``grn_table_select_sequential()``.
  [GitHub#560] [Reported by Sho Minagawa]

* grn_table_setoperation(): Changed to update score instead of
  overwriting by ``GRN_OP_ADJUST``. This change is introduced to keep
  consistency with ``grn_ii_posting_add()``. [groonga-dev,04058]
  [Reported by Naoya Murakami]

* [:doc:`/reference/commands/dump`] Reduced the max opened
  table/column files when 1 thread mode.

Fixes
^^^^^

* [CMake][Windows] Fixed to install missing mruby
  script. [groonga-dev,04040] [Reported by Soichiro Kiyokawa]

* [Windows] Changed to bundle msgpack-c.

* [:doc:`/install/others`] Fixed a typo
  about default database encoding (utf8). [GitHub#549] [Patch by IWAI, Masaharu]

* [:doc:`/contribution/development/cooperation`] Fixed a typo
  about product name (Twitter). [GitHub#550] [Patch by IWAI, Masaharu]

* Fixed a bug that specific records are not included into search
  result when multiple index column is created with ``WITH_SECTION``
  flag. [GitHub#551]

* Fixed a crash bug that searching while loading data with
  ``GRN_II_CURSOR_SET_MIN_ENABLE=yes``. ``GRN_II_CURSOR_SET_MIN_ENABLE``
  is enabled by default since Groonga 6.0.3.

* [:doc:`/reference/token_filters`] Fixed thread unsafe implementation.

* [doc] Fixed a typo in 6.0.4 release entry. [GitHub#559] [Patch by cafedomancer]

Thanks
^^^^^^

* Naoya Murakami
* Soichiro Kiyokawa
* IWAI, Masaharu
* cafedomancer
  

.. _release-6-0-4:

Release 6.0.4 - 2016-06-06
--------------------------

It's a bug fix release of 6.0.3. It's recommend that Groonga 6.0.3
users upgrade to 6.0.4. This release fixes some search related
problems.

Fixes
^^^^^

* [:doc:`/reference/commands/select`] Fixed a bug that ``--drilldown``
  against a temporary column created by ``--columns`` refers freed
  memory.

* Fixed a bug that search with large index may refer invalid data. It
  takes a long time to return search result.
  [GitHub#548][groonga-dev,04028][Reported by Atsushi Shinoda]

Thanks
^^^^^^

* Atsushi Shinoda

.. _release-6-0-3:

Release 6.0.3 - 2016-05-29
--------------------------

Improvements
^^^^^^^^^^^^

* [experimental] Added ``GRN_II_OVERLAP_TOKEN_SKIP_ENABLE`` and
  ``GRN_NGRAM_TOKENIZER_REMOVE_BLANK_DISABLE`` environment variables
  to improve performance of N-gram tokenizer.  [GitHub#533][Patch by
  Naoya Murakami]

* [:doc:`/reference/commands/table_create`] Stopped to ignore
  nonexistent default tokenizer, normalizer or token filters. In the
  previous versions, Groonga ignored a typo in
  ``--default_tokenizer``, ``--normalizer`` or ``--token_filters``
  parameter silently. It caused a delay in finding problems.

* [:doc:`/reference/commands/select`] output_columns v1: Supported
  expression such as ``snippet_html(...)`` in output_columns.

* [:doc:`/reference/commands/select`] Removed a limitation about the
  number of labeled drilldowns. In the previous versions, the number
  of max labeled drilldowns is limited to 10.

* [:doc:`/reference/functions/number_classify`] Added a number
  plugin. Use ``number_classify`` function to classify by value.

* Added a time plugin. Use ``time_classify_second``,
  ``time_classify_minute``, ``time_classify_hour``,
  ``time_classify_day``, ``time_classify_week``,
  ``time_classify_month``, ``time_classify_year`` function to classify
  by value.

* [:doc:`/reference/commands/select`] Supported dynamic column.
  Dynamic columns can be used in ``output_columns``, ``drilldown`` and
  ``sortby`` [GitHub#539,#541,#542,#544,#545][Patch by Naoya Murakami]::

    select \
      --columns[LABEL].stage filtered \
      --columns[LABEL].type ShortText \
      --columns[LABEL].flags COLUMN_SCALAR \
      --columns[LABEL].value 'script syntax expression' \
      ...

* [experimental][:doc:`/reference/commands/select`] Improved
  performance for range/equal search and enough filtered case. Set
  ``GRN_TABLE_SELECT_ENOUGH_FILTERED_RATIO`` environment variable to
  enable this feature.

* [:doc:`/reference/commands/select`] Supported index used search for
  filtered tables.

* Supported to detect changed database isn't closed. This feature is
  useful to check database corruption when Groonga is crashed
  unexpectedly.

* [:doc:`/reference/executables/grndb`] Supported detecting database
  wasn't closed successfully case.

* Added ``--drilldown_filter``.

* Supported ``filter`` in labeled drilldown.

* Improved performance for using [:doc:`/reference/functions/between`]
  without index. By between() optimization, there is a case that range
  search is 100x faster than the previous version of between().

* [:doc:`/reference/window_functions/record_number`] Supported window
  function.

* [experimental][:doc:`/reference/commands/select`] Supported ``--slices``.

* [:doc:`/reference/commands/select`] Deprecated ``--sortby`` and
  ``--drilldown_sortby``. Use ``--sort_keys`` and
  ``-drilldown_sort_keys`` instead.

* [:doc:`/reference/commands/select`] Deprecated ``--drilldown[...]``.
  Use ``--drilldowns[...]`` instead.

* Added [:doc:`/reference/command/command_version`] 3. It uses object
  literal based envelope.

* [groonga-httpd] Updated bundled nginx version to 1.11.0.

Fixes
^^^^^

* [:doc:`/reference/commands/select`] output_columns v2: Fixed a bug
  that ``*`` isn't expand to columns correctly.

* Fixed a bug that 1usec information is lost for time value.

* Fixed a crash bug when a mruby plugin is initialized with multiple
  threads.

* Fixed a bug that static indexing crashes if a posting list is very long.
  This bug may occur against enormous size of database. [GitHub#546]

Thanks
^^^^^^

* Naoya Murakami

.. _release-6-0-2:

Release 6.0.2 - 2016-04-29
--------------------------

Improvements
^^^^^^^^^^^^

* Supported bool in comparison operators (``>``, ``>=``, ``<``, ``<=``).
  TRUE is casted to 1. FALSE is casted to 0. Thus you specify function
  which returns boolean value in comparison.

* [groonga-http][:doc:`/reference/command/request_timeout`] Supported
  ``request_timeout`` parameter. Canceled request returns
  ``HTTP/1.1 408 Request Timeout`` status code.

* [:doc:`/reference/commands/table_tokenize`] Added ``index_column`` option.
  [GitHub#534] [Patch by Naoya Murakami]

* [:doc:`/reference/commands/table_tokenize`] Supported to output ``estimated_size``.
  [GitHub#518] [Patch by Naoya Murakami]

* [:doc:`/reference/functions/geo_in_rectangle`][:doc:`/reference/functions/geo_in_circle`]
  Supported to work without index. In this case, sequential search is
  executed as a fallback.

* Reduced needless internal loops. It improves phrase search performance.
  [GitHub#519] [Patch by Naoya Murakami]

* [:doc:`/contribution`] Updated documentation about contribution.
  [GitHub#522] [Patch by Hiroshi Ohkubo]

* [:doc:`/reference/command/return_code`] Updated documentation about return code list.

* [:doc:`/reference/executables/groonga`] Added ``--default-request-timeout`` option.

* [windows] Supported DLL version.

* Supported index used search even if value only term exists.
  For example, ``true || column > 0`` doesn't use index even if ``column`` has
  index. In this release, above issue is resolved.

* [:doc:`/reference/commands/select`] Supported specifying grouped table
  [GitHub#524,#526,#527,#528,#529] [Patch by Naoya Murakami]

* Supported grouping by ``Int{8,16,64}/UInt{8,16,64}`` value.
  In the previous versions, only 32bit fixed size value was supported.

* Added table name to error message for invalid sort key.

* [:doc:`/reference/executables/groonga-suggest-httpd`] Updated documentation.

* [:doc:`/reference/suggest/completion`] Fixed a typo about example.
  [groonga-dev,04008] [Reported by Tachikawa Hiroaki]

* [:doc:`/reference/executables/grndb`] Added a workaround to keep
  backward compatibility. use ``object_inspect`` instead of ``inspect``.

* [groonga-httpd] Updated bundled nginx version to 1.9.15.

* [centos] Supported systemd.

* [doc] Supported only HTML output. [GitHub#532] [Patch by Hiroshi Ohkubo]

* [:doc:`/reference/executables/groonga-httpd`][centos] Supported to customize
  environment variables.

* [:doc:`/install/others`] Updated documentation about ``--with-package-platorm`` option.

* [ubuntu] Supported Ubuntu 16.04 (Xenial Xerus)

Fixes
^^^^^

* Fixed a bug that tokenization of zero-length values are failed.
  For example, if ``description`` column is indexed column, tokenizer reports an error.
  [GitHub#508] [Reported by Naoya Murakami]::

    load --table docs
    [
    ["_key","description"],
    [2,""]
    ]

* Fixed a crash bug because of invalid critical section handling. [GitHub#507]

* [:doc:`/contribution/development/release`] Fixed a typo about grntest howto.
  [GitHub#511] [Patch by Hiroshi Ohkubo]

* [doc] Removed man support.

* Removed invalid debug log messages which make user confused.

* Fixed a bug that data is not correctly flushed because internal counter is wrongly cleared.
  In the previous version, when size of data exceeds specific one, it was failed to create indexes.
  [GitHub#517] [Reported by Naoya Murakami]

* Fixed a bug that a process can't use more than one caches in parallel.
  [GitHub#515]

* Fixed a bug that internally used ``alloc_info`` structure which is used to find memory leaks is
  not exclusively accessed. Without this fix, it may causes a crash. [GitHub#523]

* [tokenizer mecab] Fixed a memory leak on dictionary encoding mismatch error.
  [groonga-dev,04012] [Reported by Naoya Murakami]

* Fixed a bug that combination of [:doc:`/reference/executables/groonga-suggest-httpd`] and
  [:doc:`/reference/executables/groonga-suggest-learner`] didn't work.

* [doc] Removed needless uuid from \*.po [GitHub#531] [Patch by Hiroshi Ohkubo]

* [:doc:`/reference/functions/highlight_html`] Fixed a bug that duplicated text
  is returned. This bug occurs when highlighted keyword occurred 1024 or more times.

* Fixed a bug that ``KEY_LARGE`` conflicts with existing flag.
  If you use ``TABLE_HASH_KEY|KEY_LARGE`` in the previous version,
  there is a possibility to break database. Please recreate the table.

Thanks
^^^^^^

* Naoya Murakami
* Hiroshi Ohkubo
* Tachikawa Hiroaki

.. _release-6-0-1:

Release 6.0.1 - 2016-03-29
--------------------------

Improvements
^^^^^^^^^^^^

* [mruby] Updated bundled mruby to fix a crash bug related to GC and
  backtrace.

* Exported the following API

  * grn_expr_take_obj()
  * grn_request_canceler_cancel_all()
  * grn_obj_remove_dependent()
  * grn_obj_is_text_family_type()

* [hash] Supported 4GiB over total key size when ``KEY_LARGE`` flag is set
  to a table::

    table_create Users TABLE_HASH_KEY|KEY_LARGE ShortText

* [:doc:`/reference/commands/load`] Supported
  :doc:`/reference/command/request_id` when you specify input data as
  raw JSON instead of parameter value::

    POST /d/load?table=XXX&request_id=x
    
    load --table XXX --request_id x
    [
      ...
    ]

* [:doc:`/reference/commands/shutdown`] Added ``mode`` argument to
  shutdown immediately. Use ``shutdown --mode immediate`` in such a purpose.

* [:doc:`/install/mac_os_x`] Added a instruction to setup MeCab dictionary for Homebrew.

* [:doc:`/reference/commands/load`] Supported to stop load when cancel
  is requested.

* [:doc:`/reference/commands/table_remove`] Supported to remove
  dependent tables. Use ``--dependent yes`` for it.

* [:doc:`/reference/commands/logical_table_remove`] Supported to
  remove dependent tables.

* [Windows] Supported memory debug mode on Windows.

* Supported to dump allocation information by status on memory debug mode

* [:doc:`/contribution/documentation/i18n`] Added installation step for Sphinx.

* [experimental] Supported to split chunks in static indexing.
  Use ``GRN_INDEX_CHUNK_SPLIT_ENABLE=yes`` to enable it. [GitHub#479]

Fixes
^^^^^

* [:doc:`/reference/commands/load`] Fixed a crash bug when
  nonexistent column is specified. [GitHub#493]

* [:doc:`/reference/commands/load`] Fixed a bug that load command does
  not return error code correctly. [GitHub#495]

* [:doc:`/reference/commands/load`] Fixed a memory leak when parsing
  columns parameter in load command.

* [:doc:`/reference/commands/load`] Fixed a bug that only the first
  array in ``--values`` is handled as a list of column names if ``--columns`` is not
  specified. [GitHub#497]

* [:doc:`/reference/commands/load`] Fixed to check ``--columns`` more precisely
  [GitHub#496]

* Fixed a insufficient critical section handling for
  thread-safety.

* [:doc:`/reference/commands/column_create`] Fixed a crash bug when
  failed to create a column.

* [:doc:`/reference/commands/table_remove`] Fixed a crash bug to
  remove nonexistent table. [GitHub#504]

* Fixed a bug that offline index construction against ``WITH_POSITION`` +
  non-text ``VECTOR`` column ignores position.

* [:doc:`/reference/executables/grndb`] Fixed a bug that cycle
  reference causes stack over flow.

* [deb] Dropped support for Ubuntu 15.04 (Vivid Vervet)

Thanks
^^^^^^

* YUKI Hiroshi

.. _release-6-0-0:

Release 6.0.0 - 2016-02-29
--------------------------

Improvements
^^^^^^^^^^^^

* [:doc:`/reference/executables/grndb`] Supported check against table
  specified as table domain in ``--target`` mode.

* [``grn_pat_fuzzy_search()``] Added a new API that provides fuzzy
  search feature by patricia trie. [GitHub#460][Patch by Naoya
  Murakami]

* [``functions/string``] Added a new plugin that provides string
  related functions. [GitHub#459][Patch by Naoya Murakami]

* [``string_length()``] Added a new function that returns the number
  of characters in the specified string. It's contained in
  ``functions/string`` plugin. [GitHub#459][Patch by Naoya Murakami]

* [``grn_table_fuzzy_search()``] Added a new DB API that provides
  fuzzy search feature. [GitHub#463][Patch by Naoya Murakami]

* [``GRN_OP_FUZZY``] Added a new operator. [GitHub#463][Patch by Naoya
  Murakami]

* [``grn_obj_search()``] Supported ``GRN_OP_FUZZY``
  operator. [GitHub#463][Patch by Naoya Murakami]

* [``GRN_TABLE_FUZZY_SEARCH_WITH_TRANSPOSITION``] Added a flag for
  ``grn_table_fuzzy_search()``. [GitHub#463][Patch by Naoya Murakami]

* [``GRN_TOKENIZE_ONLY``] Added a new tokenization mode that returns
  all tokens even if the token doesn't exist in
  lexicon. [GitHub#463][Patch by Naoya Murakami]

* [``grn_obj_type_to_string()``] Add a new function that stringify
  type ID such as ``GRN_VOID`` and ``GRN_BULK``.

* [:doc:`/reference/commands/object_inspect`] Added a new command that
  returns information of the target object.

* Supported compare operations against vector. If left hand side
  vector includes any element that satisfies ``left_hand_side_element
  OP right_hand_side``, it returns true.

  Example::

    [1, 2, 3] < 2 # -> true because 1 is less than 2
    [1, 2, 3] > 4 # -> false because all elements are less than 4

* [``fuzzy_search()``] Added a new function that provides fuzzy search
  feature. [GitHub#464][Patch by Naoya Murakami]

* [:doc:`/reference/functions/edit_distance`] Supported transposition
  flag. [GitHub#464][Patch by Naoya Murakami]

* Supported index search for ``vector_column[2] == 29``.

* [``GRN_PLUGIN_CALLOC()``] Added a new API for plugin that provides
  ``calloc()`` feature. [GitHub#472][Patch by Naoya Murakami]

* Supported index search for compare operations against vector element
  such as ``vector_column[2] < 29``.

* [``grn_plugin_proc_get_var_bool()``] Add a new API for plugin that
  provides getting boolean argument value feature.

* [``grn_plugin_proc_get_var_int32()``] Add a new API for plugin that
  provides getting 32bit integer argument value feature.

* [``grn_plugin_proc_get_var_string()``] Add a new API for plugin that
  provides getting string argument value feature.

* [:doc:`/reference/commands/object_remove`] Added a new command that
  removes an object. ``object_remove`` can also remove a broken object.

* Supported mips/mipsel. [debian-bugs:770243][Reported by Nobuhiro
  Iwamatsu][Reported by Thorsten Glaser][Reported by YunQiang
  Su][Reported by Dejan Latinovic][Reported by Steve Langasek]

* [:doc:`/reference/executables/grndb`][CMake] Supported.

* [``grn_expr_syntax_expand_query()``] Added a new API that provides
  query expansion feature.

* [``snippet()``] Add a new function that provides snippet feature.
  [GitHub#481][Patch by Naoya Murakami]

* [``highlight()``] Add a new function that provides highlight feature.
  [GitHub#487][Patch by Naoya Murakami]

* Added ``XXX && column != xxx`` optimization. It's converted to ``XXX
  &! column == xxx`` internally.

* [:doc:`/server/memcached`] Added ``--memcached-column``. You can
  access existing column by memcached protocol.

* [:doc:`/reference/executables/groonga-httpd`] Supported TLS.
  [groonga-dev,03948][Reported by KITAITI Makoto]

* [:doc:`/reference/executables/groonga-httpd`] Updated bundled nginx
  version to 1.9.11 from 1.9.10.

* [Windows][CMake] Supported LZ4. LZ4 is bundled.

Fixes
^^^^^

* [:doc:`/reference/commands/select`] Added a missing error check for
  outputting column. [GitHub#332][Reported by Masafumi Yokoyama]

* Fixed a bug that ``function(column_with_index) == 29`` ignores
  ``function()``. [groonga-dev,03884][Reported by Naoya Murakami]

* [:doc:`/reference/commands/reindex`] Fixed a bug that ``reindex``
  doesn't clear query cache.

* [patricia trie] Fixed a bug that sorting by integer patricia trie
  key returns unsorted result. [GitHub#476][Reported by Ryunosuke SATO]

* [:doc:`/reference/commands/select`] Fixed a crash bug that is
  occurred when too many keywords is specified into ``--query``.
  [GitHub#484][Reported by Hiroyuki Sato]

* [:doc:`/reference/commands/select`] Fixed a bug that wrong cache is
  used when :doc:`/reference/command/command_version` or
  :doc:`/reference/command/pretty_print` is
  used. [GitHub#490][Reported by KITAITI Makoto]

Thanks
^^^^^^

* Masafumi Yokoyama

* Naoya Murakami

* Nobuhiro Iwamatsu

* Thorsten Glaser

* YunQiang Su

* Dejan Latinovic

* Steve Langasek

* Ryunosuke SATO

* Hiroyuki Sato

* KITAITI Makoto
