BloGroonga

2019-03-29

Groonga 9.0.1 has been released

Groonga 9.0.1 has been released!

How to install: Install

Changes

Here are important changes in this release:

  • select Added new argument --load_table, --load_columns and --load_values.

  • Added index_column_diff command to check broken index column. (This feature is during verification.)

  • Fixed a bug that deleted records may be matched because of updating indexes incorrectly.

    • It may occure when large number of records is added or deleted.
  • Fixed a memory leak when logical_range_filter returns no records.

  • Fixed a bug that query will not match because of loading data is not normalized correctly.

    • This bug occurs when load data contains whitespace after KATAKANA and unify_kana option is used for normalizer.
  • Fixed a bug that an indexes is broken during updating indexes.

    • It may occurs when repeating to add large number of records or delete them for a long term.
  • Fixed a crash bug that allocated working area is not enough size when updating indexes.

select Added new argument --load_table, --load_columns and --load_values.

We can store a result of select in a table that specifying --load_table. Explanation of arguments is below.

  • --load_table option: Specifies table that store a result of select.
  • --load_values option: Specifies columns of result of select.
  • --load_columns options: Specifies columns of table that specifying --load_table.

In this way, we can store values of columns that specifying with --load_values into columns that specifying with --load_columns.

For example, we can store _id and timestamp that a result of select in a Logs table specified by --load_table as below.

table_create Logs_20150203 TABLE_HASH_KEY ShortText
column_create Logs_20150203 timestamp COLUMN_SCALAR Time

table_create Logs TABLE_HASH_KEY ShortText
column_create Logs original_id COLUMN_SCALAR UInt32
column_create Logs timestamp_text COLUMN_SCALAR ShortText

load --table Logs_20150203
[
{
  "_key": "2015-02-03:1",
  "timestamp": "2015-02-03 10:49:00"
},
{
  "_key": "2015-02-03:2",
  "timestamp": "2015-02-03 12:49:00"
}
]

select \
  --table Logs_20150203 \
  --load_table Logs \
  --load_columns "original_id, timestamp_text" \
  --load_values "_id, timestamp"
[
  [
    0,
    0.0,
    0.0
  ],
  [
    [
      [
        2
      ],
      [
        [
          "_id",
          "UInt32"
        ],
        [
          "_key",
          "ShortText"
        ],
        [
          "timestamp",
          "Time"
        ]
      ],
      [
        1,
        "2015-02-03:1",
        1422928140.0
      ],
      [
        2,
        "2015-02-03:2",
        1422935340.0
      ]
    ]
  ]
]

select --table Logs
[
  [
    0,
    0.0,
    0.0
  ],
  [
    [
      [
        2
      ],
      [
        [
          "_id",
          "UInt32"
        ],
        [
          "_key",
          "ShortText"
        ],
        [
          "original_id",
          "UInt32"
        ],
        [
          "timestamp_text",
          "ShortText"
        ]
      ],
      [
        1,
        "2015-02-03:1",
        1,
        "1422928140000000"
      ],
      [
        2,
        "2015-02-03:2",
        2,
        "1422935340000000"
      ]
    ]
  ]
]

Added index_column_diff command to check broken index column. (This feature is during the verification.)

We can check the broken index by this command. However, this feature has been during the verification yet.

This command compares values of an index column to tokenized an index source values and display diff of them.

We can use this command as below.

  • We specify the name of an index table name includes an index column of a target in the first argument.
  • We specify the index name of the target in the second argument.
index_column_diff index_table_name index_column_name

result of this command have three items as below

  • token : This item shows broken token.
  • remains : This item shows it has remained posting-list in index unintentionally.
  • missings : This item shows it has been deleted posting-list in index unintentionally.

If indexes are normal, this command returns empty value as below.

index_column_diff --table Term --name data_index
[[0,1553654816.796513,0.001804113388061523],[]]

Conclusion

See Release 9.0.1 2019-03-29 about detailed changes since 9.0.0

Let's search by Groonga!