cassandra-cql 1.0.4 → 1.1.0
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.
- data/.travis.yml +14 -0
- data/README.md +81 -0
- data/cassandra-cql.gemspec +7 -2
- data/lib/cassandra-cql.rb +1 -1
- data/lib/cassandra-cql/1.1.rb +7 -0
- data/lib/cassandra-cql/1.1/result.rb +6 -0
- data/lib/cassandra-cql/1.1/statement.rb +6 -0
- data/lib/cassandra-cql/database.rb +2 -0
- data/lib/cassandra-cql/result.rb +7 -5
- data/lib/cassandra-cql/row.rb +21 -4
- data/lib/cassandra-cql/statement.rb +1 -1
- data/lib/cassandra-cql/types/abstract_type.rb +15 -0
- data/lib/cassandra-cql/types/ascii_type.rb +3 -1
- data/lib/cassandra-cql/types/boolean_type.rb +5 -0
- data/lib/cassandra-cql/types/date_type.rb +2 -0
- data/lib/cassandra-cql/types/decimal_type.rb +2 -0
- data/lib/cassandra-cql/types/double_type.rb +5 -0
- data/lib/cassandra-cql/types/float_type.rb +5 -0
- data/lib/cassandra-cql/types/utf8_type.rb +2 -0
- data/lib/cassandra-cql/types/uuid_type.rb +2 -0
- data/lib/cassandra-cql/version.rb +1 -1
- data/spec/column_family_spec.rb +2 -2
- data/spec/misc_spec.rb +68 -0
- data/spec/result_spec.rb +6 -1
- data/spec/spec_helper.rb +8 -2
- data/spec/uuid_spec.rb +3 -1
- data/spec/validation_spec.rb +71 -21
- data/vendor/1.1/gen-rb/cassandra.rb +2511 -0
- data/vendor/1.1/gen-rb/cassandra_constants.rb +13 -0
- data/vendor/1.1/gen-rb/cassandra_types.rb +928 -0
- metadata +67 -21
- data/README.rdoc +0 -71
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cassandra-cql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-09-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,21 +21,31 @@ dependencies:
|
|
21
21
|
version: 1.0.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.0.0
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
|
-
name:
|
27
|
-
requirement:
|
31
|
+
name: simplecov
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
31
36
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0
|
37
|
+
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: rspec
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: 2.6.0
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.6.0
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: rake
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: 0.9.2
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.9.2
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: yard
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: 0.7.2
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.7.2
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: simple_uuid
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: 0.2.0
|
77
102
|
type: :runtime
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.2.0
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: thrift_client
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,18 +117,24 @@ dependencies:
|
|
87
117
|
version: 0.7.1
|
88
118
|
type: :runtime
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 0.7.1
|
91
126
|
description: CQL Interface to Cassandra
|
92
127
|
email:
|
93
|
-
- kelley@
|
128
|
+
- kelley.reynolds@rubyscale.com
|
94
129
|
executables: []
|
95
130
|
extensions: []
|
96
131
|
extra_rdoc_files: []
|
97
132
|
files:
|
98
133
|
- .gitignore
|
134
|
+
- .travis.yml
|
99
135
|
- Gemfile
|
100
136
|
- LICENSE.txt
|
101
|
-
- README.
|
137
|
+
- README.md
|
102
138
|
- Rakefile
|
103
139
|
- cassandra-cql.gemspec
|
104
140
|
- lib/cassandra-cql.rb
|
@@ -108,6 +144,9 @@ files:
|
|
108
144
|
- lib/cassandra-cql/1.0.rb
|
109
145
|
- lib/cassandra-cql/1.0/result.rb
|
110
146
|
- lib/cassandra-cql/1.0/statement.rb
|
147
|
+
- lib/cassandra-cql/1.1.rb
|
148
|
+
- lib/cassandra-cql/1.1/result.rb
|
149
|
+
- lib/cassandra-cql/1.1/statement.rb
|
111
150
|
- lib/cassandra-cql/database.rb
|
112
151
|
- lib/cassandra-cql/result.rb
|
113
152
|
- lib/cassandra-cql/row.rb
|
@@ -139,6 +178,7 @@ files:
|
|
139
178
|
- spec/conf/1.0/log4j-server.properties
|
140
179
|
- spec/conf/1.0/schema.txt
|
141
180
|
- spec/database_spec.rb
|
181
|
+
- spec/misc_spec.rb
|
142
182
|
- spec/result_spec.rb
|
143
183
|
- spec/row_spec.rb
|
144
184
|
- spec/rowkey_spec.rb
|
@@ -154,6 +194,9 @@ files:
|
|
154
194
|
- vendor/1.0/gen-rb/cassandra.rb
|
155
195
|
- vendor/1.0/gen-rb/cassandra_constants.rb
|
156
196
|
- vendor/1.0/gen-rb/cassandra_types.rb
|
197
|
+
- vendor/1.1/gen-rb/cassandra.rb
|
198
|
+
- vendor/1.1/gen-rb/cassandra_constants.rb
|
199
|
+
- vendor/1.1/gen-rb/cassandra_types.rb
|
157
200
|
homepage: http://code.google.com/a/apache-extras.org/p/cassandra-ruby/
|
158
201
|
licenses: []
|
159
202
|
post_install_message:
|
@@ -166,6 +209,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
166
209
|
- - ! '>='
|
167
210
|
- !ruby/object:Gem::Version
|
168
211
|
version: '0'
|
212
|
+
segments:
|
213
|
+
- 0
|
214
|
+
hash: -2295217361893387719
|
169
215
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
216
|
none: false
|
171
217
|
requirements:
|
@@ -174,7 +220,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
174
220
|
version: 1.3.6
|
175
221
|
requirements: []
|
176
222
|
rubyforge_project: cassandra-cql
|
177
|
-
rubygems_version: 1.8.
|
223
|
+
rubygems_version: 1.8.23
|
178
224
|
signing_key:
|
179
225
|
specification_version: 3
|
180
226
|
summary: CQL Interface to Cassandra
|
data/README.rdoc
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
=Cassandra
|
2
|
-
The Apache Cassandra Project (http://cassandra.apache.org) develops a highly scalable second-generation distributed database, bringing together Dynamo's fully distributed design and Bigtable's ColumnFamily-based data model.
|
3
|
-
|
4
|
-
=CQL
|
5
|
-
Cassandra originally went with a Thrift RPC-based API as a way to provide a common denominator that more idiomatic clients could build upon independently.
|
6
|
-
However, this worked poorly in practice: raw Thrift is too low-level to use productively, and keeping pace with new API methods to support (for example) indexes in 0.7 or distributed counters in 0.8 is too much for many maintainers.
|
7
|
-
|
8
|
-
CQL, the Cassandra Query Language, addresses this by pushing all implementation details to the server; all the client has to know for any operation is how to interpret "resultset" objects.
|
9
|
-
So adding a feature like counters just requires teaching the CQL parser to understand "column + N" notation; no client-side changes are necessary.
|
10
|
-
|
11
|
-
(CQL Specification: https://github.com/apache/cassandra/blob/trunk/doc/cql/CQL.textile)
|
12
|
-
|
13
|
-
=Quick Start
|
14
|
-
|
15
|
-
==Establishing a connection
|
16
|
-
|
17
|
-
# Defaults to the system keyspace
|
18
|
-
db = CassandraCQL::Database.new('127.0.0.1:9160')
|
19
|
-
|
20
|
-
# Specifying a keyspace
|
21
|
-
db = CassandraCQL::Database.new('127.0.0.1:9160', {:keyspace => 'keyspace1'})
|
22
|
-
|
23
|
-
# Specifying more than one seed node
|
24
|
-
db = CassandraCQL::Database.new(['127.0.0.1:9160','127.0.0.2:9160'])
|
25
|
-
|
26
|
-
==Creating a Keyspace
|
27
|
-
|
28
|
-
# Creating a simple keyspace with replication factor 1
|
29
|
-
db.execute("CREATE KEYSPACE keyspace1 WITH strategy_class='org.apache.cassandra.locator.SimpleStrategy' AND strategy_options:replication_factor=1")
|
30
|
-
db.execute("USE keyspace1")
|
31
|
-
|
32
|
-
==Creating a Column Family
|
33
|
-
|
34
|
-
# Creating a column family with a single validated column
|
35
|
-
db.execute("CREATE COLUMNFAMILY users (id varchar PRIMARY KEY, email varchar)")
|
36
|
-
|
37
|
-
# Create an index on the name
|
38
|
-
db.execute("CREATE INDEX users_email_idx ON users (email)")
|
39
|
-
|
40
|
-
==Inserting into a Column Family
|
41
|
-
|
42
|
-
# Insert without bound variables
|
43
|
-
db.execute("INSERT INTO users (id, email) VALUES ('kreynolds', 'kelley@insidesystems.net')")
|
44
|
-
|
45
|
-
# Insert with bound variables
|
46
|
-
db.execute("INSERT INTO users (id, email) VALUES (?, ?)", 'kway', 'kevin@insidesystems.net')
|
47
|
-
|
48
|
-
==Updating a Column Family
|
49
|
-
|
50
|
-
# Update
|
51
|
-
db.execute("UPDATE users SET email=? WHERE id=?", 'kreynolds@insidesystems.net', 'kreynolds')
|
52
|
-
|
53
|
-
==Selecting from a Column Family
|
54
|
-
|
55
|
-
# Select all
|
56
|
-
db.execute("SELECT * FROM users").fetch { |row| puts row.to_hash.inspect }
|
57
|
-
{"id"=>"kway", "email"=>"kevin@insidesystems.net"}
|
58
|
-
{"id"=>"kreynolds", "email"=>"kreynolds@insidesystems.net"}
|
59
|
-
|
60
|
-
# Select just one user by id
|
61
|
-
db.execute("SELECT * FROM users WHERE id=?", 'kreynolds').fetch { |row| puts row.to_hash.inspect }
|
62
|
-
{"id"=>"kreynolds", "email"=>"kreynolds@insidesystems.net"}
|
63
|
-
|
64
|
-
# Select just one user by indexed column
|
65
|
-
db.execute("SELECT * FROM users WHERE email=?", 'kreynolds@insidesystems.net').fetch { |row| puts row.to_hash.inspect }
|
66
|
-
{"id"=>"kreynolds", "email"=>"kreynolds@insidesystems.net"}
|
67
|
-
|
68
|
-
==Deleting from a Column Family
|
69
|
-
|
70
|
-
# Delete the swarthy bastard Kevin
|
71
|
-
db.execute("DELETE FROM users WHERE id=?", 'kway')
|