NEWS
6.0.5: 2016-07-15 #version-6-0-5
Improvements
Supported Groonga 6.0.5. Groonga 6.0.4 or older aren't supported.
Groonga::ID: Added a module that provided object ID related features.
Groonga::ID.builtin?: Added a new predicate method that checks whether the given ID is ID for builtin object or not.
Groonga::ID::NIL: Added a new constant that represents invalid ID.
Groonga::ID::MAX: Added a new constant that represents the maximum ID.
Groonga::Name: Added a new module that provides object name related features.
Groonga::Name.column?: Added a new predicate method that checks whether the given name is column object name or not.
Groonga::Object#column?: Added a new predicate for column.
Groonga::Object#reference_column?: Added a new predicate for column that uses table as value type.
Groonga::Object#index_column?: Added a new predicate for index column.
Groonga::Object#touch: Added a new method that updates the last modified time of the object.
Groonga::Object#last_modified: Added a new method that returns the last modified time of the object.
Groonga::Object#dirty?: Added a new method that checks whether the object is changed after the last flush.
6.0.4: 2016-06-14 #version-6-0-4
Improvements
Supported Groonga 6.0.4. Groonga 6.0.3 or older aren't supported.
Groonga::WindowFunctionError: Added a new error class.
Groonga::ProcedureType::WINDOW_FUNCTION: Added a new procedure type for window function.
Groonga::Object#window_function_procedure?: Added a new predicate for window function.
Groonga::DataColumn#apply_window_function: Added a new method to apply a window function.
6.0.2: 2016-05-18 #version-6-0-2
Improvements
Supported Groonga 6.0.2. Groonga 6.0.1 or older aren't supported.
Groonga::Table#select: Supported nested array as conditions.
Supported HTTP proxy with authentication on install. [GitHub#129] [Patch by ngram]
Groonga::Cancel: Added a new error class.
Groonga::Table#select: Supported passing Hash as function argument.
Groonga::Hash.create: Added
:key_large
option to create hash table that supports 1TiB total key size.Groonga::Type#text_family?: Added a new predicate that returns
true
forShortText
,Text
andLongText
types.Groonga::Type#number_family?: Added a new predicate that returns
true
forUInt8
,Int8
, ...,UInt64
,Int64
andFloat
types.Groonga::Type#builtin?: Added a new predicate that returns
true
for builtin types such asInt32
.Groonga::Object#remove: Added
:dependent
option to remove all tables and columns that depend on the object.Groonga::RequestCanceler: Added an interface that cancels one or more requests.
Groonga::RequestTimer: Added an interface that provides request timeout feature.
6.0.0: 2016-03-06 #version-6-0-0
Improvements
Supported Groonga 6.0.0. Groonga 5.1.2 or older aren't supported.
Supported
-
operator as Groonga::Operator::AND_NOT.grndump
: Added:max_records
option. [Patch by Genki Takiuchi]Groonga::Table#select: Supported integer and time as function call arguments.
Groonga::Table#select: Disabled auto conversion to record ID from number object in condition block. If you want to specify record ID as right hand side value, you need to pass Groonga::Record. The number object is treated as key not ID from this release. Because we couldn't specify Int/UInt family type key as number object. The number object was always treated as ID not key.
It's backward incompatible change but we introduced the change. Because we marked this behavior as a bug.
Supported
require "rroonga"
forBundler.require
. [Patch by Fumiaki MATSUSHIMA]Added Groonga::Plugin.names.
Added Groonga::Config#delete.
Added Groonga::Config#each.
Added Groonga::Index. It has index column and section.
Added Groonga::Column#find_indexes. It returns an array of Groonga::Index.
Mark Groonga::Column#indexes as deprecated. Use Groonga::Column#find_indexes instead.
Added Groonga.error_message.
Supported method style function call in Groonga::Table#select block. It's Rubyish API.
Example:
@shops.select do |record| record.location.geo_in_rectangle("35.7185,139.7912", "35.7065,139.8069") end
Thanks
Genki Takiuchi
Fumiaki MATSUSHIMA
5.1.1: 2016-01-18 #version-5-1-1
Improvements
- Supported Groonga 5.1.1. Groonga 5.0.9 or older aren't supported.
- Supported accessor in Groonga::Table#geo_sort.
- Improved performance of searching with empty condition.
- Added Groonga::Object#accessor?.
- Added Groonga::Object#key_accessor?.
- Added Groonga::Database#reindex.
- Added Groonga::TableKeySupport#reindex.
- Added Groonga::FixSizeColumn#reindex.
- Added Groonga::VariableSizeColumn#reindex.
- Added Groonga::IndexColumn#reindex.
- Added Groonga.package_label.
- Renamed Groonga::Conf to Groonga::Config.
- Renamed Groonga::Context#conf to Groonga::Context#config.
5.0.9: 2015-11-10 #version-5-0-9
Improvements
- Supported Groonga 5.0.9. Groonga 5.0.8 or older aren't supported.
- Added Groonga::Context#conf that returns Groonga::Conf.
- Added Groonga::Conf#[] that returns a database level configuration value.
- Added Groonga::Conf#[]= that sets a database level configuration value.
- Added Groonga::Table#geo_sort= that sorts by geo point.
5.0.8: 2015-10-07 #version-5-0-8
Improvements
- Changed to use
gmake
preferentially for auto Groonga build. - Supported Groonga 5.0.8. Groonga 5.0.7 or older aren't supported.
- Added Groonga::Context#opened? that checks whether object with the specified ID is opened or not.
- Supported calling a function in Groonga::Table#select by
record.call("function", arg1, arg2, ...)
. - Windows: Changed to cross compile system to rake-compiler-dock from Vagrant based cross compile system. [GitHub#108] [Patch by Hiroshi Hatake]
Thanks
- Hiroshi Hatake
5.0.5: 2015-09-09 #version-5-0-5
Improvements
- Supported Groonga 5.0.7. Groonga 5.0.6 or older aren't supported.
- Added Groonga::Object#selector_only_procedure?.
- Supported Groonga::Table#open_cursor with
:order_by => :key
against Groonga::DoubleArrayTrie. - Added Groonga::Database#unmap.
- Added Groonga::Thread.limit.
- Added Groonga::Thread.limit=.
- Added Groonga::Thread.limit_getter=.
- Added Groonga::Thread.limit_setter=.
- Added Groonga::WindowsEventLogger.register.
- Added Groonga::Logger.max_level.
- Added Groonga::Logger.max_level=.
Fixes
grndump
: Fixed an error when--order-by=key
is specified against database that hasGroonga::Array
orGroonga::Hash
.
5.0.4: 2015-07-13 #version-5-0-4
Improvements
- Supported Groonga 5.0.5. Groonga 5.0.4 or older aren't supported.
- Added Groonga::Flushable#flush to bind
grn_obj_flush()
andgrn_obj_flush_recursive()
. - Included Groonga::Flushable module to Groonga::Table.
- Included Groonga::Flushable module to Groonga::Column.
- Included Groonga::Flushable module to Groonga::Database.
5.0.3: 2015-06-10 #version-5-0-3
Improvements
- Removed deprecated option "rubyforge_project" from .gemspec. [GitHub#95][Patch by takiy33]
- [groonga-database-inspect] Added column value type.
- [groonga-database-inspect] Added sources of index column.
- [groonga-database-inspect] Added the number of sources of index column.
- [groonga-database-inspect] Added
--log-path
option. - [groonga-database-inspect] Reduced memory usage.
- [windows] Updated bundled Groonga version to 5.0.4.
Thanks
- takiy33
5.0.2: 2015-05-18 #version-5-0-2
Improvements
- Added Groonga::Plugin.ruby_suffix.
- Groonga::Hash is used as the default table type when
:key_type
is specified in Groonga::Schema. Groonga::Array was used as the default table type. It's a backward incompatible change. But nobody will not stumped. Because:key_type
is specified but:type
isn't specified case is a bug of user's program. - Added Groonga::Logger#log.
- Added Groonga::Logger.rotate_threshold_size.
- Added Groonga::Logger.rotate_threshold_size=.
- Added Groonga::QueryLogger#log.
- Added Groonga::QueryLogger.rotate_threshold_size.
- Added Groonga::QueryLogger.rotate_threshold_size=.
- Implemented Groonga::QueryLogger::Flags.parse.
5.0.1: 2015-04-14 #version-5-0-1
Improvements
- Supported Groonga 5.0.2. Groonga 5.0.1 or older aren't supported.
- Added Groonga::Expression#estimate_size.
- Added closed check in
#encoding
. [GitHub#54] [Reported by yui-knk] - [windows] Supported Ruby 2.2.
- Supported
Groonga::Normalizer.normalize("")
. [GitHub#55] [Reported by Tasuku SUENAGA] - Added Groonga::ScorerError.
- Added shortcuts for
TokenRegexp
toGroonga::Schema
. - Added Groonga::Operator::REGEXP.
- Added Groonga::Plugin.unregister.
- Added Groonga::Context#unregister_plugin.
- Changed Groonga::Operator to class from module. It's a backward incompatible change but nobody will not be effected.
- Removed unused
:id
option from the followings:- Groonga::Column#clear_lock
- Groonga::Column#locked?
- Groonga::Table#clear_lock
- Groonga::Table#locked?
- Added Groonga::EqualOperator#exec.
- Added Groonga::NotEqualOperator#exec.
- Added Groonga::LessOperator#exec.
- Added Groonga::GreaterOperator#exec.
- Added Groonga::LessEqualOperator#exec.
- Added Groonga::GreaterEqualOperator#exec.
- Added Groonga::MatchOperator#exec.
- Added Groonga::PrefixOperator#exec.
- Added Groonga::RegexpOperator#exec.
- Added Groonga::ProcedureType::TOKEN_FILTER.
- Added Groonga::ProcedureType::SCORER.
- Added Groonga::Operator#to_s.
- Supported Groonga::IndexColumn#estimate_size against query.
- Supported Groonga::IndexColumn#estimate_size against lexicon cursor.
- Added Groonga::Object#table?.
- Added Groonga::Object#procedure?.
- Added Groonga::Object#function_procedure?.
- Added Groonga::Object#selector_procedure?.
- Added Groonga::Object#scorer_procedure?.
- Supported regular expression in Groonga::Table#select block.
Thanks
- yui-knk
- Tasuku SUENAGA
5.0.0: 2015-02-16 #version-5-0-0
Improvements
- Supported Groonga 5.0.0. Groonga 4.1.1 or older aren't supported.
Added flags for Groonga::Normalizer.normalize. [GitHub#44] [Patch by Tasuku SUENAGA a.k.a. gunyarakun]
Groonga::Normalizer.normalize("AbC Def gh") #=> "abcdefgh" Groonga::Normalizer.normalize("AbC Def gh", :remove_blank => true) #=> "abcdefgh" Groonga::Normalizer.normalize("AbC Def gh", :remove_blank => false) #=> "abc def gh"
Supported drilldown by multiple keys in Groonga::Table#group.
Supported calculation for drilldown in Groonga::Table#group.
Thanks
- Tasuku SUENAGA a.k.a. gunyarakun
4.0.8: 2015-01-08 #version-4-0-8
Improvements
- Supported Groonga 4.0.9. Groonga 4.0.8 or older aren't supported.
- Added Groonga::Column#truncate. [GitHub#41] [Patch by Hiroshi Hatake]
- Added Groonga::Database#recover.
Fixes
- Fixed a typo in Groonga::GeoPoint#==.
Thanks
- Hiroshi Hatake
4.0.7: 2014-12-12 #version-4-0-7
Improvements
- Supported Groonga 4.0.8. Groonga 4.0.7 or older aren't supported.
- Added
:reuse_posting_object
option to Groonga::IndexCursor#each. The option improves performance by reducing memory allocation. The option is disabled by default because reusing the same object isn't Rubyish. - Added Groonga::IndexColumn#estimate_size. [GitHub#38]
- Accepted string for integer, unsigned integer and float type key.
4.0.6: 2014-11-06 #version-4-0-6
Improvements
- Supported Groonga 4.0.7. [GitHub#28]
- Changed Groonga::Context#support_lzo? always returns
false
. - Added Groonga::Context#support_lz4?.
- Supported
:lz4
in Groonga::Table#define_column options. - Supported
:lz4
in Groonga::VariableSizeColumn#compressed? options. - Added Groonga::LZ4Error.
- [grndump] Supported
COMPRESS_ZLIB
andCOMPRESS_LZ4
flags. - Added Groonga::Table::KeySupport#token_filters.
- Added Groonga::Table::KeySupport#token_filters=.
- Supported
:token_filters
in Groonga::Hash.create options. - Supported
:token_filters
in Groonga::PatriciaTrie.create options. - Supported
:token_filters
in Groonga::DoubleArrayTrie.create options. - Supported
:token_filters
in Groonga::Schema.create_table options. - Added Groonga::TokenFilterError.
- [grndump] Supported token filters.
- Changed Groonga::Context#support_lzo? always returns
- Added Groonga::Expression#keywords. [GitHub#30]
- Stopped to require logger object as the first argument of Groonga::Logger.register when block is specified.
Fixes
- [doc] Removed deprecated example. [GitHub#26] [Patch by ongaeshi]
- Fixed a bug that a column assignment raises an error when you assign value with type A and then assign value type B again. [GitHub#27] [Patch by Daisuke Goto]
- Fixed a memory leak in Groonga::PatriciaTrie#open_near_cursor.
- Fixed a bug that you can access a column renamed by Groonga::Column#rename with old name. [GitHub#29] [Patch by Daisuke Goto]
- [doc] Fixed wrong option name of Groonga::Logger.register.
Thanks
- ongaeshi
- Daisuke Goto
4.0.5: 2014-10-05 #version-4-0-5
Improvements
- [windows] Added cross build task.
- Added Groonga::DoubleArrayTrie#update. [GitHub#24] [Patch by Masafumi Yokoyama]
- Added Groonga::Record#rename.
- [windows] Disabled debug flags.
Fixes
- Added
:id => true
option to Groonga::Table::KeySupport#delete.Groonga::Table::KeySupport#delete
accepts both ID and key. If passed value is integer, it is handled as ID. But we can useInt32
as key. In the case, we can't delete a record by key. Therefore, we addedGroonga::Table::KeySupport#delete(id, :id => true)
API. It introduces a backward incompatibility, but it is OK because the current API is a bug.
Thanks
- Masafumi Yokoyama
4.0.4: 2014-08-29 #version-4-0-4
Improvements
- Supported Groonga 4.0.4 or later. Groonga 4.0.3 or older are not supported.
- Added Groonga::ProcedureType that has constants as GRN_PROC_XXX.
Added Groonga::Procedure#type as grn_proc_get_type().
procedure = Groonga["TokenBigram"] p procedure.type == Groonga::ProcedureType::TOKENIZER #=> true
Avoided a crash when Groonga::Record#inspect is called on exit. [GitHub#18] [Reported by Ippei Obayashi]
Updated Free Software Foundation address. [Masafumi Yokoyama]
Supported reference weight vector. It requires Groonga 4.0.4 or later.
Updated homepage in gemspec to use ranguba.org. [Masafumi Yokoyama]
Reduce memory usage without GC.
Fixes
- Fixed a GC related crash when GC is run while Groonga::Table#group.
Thanks
- Ippei Obayashi
- uu59
- cosmo0920
4.0.3: 2014-06-04 #version-4-0-3
Fixes
- [windows] Fixed a bug that Rroonga reports load error by bundling the fixed version Groonga package. [groonga-dev,02398][Reported by Masafumi Yokoyama]
Thanks
- Masafumi Yokoyama
4.0.2: 2014-05-29 #version-4-0-2
Improvements
- Removed needless
--key_type
option in dump. [Reported by Genki Takiuchi] - Added sources information to Groonga::IndexColumn#inspect.
- Enabled
with_section
flag for multiple column index by default. See Groonga::Schema::TableDefinition#index. - Enabled
with_position
flag for index of a table that has a default tokenizer by default. You need to specify:with_position => false
explicitly to disablewith_position
flag forTokenDelimit
.TokenDelimit
is a tokenizer that doesn't needwith_position
flag. See Groonga::Schema.create_table.
Fixes
- [GitHub#16] Fixed a memory leak of Groonga::Table#column. [Reported by rutice]
Thanks
- rutice
- Genki Takiuchi
4.0.1: 2014-04-04 #version-4-0-1
Improvements
- Supported Groonga 4.0.1. Groonga 4.0.0 or older are not supported.
Supported no weight match column case.
table.select do |record| match_target = record.match_target do |target| target.column end match_target =~ keyword end
Supported weight vector.
grndump: Changed to use
--normalizer
instead ofKEY_NORMALIZE
. Old Groonga can't restore dumped database.Groonga::IndexColumn#search: Added
mode
option.Groonga::IndexColumn#search: Added
weight
option.Accepted String as option key.
Fixes
- Fixed a bug that index dump drops index options in Ruby syntax.
4.0.0: 2014-02-09 #version-4-0-0
Improvements
- Supported Groonga 4.0.0. Groonga 3.1.2 or older are not supported.
- Added install document. [Patch by ongaeshi]
Thanks
- ongaeshi
3.1.2: 2014-01-29 #version-3-1-2
Improvements
- Supported Groonga 3.1.2. Groonga 3.1.1 or older are not supported.
- Added Groonga::Table#support_value?.
- Added Groonga::Record#support_value?.
- Added
_value
value to Groonga::Record#attributes result. [groonga-dev,02046] [Suggested by ongaeshi] - Added column values to Groonga::Record#inspect result. [groonga-dev,02048] [Suggested by ongaeshi]
- grndump: Added
--dump-indexes
option that controls schema for indexes output. It is useful to dump only schema for indexes. - Added Groonga.lock_timeout.
- Added Groonga.lock_timeout=.
Thanks
- ongaeshi
3.1.1: 2013-12-29 #version-3-1-1
Improvements
- Supported Groonga 3.1.1.
- [groonga-database-inspect] Added
--no-tables
option for hiding all table information. - [groonga-database-inspect] Added
--no-columns
option for hiding all column information. - [doc] Updated English mailing list to use Groonga-talk. [GitHub#14] [Patch by Masafumi Yokoyama]
- Groonga::Expression#append_operation supports operator name.
- Groonga::Expression#append_constant supports operator name.
- Groonga::Expression#append_object supports operator name.
Thanks
- Masafumi Yokoyama
3.1.0: 2013-11-29 #version-3-1-0
Improvements
- Reduced build failure by automatically Groonga build. [Reported by SHIMADA Koji]
- Added
groonga-database-inspect
command that inspects passed database. [Suggested by Genki Takiuchi] - Groonga::Database#tables ignores missing objects rather than raising an exception. Because the method is interested in only existing tables.
Fixes
- Fixed a bug that Groonga::Expression#parse doesn't accept all mode and operators.
Thanks
- SHIMADA Koji
- Genki Takiuchi
3.0.9: 2013-10-29 #version-3-0-9
Improvements
- Supported Groonga 3.0.9.
- Supported showing error message on error in Groonga::Object#remove.
Fixes
- Fixed a crash bug that is caused by assigning
nil
as source of index column.
3.0.8: 2013-09-29 #version-3-0-8
Improvements
- Supported groonga 3.0.8.
- Supported x64-mingw32 Ruby.
- Supported Ruby 2.1.0 preview1.
3.0.7: 2013-09-19 #version-3-0-7
Improvements
- Added Groonga::Table::KeySupport#tokenize. It requires groonga 3.0.8. Groonga 3.0.8 is not released yet.
- Changed return object of Groonga::Context#select to groonga-client gem's
return object. It is a backward imcompatible change. Some APIs are changed.
For example,
drill_down
is renamed todrilldowns
. See "Groonga::Client::Response::Select":http://rubydoc.info/gems/groonga-client/Groonga/Client/Response/Select about rerturn object details. ** Added groonga-client gem, groogna-command gem, gqtp gem dependencies.
Fixes
- Fixed a bug that auto groonga installation is failed. [GitHub#12][Patch by Keita Haga]
Thanks
- Keita Haga
3.0.6: 2013-09-13 #version-3-0-6
Improvements
- Supported accessing reference column that referes a table that uses Int8/UInt8/Int16/UInt16 key.
3.0.5: 2013-07-29 #version-3-0-5
Improvements
- [dumper] supported dumping of DoubleArrayTrie.
- Supported Int8/UInt8/Int16/UInt16 to Ruby conversion. [groonga-dev,01524][Reported by Masaharu YOSHIOKA]
Added memory pool mechanism to reduce GC easily. Groonga::Context#push_memory_pool and Groonga::Context#pop_memory_pool are added. You can close temporary table objects automatically:
context.push_memory_pool do # create tempoeray table objects by select, group, sort and so on... end # created tempoeray table objects are closed automatically
Supported max int32 over Fixnum [Reported by xtuaok]
Fixes
- [dumper] fixed a bug that no column table isn't dumped.
Thanks
- Masaharu YOSHIOKA
- xtuaok
3.0.4: 2013-07-04 #version-3-0-4
Fixes
- Fixed a rroogna 3.0.3 gem package for Windows.
3.0.3: 2013-07-04 #version-3-0-3
Improvements
- Required groonga >= 3.0.5.
- Added an error check for creating a result table of Groonga::Table#select.
- Added Groonga::Operator::AND_NOT.
- Deprecated Groonga::Operator::BUT because groonga deprecated it. Use Groonga::Operator::AND_NOT instead.
- Added Groonga::Array#unblock.
- Added
:max_n_sub_records
option to Groonga::Table#group. - Added Groonga::Table#each_sub_record.
- Supported groonga to Ruby conversion for vector value.
- Added
:reference => true
option to Groonga::Expression#define_variable that defines reference type variable. - Added Groonga::Record#sub_records that returns sub records for the record. Sub records is a Groonga::SubRecords instance.
Fixes
- Fixed Groonga::Expression#[] return type. It returns Groonga::Variable instead of value itself. CAUTION: It is a backward incompatible change.
3.0.2: 2013-05-29 #version-3-0-2
Improvements
- Required groonga >= 3.0.4.
- Supported set/get a vector of Time.
- [grndump] Stopped to dump index only tables. They are needless.
- Added Groonga::Record#to_json.
- Added Groonga::IndexColumn#add.
- Added Groonga::IndexColumn#delete.
- Added Groonga::IndexColumn#update.
- Deprecated
Groonga::IndexColumn#[]=
. Use Groonga::IndexColumn#add, Groonga::IndexColumn#delete or Groonga::IndexColumn#update instead. - Added Groonga::Table#have_n_sub_records_space?.
- [grndump] Don't dump "register PLUGIN" when schema dump is disabled.
Fixes
- [grndump] Fixed a bug that reference tables may be dumpped before referenced tables.
3.0.1: 2013-05-01 #version-3-0-1
Improvements
- Required groonga >= 3.0.3.
- Supported assigning weight to value. See Groonga::Table#set_column_value, Groonga::Record#initialize and Groonga::Record#[]= for details.
- Renamed to Groonga::QueryLogger.path from Groonga::Logger.query_log_path.
- Renamed to Groonga::QueryLogger.path= from Groonga::Logger.query_log_path=.
- Renamed to Groonga::Logger.path from Groonga::Logger.log_path.
- Renamed to Groonga::Logger.path= from Groonga::Logger.log_path=.
- Added missing "Packnga >= 0.9.7" requirement. [Reported by takkanm]
Fixes
- Fixed a memory leak on error.
Thanks
- takkanm
3.0.0: 2013-03-29 #version-3-0-0
Improvements
- Required groonga >= 3.0.2.
- Added block support to Groonga::Context#create_database. If a block is given, created database is closed on block exit.
- [experimental] Added Groonga::Array#push.
- [experimental] Added Groonga::Array#pull.
- Added more closed object checks. [GitHub #8][Reported by KITAITI Makoto]
- Added block support to Groonga::Context#restore. If a block is given, command and its response are yielded.
Thanks
- KITAITI Makoto
2.1.3: 2013-01-29 #version-2-1-3
Improvements
- Removed Groonga::View removed in groonga 2.1.2.
- [doc] Added tutorial in English. ** for English:http://ranguba.org/rroonga/en/file.tutorial.html ** for Japanese:http://ranguba.org/rroonga/ja/file.tutorial.html
[context] Added Context#restore. This method restores command dumped by "grndump" command. Please see example below:
dumped_commands = File.read("dump.grn") context.restore(dumped_commands)
Supported new logger API in groonga. Old API isn't used anymore.
For installing groonga with this gem: ** Stopped to install documentation about groonga. See "Web site":http://groonga.org/docs/ instead. ** Stopped to build static library because it isn't used by rroonga.
Fixes
[dumper] Reduced needless new lines in dumped commands.
For ranguba project: ** [template] Removed needless block for sponsor by rubyforge. ** [template] Removed needless piwik tag. ** [template] Fixed URLs of references in Japanese.
2.1.2: 2013-01-04 #version-2-1-2
Fixes
- Fixed GC related crash. Table's domain and range are also marked.
2.1.1: 2012-12-29 #version-2-1-1
Improvements
- Required groonga 2.1.1 because groonga 2.1.0 has a serious bug related to key normalization.
2.1.0: 2012-12-29 #version-2-1-0
Improvements
- Required groonga 2.1.0.
- Supported mass record deletion with block. [groonga-dev,01138][Suggested by ongaeshi]
Added Groonga::Normalizer.normalize (experimental). It normalize string. e.g.)
Groonga::Normalizer.normalize("AbC") # => "abc"
Now, it removes any spaces by default, but it will be customized soon.
- Supported :normalizer option in DoubleArrayTrie, PatriciaTrie, Hash, Schema when creating tables.
- [table] Added using normalizer accessor.
- [table] Used normalizer for checking key normalization is enabled or not.
Added groonga-index-dump tool (experimental). This tool dumps infomations for each index from DB. Dumped informations are contained at "INDEX_NAME.dump" files in "TARGET_TABLE_NAME.index_INDEX_COLUMN_NAME". e.g.)
$ cat index-dump.sdf table_create --name Video --flags TABLE_HASH_KEY --key_type UInt32 table_create --name Tag --flags TABLE_HASH_KEY --key_type ShortText column_create --table Video --name title --flags COLUMN_SCALAR --type ShortText column_create --table Video --name tags --flags COLUMN_VECTOR --type Tag column_create --table Tag --name index_tags --flags COLUMN_INDEX --type Video --source tags load --table Video [ Demo","tags":["IT","Server","groonga"], Baseball","tags":["Sports","Baseball"], ] $ groonga --file index-dump.sdf -n index-dump.db $ groonga-index-dump --output-directory=path/to/index/ index-dump.db $ cd path/to/index/ $ ls Tag.index_tags Baseball.dump IT.dump Server.dump Sports.dump groonga.dump $ cat path/to/index/Tag.index_tags/groonga.dump index: Tag.index_tags term:
domain: Tag range: Video have_section: false have_weight: false have_position: false weight position term_frequency record 0 2 1 Video[ 1 ].tags Added flag options to Groonga::IndexColumn#open_cursor. The flag options are :with_section, :with_weight, :with_position. They are enabled by default if each option is specified in creating a index column.
[Snippet] Showed the error message when specified context wasn't associated with a database by Groonga::Database#open or #create.
[inspect] Supported to display index column related flags for index column only. "index column related flags" are WITH_SECTION, WITH_WEIGHT and WITH_POSITION.
[inspect] Added default tokenizer and normalizer infomation.
Supported Groonga::QueryLogger. This class is used to log query log. Please see its reference for detail.
Changes
Move groonga-query-log-extract to groonga-query-log. Please install groogna-query-log gem to use this tool. how to install:
gem install groonga-query-log
Returned Groonga::Array instead of Array by Table#sort. [GitHub: #8][Suggested by Genki Takiuchi] CAUTION: This is backward incompatible change. You need to use record.value to get the original record. The following code shows how to use old style:
result_since_2_1_0 = table.sort(["sort_key"]) result_before_2_1_0 = result_since_2_1_0.collect do |record| record.value end
Thanks
- ongaeshi
- Genki Takiuchi
2.0.8: 2012-12-02 #version-2-0-8
Improvements
- Required groonga 2.0.9.
2.0.7: 2012-11-29 #version-2-0-7
Improvements
- Added
Groonga::Posting#record
. This method returns the record for the record ID in table. - Added
Groonga::Posting#term
. This method returns the record for the term ID in table. - Supported
GRN_OBJ_KEY_VAR_SIZE
forGroonga::Type#inspect
.GRN_OBJ_KEY_CAR_SIZE
specifies its column is variable size. - [Type] Added reader methods to
Groonga::Type
(#size
and#flags
). - [Type] Added predicate methods to
Groonga::Type
. Added methods are#fixed_size?
,#variable_size?
,#unsigned_integer?
,#integer?
,#float?
and#geo_point?
.
Changes
- Removed query log related codes. This feature moved to groonga-query-log gem and it is relased soon.
2.0.6: 2012-10-25 #version-2-0-6
Improvements
- [dump] Put index columns at the bottom (after loads). It is for using offline index construction.
- Added term_extract in Table#select by
table.select {|record| record.key.term_extract(text)}
syntax. - Supported
:allow_leading_not
as a option of#select
. You should use this option carefully. It takes a long time to search all records which doesn't include a word. In addition, when the number of records is large, to search them with this option is slowly.
Changes
- Changed option name for debug build in extconf.rb from
--with-debug
to--enable-debug-log
.
Fixes
- Fixed display collapse in the references.
2.0.5: 2012-09-28 #version-2-0-5
Improvements
- Supported groonga 2.0.7.
- Removed the workaround to install rroonga with old groonga.
- Added more error checks.
- Added Database#tables. [Suggested by @temitan]
- Supported Enumerator for #each on Database, Table, TableCursor and IndexCursor.
- Added WGS84GeoPoint and TokyoGeoPoint.
- [dumper] supported dumping of WGS84GeoPoint and TokyoGeoPoint.
- [dumper] worked on non UTF-8 extenal output encoding environment.
- [dumper] sorted table and column names.
- [dumper] ignored invalid byte.
- [grndump] showed the warning for invalid character.
- [grndump] supported database that is created by old groonga.
- Added
Groonga::Context#ruby_encoding
. - Added many documents in codes but showed no references.
Fixes
- Added missing backslash escape for groonga command.
Thanks
- @temitan
2.0.4: 2012-05-02 #version-2-0-4
Fixes
- Fixed a bug that weight of match target is ignored.
2.0.3: 2012-05-02 #version-2-0-3
Improvements
- Supported groonga 2.0.2.
Groonga::Table#each
supports options that are same asGroonga::Table#open_cursor
's one.- [grndump] added
--order-by=id
option. With this option, dumped records are sorted by ID instead of key. You can restore records without ID change if you don't delete any records. [#1341] - Supported building on Windows with RubyInstaller for Windows with DevKit. [GitHub#6] [Patch by @ongaeshi]
- Supported similar search by
table.select {|record| record.column.similar_search(text)}
syntax.
Fixes
- Fixed a GC related crach bug.
Thanks
- @ongaeshi
2.0.2: 2012-03-29 #version-2-0-2
Improvements
- Supported groonga 2.0.1.
- Added "logos":http://groonga.rubyforge.org/#logo .
Fixes
- Fixed a Groonga::Snipet related crach bug caused by GC.
2.0.0: 2012-03-22 #version-2-0-0
Improvements
- Supported groonga 2.0.0.
- [gem][windows] Removed mswin packages.
Fixes
- [test] Fixed version test failure. [GitHub#4] [Reported by @takkanm]
- Fixed a Groonga::Expression related crach bug caused by GC.
- [doc] Fixed broken HTML output. [groonga-dev,00699] [Reported by Hirano]
Thanks
- @takkanm
- Hirano
1.3.1: 2012-01-29 #version-1-3-1
Improvements
- Supported groonga 1.3.0.
- [schema] Supported Int8, Int16, UInt8 and UInt16.
- [schema] Supported TokyoGeoPoint and WGS84GeoPoint.
- [schema][dumper] Supported Boolean and more built-in types. [Reported by @mashiro]
- [schema] Supported type object as column type. [#1002]
- Added
Groonga::VariableSizeColumn#compressed?
. [#1004] - Added
Groonga::Record#score=
. - Improve performance for encoded string.
- Added
Groonga::Command::Builder.escape_value
.
Thanks
- @mashiro
1.3.0: 2011-11-29 #version-1-3-0
Improvements
- [schema] Remove also needless db.tables/ directory if it is empty.
- [schema] Remove also needless db.tables/table.columns/ directory if it is empty.
- Added query log parser.
- Added groonga-query-log-extract command.
- Added grntest log analyzer.
- Added JSON gem dependency.
- Supported groonga 1.2.8.
- Dropped groonga 1.2.7 or former support.
- Added Groonga::Table#defrag.
- Added Groonga::Table#rename.
- Added Groonga::Column#rename.
- Added Groonga::DoubleArrayTrie.
- [schema] Supported table rename.
- [schema] Supported column rename.
- [schema] Supported double array trie.
Changes
- [schema] Don't use named path by default for location aware DB.
Fixes
- Fixed a crash problem on GC.
1.2.9: 2011-09-16
Fixes
- deleted unneed object files.
1.2.8: 2011-09-16
Improvements
- supported
!=
expression for column in block ofGroonga::Table#select
. - accepted Hash like object as options.
- supported vector in dump in Ruby syntax.
- supported
GRN_CTX_PER_DB
environment variables. (NOTE: You should pay attention to use this variables.)
1.2.7: 2011-08-29
Improvements
- Added Groonga::Snippet#close that frees resource.
Fixes
- Fixed build error on Ruby 1.8.7.
1.2.6: 2011-08-29
Improvements
- Supported groonga 1.2.5.
- Added Groonga::Record#added? that returns true when the record is just added.
- Added Groonga::VariableSizeColumn#defrag? that defrags the column.
- Added Groonga::Database#defrag that defrags the all variable size columns.
- Supported column name specification by symbol.
Fixes
- Fixed install *.rb failure by gem install.
- Fixed some memory leaks.
- Fixed crash bug on exit.
1.2.5: 2011-08-05
Improvements
- Re-supported tar.gz distribution.
- Added Groonga::Context#close.
- Added Groonga::Context#closed?.
- Deprecated Groonga::ObjectClosed. Use Groonga::Closed instead.
- grndump: Added --exclude-table option that specifies not dumped tables.
- dump: Removed path equality check.
Fixes
- dump: Fixed wrong index table type.
- Re-supported auto groonga install.
1.2.4: 2011-06-29
Improvements
- Supported groonga 1.2.3.
Fixes
- Re-supported auto groonga install.
- Added missing pkg-config gem dependency.
1.2.3: 2011-06-27
Fixes
- remove object files in gem packages.
- fix charactor corruption in reference.
1.2.2: 2011-06-27
Improvements
- created "Developers" page in English.
- added description for tasks of "html:publish" and "publish".
Changes
- Groonga::Record#attributes return same attributes object for duplicate records.
- added document for Groonga::Record#attributes.
- changed tool name in document page for creating document.
- moved NEWS*.rdoc and tutorial.texttile to doc/text/.
Fixes
- fixed the tutorial path in index page.
- fixed the path of tutorial in index page in English.
- follow the groonga downlowd URL change. [mallowlabs]
Thanks
- mallowlabs
1.2.1: 2011-06-07
Improvements
- added document of Groonga::Table#pagination.
- added grndump in package.
- corresponded recursive reference of Records by Groonga::Record#attributes. (experimental) [mooz]
- Groonga::Record#attributes supported data including _score.
- corresponded Windows for 64-bit. (but there's not 64-bit ruby, so rroonga for 64-bit windows cannot run.)
- added Groonga::Posting.
- added :delimit, :token_delimiter for alias of TokenDelimit.
- Groonga::DatabaseDumper#dump corresponded lexicon table.
- Groonga::DatabaseDumper#dump corresponded data including plugin.
- added Groonga::IndexColumn#open_cursor. [yoshihara]
- added Groonga::IndexCursor. [yoshihara]
- added Groonga::Object#builtin?. [yoshihara]
Changes
- check existence of column before removing it.
- removed grn expression document.
Thanks
- mooz
- yoshihara
1.2.0: 2011-04-01
Improvements
- Supported groonga 1.2.0.
- Added
Groonga::Accessor#local_name
. - Added
Groonga::IndexColumn#with_section?
. - Added
Groonga::IndexColumn#with_weight?
. - Added
Groonga::IndexColumn#with_position?
. Groonga::Schema.dump
supported groonga command format dump.- Added grndump command.
Groonga::Database#each
supports order customize.- Added
Groonga::Context#match_escalation_threshold
. - Added
Groonga::Context#match_escalation_threshold=
. - Improved error message.
- Supported Rubyish name like
:short_text
instead of the official type name like "ShortText" inGroonga::Schema
.
1.1.0: 2011-02-09
Improvements
- Supported groonga 1.1.0.
- Added Groonga::Plugin.register.
1.0.9: 2011-01-29
Improvements
- Supported gem creation on Windows. [Patch by ongaeshi]
- Supported generated directory that is created by Groonga::Schema removal when table or column is removed.
- Added Groonga::Context#create_database.
- Added Groonga::Context#open_database.
- Added Groonga::Column#indexes.
Supported a notation for specifying index column as match target in Groonga::Table#select:
table.select do |record| record.match("query") do |match_record| (match_record.index("Terms.title") * 1000) | (match_record.index("Terms.description") * 100) match_record.content end end
Supported prefix search in Groonga::Table#select:
table.select do |record| record.name.prefix_search("groo") end
Supported suffix search in Groonga::Table#select:
table.select do |record| record.name.suffix_search("nga") end
Supported :default_tokenizer schema dump.
Supported :key_normalize schema dump.
Supported pseudo columns by Groonga::Table#have_column?.
Supported pseudo columns by Groonga::Record#have_column?.
Changes
- Renamed Groonga::Operatoion to Groonga::Operator. (Groonga::Operation is deprecated but still usable.)
Fixes
- Fixed a crash bug when not default Groonga::Context is used in Groonga::Table#select.
- Fixed a crash bug when an exception is occurred.
Thanks
- ongaeshi
1.0.8: 2010-12-25
Improvements
- Improved Groonga::Schema's n-gram tokenizer detect process.
Fixes
- Fixed GC problem caused by match_target in select.
1.0.7: 2010-12-19
Fixes
- Supported pkg-config installed by RubyGems on Ruby 1.8. [Reported by @kamipo]
- Fixed a memory leak in Groonga::Table#columns.
Thanks
- @kamipo
1.0.5: 2010-11-29
Improvements
- Added snail_case type name aliases for built-in groonga types to Groonga::Schema.
Fixes
- Fixed a crash bug on GC. [Ryo Onodera]
1.0.4: 2010-11-29
Improvements
- Supported groonga 1.0.4.
- Added Groonga::UnsupportedCommandVersion.
- Added Groonga::Record#support_sub_records?.
- Added Groonga::Record#eql?とGroonga::Record#hash. (treat two the same table and the same record ID object as the same Hash key.)
- Supported pkg-config gem.
- Supported generic #record_id object handle for custom record object in Groonga::Table#select.
- Added Groonga::Record#record_id.
- Added Groonga::Table#support_key?.
- Added Groonga::Record#support_key?.
- Added Groonga::Record#support_key?.
- Added Groonga::Column#reference_key?.
- Added Groonga::Column#index_column?.
- Added Groonga::Schema#dump.
- Supported multi columns index creation in Groonga::Schema.
- Supported meaningful path in Groonga::Schema.
- Made reference table omissible when index column definition in Groonga::Schema.
- Added Groonga::Schema.remove_column.
- Added convenience timestamps methods to define "created_at" and "updated_at" columns in Groonga::Schema.
- Added Groonga::Context#support_zlib?.
- Added Groonga::Context#support_lzo?.
- Added Groonga::Database#touch.
- Added Groonga::Table#exist?.
- Added Groonga::Record#valid?.
- Added Groonga::Column#vector?.
- Added Groonga::Column#scalar?.
- Added Groonga::Record#vector_column?.
- Added Groonga::Record#scalar_column?.
- Accepted any object that has record_raw_id method for record ID required location. Groonga::Record isn't required.
- Added Groonga::Record#record_raw_id.
- Accepted any object that as to_ary method for reference vector column value.
Changes
- Used :key as the default value of
:order_by
ofGroonga::PatriciaTrie#open_cursor
. - Removed a deprecated Groonga::TableKeySupport#find.
- Used ShortText as the default key type of Groonga::Hash#create and Groonga::PatriciaTrie#create.
- Renamed Groonga::Schema#load to Groonga::Schema#restore.
- Supported pkg-config 1.0.7.
- Added Groonga::Column#index? and deprecated Groonga::Column#index_column?.
- Added Groonga::Column#reference? and deprecated Groonga::Column#reference_column?.
Fixes
- Fixed index for key isn't be able to define.
- Fixed a crash problem on GC.
1.0.1: 2010-09-12
Fixes
- Fixed wrong flag used on creating a table. [Reported by ono matope]
Thanks
- ono matope
1.0.0: 2010-08-29
- Supported groonga 1.0.0.
- Added Groonga::CASError.
- Added :order_by option to Groonga::Table#open_cursor.
- Added Groonga::PatriciaTrie#open_prefix_cursor that creates a cursor to retrieve each records by prefix search.
- Added Groonga::PatriciaTrie#open_rk_cursor that creats a cursor to retrieve katakana keys from roman letters and/or hiragana.
- Added Groonga::PatriciaTrie#open_near_cursor that creates a cursor to retrieve records order by distance from key.
- Supported _key as index source.
0.9.5: 2010-07-20
- Supported groonga 0.7.4.
Imporoved Groonga::Table#select:
- Supported weight match:
Here is an example to match source column or title column and title column has high score:
table.select do |record| (record.title * 10 | record.source) =~ "query" end
- Supported and representation for and conditions:
Here are examples that represents the same condition:
table.select do |record| conditions = [] conditions << record.title =~ "query" conditions << record.updated_at > Time.parse("2010-07-29T21:14:29+09:00") conditions end table.select do |record| (record.title =~ "query") & (record.updated_at > Time.parse("2010-07-29T21:14:29+09:00")) end
Provided groonga runtime version: Groonga::VERSION
Added Groonga::Table#support_sub_records?
Supported pagination: Groonga::Table#paginate, Groonga::Pagination
0.9.4: 2010-04-22
- Fixed release miss.
0.9.3: 2010-04-22
- Fixed release miss.
0.9.2: 2010-04-22
- Supported groonga 0.1.9.
- Many.
0.9.1: 2010-02-09
- Supported groonga 0.1.6
0.9.0: 2010-02-09
- Supported groonga 0.1.5
- Added API
- Groonga::Object#context
- Groonga::Record#n_sub_records
- Groonga::Context#send
- Groonga::Context#receive
- Groonga::PatriciaTrie#prefix_search [Tasuku SUENAGA]
- Groonga::Object#path [Ryo Onodera]
- Groonga::Object#lock [Tasuku SUENAGA]
- Groonga::Object#unlock [Tasuku SUENAGA]
- Groonga::Object#locked? [Tasuku SUENAGA]
- Groonga::Object#temporary?
- Groonga::Object#persistent?
- Groonga::ObjectClosed
- Groonga::Context.[]
- Groonga::Table#column_value
- Groonga::Table#set_column_value
- Changed API
- Groonga::Table#select, Groonga::Column#select
- They also accept Groonga::Expression
- Added :syntax option that specifies grn expression syntax
- Groonga::Table#open_cursor
- Added :offset option that specifies offset.
- Added :limit option that specifies max number of records.
- Changed Groonga::Expression.parse options:
- (nil (default) -> :column) -> (nil (default) -> :query)
- :column -> removed
- :table -> :query
- :table_query -> :query
- :expression -> :script
- :language -> :script
- Groonga::Table#define_column, Groonga::Table#define_index_column
- Defined column becomes persistent table by default
- Groonga::Table#[] -> Groonga::Table#value
- Groonga::Table#[]= -> Groonga::Table#set_value
- Groonga::Table#find -> Groonga::Table#[]
- Groonga::Table#find -> obsolete
- Groonga::Table#[]= -> removed
- Groonga::TableKeySupport#[]= is alias of Groonga::TableKeySupport#add
- Changed exception class to Groonga::NoSuchColumn from Groonga::InvalidArgument when Groonga::Record accesses nonexistent a column.
- Bug fixes
- Fixed a bug that context isn't passed to schema [dara]
- Fixed a bug that Groonga::PatriciaTrie#tag_keys doesn't return that last text. [Ryo Onodera]
- Added --with-debug option to extconf.rb for debug build.
- Fixed a bug that Ruby 1.9.1 may fail extconf.rb.
Thanks
- dara
- Ryo Onodera
- Tasuku SUENAGA
0.0.7: 2009-10-02
- Supported groonga 0.1.4
- Added API
- Groonga::PatriciaTrie#scan
- Groonga::PatriciaTrie#tag_keys
- Groonga::Expression#snippet
- Groonga::Object#append
- Groonga::Object#prepend
0.0.6: 2009-07-31
- Supported groonga 0.1.1.
- Fixed documents [id:mat_aki]
- Supported groonga expression for searching.
- Added API
- Groonga::Table#union!
- Groonga::Table#intersect!
- Groonga::Table#differene!
- Groonga::Table#merge!
- Provided tar.gz [id:m_seki]
- Fixed memory leaks
0.0.3: 2009-07-18
- Added Groonga::TableKeySupport#has_key? [#26145] [Tasuku SUENAGA]
- Groonga::Record#[] raises an exception for nonexistent column name. [#26146] [Tasuku SUENAGA]
- Supported 32bit environment [niku]
- Added a test for N-gram index search [dara]
- Added APIs
- Groonga::Record#incemrent!
- Groonga::Record#decemrent!
- Groonga::Record#lock
- Groonga::Table#lock
- Groonga::Schema: A DSL for schema definition
- Groonga::Expression
0.0.2: 2009-06-04
- Supported groonga 0.0.8 [mori]
- Improved preformance: cache key, value, domain and range
- Improved API
- Added documents
- Supported Ruby 1.9
- Bug fixes:
- Fixed install process [Tasuku SUENAGA]
- Fixed memory leaks
0.0.1: 2009-04-30
- Initial release!