rocksdb-ruby 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a3516747ab80e3ed39c598b6c282790b75522da4
4
- data.tar.gz: 721735897c276efa3a67ad636139bec399987b2f
3
+ metadata.gz: 46f12f1cc2ae83812abc436dc6fdb65bdf6da63e
4
+ data.tar.gz: f992fc491b591ed135b0c058532d887516c30f87
5
5
  SHA512:
6
- metadata.gz: e0a62fffed025eaa9fe180029420bfb6ef5c77e74d735638c47875c147ee4c770e7ca73469a5d294b0ba2d1ac86f7f30b30c668383f57205b84b37955b187793
7
- data.tar.gz: 59924a67d6ae19f360fa038a57f3f69124b0f0f2bf84b2f710d7be3425154ed74c5d04d700ed6d875f35e504e041f7dd9ea98acdabd64cdb68d0171df5cce919
6
+ metadata.gz: c86f72482d414946e8811c3132f3619b6746bd6a91e3233a7e81aab6939fd6b21707db83fcdf845494035ace83b917539c261594120ef9e399f5b367981bdad5
7
+ data.tar.gz: 800ed46a8fb0fda34ccb8517abf8d200eb8d8b74d3658550d371fbf2f82638da03c564cdc9278cb9c909a013e16b97026152e939e48c44e073544aeb4c143a42
@@ -0,0 +1,22 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.4.0
4
+ script: bundle exec rake spec || ( cat ext/rocksdb/mkmf.log && /bin/false )
5
+
6
+ before_install:
7
+ - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
8
+ - sudo apt-get update -qq
9
+ - sudo apt-get install gcc-6 g++-6 libsnappy-dev zlib1g-dev libbz2-dev -qq
10
+ - export CXX="g++-6" CC="gcc-6"
11
+ - sudo ln -s /usr/bin/gcc-6 /usr/local/bin/gcc
12
+ - sudo ln -s /usr/bin/g++-6 /usr/local/bin/g++
13
+ - gem install bundler
14
+
15
+ install:
16
+ - git clone https://github.com/facebook/rocksdb.git /tmp/rocksdb
17
+ - pushd /tmp/rocksdb
18
+ - make clean
19
+ - make shared_lib
20
+ - popd
21
+ - export ROCKSDB_RUBY_BUILD_PARAMS="--with-rocksdb-dir=/tmp/rocksdb --with-rocksdb-lib=/tmp/rocksdb"
22
+ - bundle install
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 Isamu Arimoto
1
+ Copyright (c) 2013-2016 Isamu Arimoto
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,3 +1,6 @@
1
+ [![Build Status](https://travis-ci.org/isamu/rocksdb-ruby.svg)](https://travis-ci.org/isamu/rocksdb-ruby)
2
+ [![Gem Version](https://badge.fury.io/rb/rocksdb-ruby.svg)](https://badge.fury.io/rb/rocksdb-ruby)
3
+
1
4
  # RocksDB
2
5
 
3
6
  The rocksdb is a persistent in-process key-value store.
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require "rspec/core/rake_task"
5
5
  RSpec::Core::RakeTask.new('spec')
6
6
  task :build do
7
7
  Dir.chdir('ext/rocksdb/') do
8
- output = `ruby extconf.rb`
8
+ output = `ruby extconf.rb #{ENV['ROCKSDB_RUBY_BUILD_PARAMS']}`
9
9
  raise output unless $? == 0
10
10
  output = `make`
11
11
  raise output unless $? == 0
@@ -62,7 +62,6 @@ extern "C" {
62
62
 
63
63
  void set_opt(rocksdb::Options* options, VALUE *v_options){
64
64
  set_opt_unit_val(&options->max_bytes_for_level_base, (char *) "max_bytes_for_level_base", v_options);
65
- set_opt_int_val(&options->max_grandparent_overlap_factor, (char *) "max_grandparent_overlap_factor", v_options);
66
65
  set_opt_unit_val(&options->delete_obsolete_files_period_micros, (char *) "delete_obsolete_files_period_micros", v_options);
67
66
  }
68
67
 
@@ -268,4 +267,26 @@ extern "C" {
268
267
  VALUE rocksdb_db_debug(VALUE self){
269
268
  return Qnil;
270
269
  }
270
+
271
+ VALUE rocksdb_db_compact(int argc, VALUE* argv, VALUE self) {
272
+ VALUE v_from, v_to;
273
+ rocksdb::Slice from, to;
274
+
275
+ rb_scan_args(argc, argv, "02", &v_from, &v_to);
276
+
277
+ if(!NIL_P(v_from)) {
278
+ Check_Type(v_from, T_STRING);
279
+ from = rocksdb::Slice((char*)RSTRING_PTR(v_from), RSTRING_LEN(v_from));
280
+ }
281
+
282
+ if(!NIL_P(v_to)) {
283
+ Check_Type(v_to, T_STRING);
284
+ to = rocksdb::Slice((char*)RSTRING_PTR(v_to), RSTRING_LEN(v_to));
285
+ }
286
+
287
+ rocksdb_pointer* db_pointer;
288
+ Data_Get_Struct(self, rocksdb_pointer, db_pointer);
289
+ rocksdb::Status status = db_pointer->db->CompactRange(rocksdb::CompactRangeOptions(), &from, &to);
290
+ return status.ok() ? Qtrue : Qfalse;
291
+ }
271
292
  }
@@ -18,6 +18,7 @@ extern "C" {
18
18
  VALUE rocksdb_db_each_index(VALUE self);
19
19
  VALUE rocksdb_db_each_with_index(VALUE self);
20
20
  VALUE rocksdb_db_reverse_each(VALUE self);
21
+ VALUE rocksdb_db_compact(int argc, VALUE* argv, VALUE self);
21
22
  void db_free(rocksdb_pointer* db_pointer);
22
23
  void set_opt(rocksdb::Options* opt, VALUE *v_options);
23
24
  void set_opt_unit_val(uint64_t* opt, char* name, VALUE *v_options);
@@ -30,6 +30,7 @@ extern "C" {
30
30
  rb_define_method(cRocksdb_db, "close", (METHOD)rocksdb_db_close, 0);
31
31
  rb_define_method(cRocksdb_db, "debug", (METHOD)rocksdb_db_debug, 0);
32
32
  rb_define_method(cRocksdb_db, "new_iterator", (METHOD)rocksdb_db_new_iterator, 0);
33
+ rb_define_method(cRocksdb_db, "compact", (METHOD)rocksdb_db_compact, -1);
33
34
 
34
35
  rb_define_method(cRocksdb_db, "iterator", (METHOD)rocksdb_db_each, 0);
35
36
  rb_define_method(cRocksdb_db, "each_index", (METHOD)rocksdb_db_each_index, 0);
@@ -1,5 +1,5 @@
1
1
  module Rocksdb
2
2
  module Ruby
3
- VERSION = "0.1.4"
3
+ VERSION = "0.1.5"
4
4
  end
5
5
  end
@@ -0,0 +1,40 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'spec_helper'
3
+ require "rocksdb"
4
+
5
+ describe RocksDB do
6
+ before do
7
+ @rocksdb = RocksDB::DB.new "/tmp/file"
8
+ end
9
+
10
+ it 'should get null contained data' do
11
+ @aaa = "aa\0aa"
12
+
13
+ @rocksdb.put("test:null", @aaa)
14
+ expect(@rocksdb.get("test:null")).to eq "aa\0aa"
15
+ end
16
+
17
+ it 'should get from null contained key' do
18
+ @key = "test:aa\0aa"
19
+ @rocksdb.put(@key, "aaa")
20
+ expect(@rocksdb.get(@key)).to eq "aaa"
21
+
22
+ @key = "test:aa"
23
+ expect(@rocksdb.get(@key)).to eq nil
24
+
25
+ end
26
+
27
+ it 'should get multi data' do
28
+ @rocksdb.put("test:nullmulti1\0a", "a\01")
29
+ @rocksdb.put("test:nullmulti2\0a", "b\02")
30
+ @rocksdb.put("test:nullmulti3\0a", "c\03")
31
+
32
+ expect(@rocksdb.multi_get(["test:nullmulti1\0a", "test:nullmulti2\0a", "test:nullmulti3\0a"])).to eq ["a\01", "b\02", "c\03"]
33
+ expect(@rocksdb.multi_get(["test:nullmulti1", "test:nullmulti2", "test:nullmulti3"])).to eq ["", "", ""]
34
+ end
35
+
36
+ after do
37
+ @rocksdb.close
38
+ end
39
+
40
+ end
@@ -115,6 +115,24 @@ describe RocksDB do
115
115
  expect(@rocksdb["test:hash"]).to eq "a"
116
116
 
117
117
  end
118
+
119
+ context 'compact' do
120
+ it 'works with no parameters' do
121
+ expect(@rocksdb.compact).to eq(true)
122
+ end
123
+
124
+ it 'works with one parameter' do
125
+ expect(@rocksdb.compact('a')).to eq(true)
126
+ end
127
+
128
+ it 'works with two parameters' do
129
+ expect(@rocksdb.compact('a', 'x')).to eq(true)
130
+ end
131
+
132
+ it 'works with nil as first parameter' do
133
+ expect(@rocksdb.compact(nil, 'x')).to eq(true)
134
+ end
135
+ end
118
136
 
119
137
  after do
120
138
  @rocksdb.close
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocksdb-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Isamu Arimoto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-08 00:00:00.000000000 Z
11
+ date: 2018-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -61,6 +61,7 @@ extensions:
61
61
  extra_rdoc_files: []
62
62
  files:
63
63
  - ".gitignore"
64
+ - ".travis.yml"
64
65
  - Gemfile
65
66
  - LICENSE.txt
66
67
  - README.md
@@ -80,6 +81,7 @@ files:
80
81
  - lib/rocksdb/ruby.rb
81
82
  - lib/rocksdb/ruby/version.rb
82
83
  - rocksdb-ruby.gemspec
84
+ - spec/db_null_spec.rb
83
85
  - spec/db_options_spec.rb
84
86
  - spec/db_readonly_spec.rb
85
87
  - spec/db_spec.rb
@@ -111,6 +113,7 @@ signing_key:
111
113
  specification_version: 4
112
114
  summary: A simple RocksDB library for Ruby
113
115
  test_files:
116
+ - spec/db_null_spec.rb
114
117
  - spec/db_options_spec.rb
115
118
  - spec/db_readonly_spec.rb
116
119
  - spec/db_spec.rb