query_builder 0.0.1
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 +7 -0
- data/.coveralls.yml +2 -0
- data/.gitignore +9 -0
- data/.metrics +9 -0
- data/.rspec +2 -0
- data/.rubocop.yml +2 -0
- data/.travis.yml +25 -0
- data/.yardopts +3 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +7 -0
- data/Guardfile +14 -0
- data/LICENSE +21 -0
- data/README.md +95 -0
- data/Rakefile +34 -0
- data/config/metrics/STYLEGUIDE +230 -0
- data/config/metrics/cane.yml +5 -0
- data/config/metrics/churn.yml +6 -0
- data/config/metrics/flay.yml +2 -0
- data/config/metrics/metric_fu.yml +14 -0
- data/config/metrics/reek.yml +1 -0
- data/config/metrics/roodi.yml +24 -0
- data/config/metrics/rubocop.yml +80 -0
- data/config/metrics/saikuro.yml +3 -0
- data/config/metrics/simplecov.yml +6 -0
- data/config/metrics/yardstick.yml +37 -0
- data/lib/query_builder.rb +9 -0
- data/lib/query_builder/core.rb +19 -0
- data/lib/query_builder/core/attribute.rb +54 -0
- data/lib/query_builder/core/attribute_error.rb +25 -0
- data/lib/query_builder/core/base.rb +102 -0
- data/lib/query_builder/core/clause.rb +46 -0
- data/lib/query_builder/core/statement.rb +55 -0
- data/lib/query_builder/cql.rb +80 -0
- data/lib/query_builder/cql/contexts.rb +21 -0
- data/lib/query_builder/cql/contexts/aggregate.rb +42 -0
- data/lib/query_builder/cql/contexts/column.rb +59 -0
- data/lib/query_builder/cql/contexts/field.rb +48 -0
- data/lib/query_builder/cql/contexts/function.rb +46 -0
- data/lib/query_builder/cql/contexts/index.rb +44 -0
- data/lib/query_builder/cql/contexts/keyspace.rb +107 -0
- data/lib/query_builder/cql/contexts/permission.rb +59 -0
- data/lib/query_builder/cql/contexts/role.rb +51 -0
- data/lib/query_builder/cql/contexts/table.rb +140 -0
- data/lib/query_builder/cql/contexts/trigger.rb +42 -0
- data/lib/query_builder/cql/contexts/type.rb +52 -0
- data/lib/query_builder/cql/contexts/user.rb +53 -0
- data/lib/query_builder/cql/modifiers.rb +61 -0
- data/lib/query_builder/cql/modifiers/add_column.rb +50 -0
- data/lib/query_builder/cql/modifiers/add_field.rb +49 -0
- data/lib/query_builder/cql/modifiers/allow_filtering.rb +45 -0
- data/lib/query_builder/cql/modifiers/alter.rb +44 -0
- data/lib/query_builder/cql/modifiers/called_on_null.rb +47 -0
- data/lib/query_builder/cql/modifiers/clustering_order.rb +51 -0
- data/lib/query_builder/cql/modifiers/column.rb +59 -0
- data/lib/query_builder/cql/modifiers/compact_storage.rb +46 -0
- data/lib/query_builder/cql/modifiers/count.rb +47 -0
- data/lib/query_builder/cql/modifiers/counter.rb +45 -0
- data/lib/query_builder/cql/modifiers/delete.rb +48 -0
- data/lib/query_builder/cql/modifiers/distinct.rb +45 -0
- data/lib/query_builder/cql/modifiers/finalfunc.rb +47 -0
- data/lib/query_builder/cql/modifiers/if.rb +44 -0
- data/lib/query_builder/cql/modifiers/if_exists.rb +46 -0
- data/lib/query_builder/cql/modifiers/if_not_exists.rb +46 -0
- data/lib/query_builder/cql/modifiers/initcond.rb +49 -0
- data/lib/query_builder/cql/modifiers/insert.rb +68 -0
- data/lib/query_builder/cql/modifiers/limit.rb +49 -0
- data/lib/query_builder/cql/modifiers/norecursive.rb +45 -0
- data/lib/query_builder/cql/modifiers/or_replace.rb +44 -0
- data/lib/query_builder/cql/modifiers/order.rb +50 -0
- data/lib/query_builder/cql/modifiers/password.rb +49 -0
- data/lib/query_builder/cql/modifiers/primary_key.rb +51 -0
- data/lib/query_builder/cql/modifiers/returns.rb +49 -0
- data/lib/query_builder/cql/modifiers/selected.rb +54 -0
- data/lib/query_builder/cql/modifiers/sfunc.rb +47 -0
- data/lib/query_builder/cql/modifiers/statement.rb +47 -0
- data/lib/query_builder/cql/modifiers/stype.rb +47 -0
- data/lib/query_builder/cql/modifiers/superuser.rb +54 -0
- data/lib/query_builder/cql/modifiers/timestamp.rb +50 -0
- data/lib/query_builder/cql/modifiers/unlogged.rb +45 -0
- data/lib/query_builder/cql/modifiers/update.rb +44 -0
- data/lib/query_builder/cql/modifiers/using.rb +48 -0
- data/lib/query_builder/cql/modifiers/using_options.rb +51 -0
- data/lib/query_builder/cql/modifiers/where.rb +44 -0
- data/lib/query_builder/cql/modifiers/where_clustered.rb +51 -0
- data/lib/query_builder/cql/modifiers/with.rb +44 -0
- data/lib/query_builder/cql/modifiers/with_options.rb +42 -0
- data/lib/query_builder/cql/operators.rb +29 -0
- data/lib/query_builder/cql/operators/cql.rb +23 -0
- data/lib/query_builder/cql/operators/cql_composite.rb +20 -0
- data/lib/query_builder/cql/operators/cql_dec.rb +21 -0
- data/lib/query_builder/cql/operators/cql_element.rb +23 -0
- data/lib/query_builder/cql/operators/cql_entries.rb +20 -0
- data/lib/query_builder/cql/operators/cql_frozen.rb +20 -0
- data/lib/query_builder/cql/operators/cql_full.rb +20 -0
- data/lib/query_builder/cql/operators/cql_gt.rb +23 -0
- data/lib/query_builder/cql/operators/cql_gte.rb +23 -0
- data/lib/query_builder/cql/operators/cql_in.rb +23 -0
- data/lib/query_builder/cql/operators/cql_inc.rb +21 -0
- data/lib/query_builder/cql/operators/cql_keys.rb +20 -0
- data/lib/query_builder/cql/operators/cql_list.rb +21 -0
- data/lib/query_builder/cql/operators/cql_literal.rb +84 -0
- data/lib/query_builder/cql/operators/cql_lt.rb +23 -0
- data/lib/query_builder/cql/operators/cql_lte.rb +23 -0
- data/lib/query_builder/cql/operators/cql_map.rb +25 -0
- data/lib/query_builder/cql/operators/cql_set.rb +21 -0
- data/lib/query_builder/cql/operators/cql_token.rb +21 -0
- data/lib/query_builder/cql/operators/cql_token_value.rb +23 -0
- data/lib/query_builder/cql/operators/cql_ttl.rb +20 -0
- data/lib/query_builder/cql/operators/cql_tuple.rb +21 -0
- data/lib/query_builder/cql/operators/cql_tuple_value.rb +23 -0
- data/lib/query_builder/cql/operators/cql_writetime.rb +20 -0
- data/lib/query_builder/cql/statements.rb +25 -0
- data/lib/query_builder/cql/statements/alter_column.rb +27 -0
- data/lib/query_builder/cql/statements/alter_field.rb +27 -0
- data/lib/query_builder/cql/statements/alter_keyspace.rb +25 -0
- data/lib/query_builder/cql/statements/alter_role.rb +26 -0
- data/lib/query_builder/cql/statements/alter_table.rb +25 -0
- data/lib/query_builder/cql/statements/alter_user.rb +26 -0
- data/lib/query_builder/cql/statements/batch.rb +31 -0
- data/lib/query_builder/cql/statements/create_aggregate.rb +36 -0
- data/lib/query_builder/cql/statements/create_column.rb +35 -0
- data/lib/query_builder/cql/statements/create_field.rb +25 -0
- data/lib/query_builder/cql/statements/create_function.rb +38 -0
- data/lib/query_builder/cql/statements/create_index.rb +41 -0
- data/lib/query_builder/cql/statements/create_keyspace.rb +26 -0
- data/lib/query_builder/cql/statements/create_role.rb +26 -0
- data/lib/query_builder/cql/statements/create_table.rb +30 -0
- data/lib/query_builder/cql/statements/create_trigger.rb +29 -0
- data/lib/query_builder/cql/statements/create_type.rb +26 -0
- data/lib/query_builder/cql/statements/create_user.rb +27 -0
- data/lib/query_builder/cql/statements/delete.rb +32 -0
- data/lib/query_builder/cql/statements/drop_aggregate.rb +25 -0
- data/lib/query_builder/cql/statements/drop_column.rb +23 -0
- data/lib/query_builder/cql/statements/drop_function.rb +25 -0
- data/lib/query_builder/cql/statements/drop_index.rb +25 -0
- data/lib/query_builder/cql/statements/drop_keyspace.rb +25 -0
- data/lib/query_builder/cql/statements/drop_role.rb +25 -0
- data/lib/query_builder/cql/statements/drop_table.rb +25 -0
- data/lib/query_builder/cql/statements/drop_trigger.rb +25 -0
- data/lib/query_builder/cql/statements/drop_type.rb +25 -0
- data/lib/query_builder/cql/statements/drop_user.rb +25 -0
- data/lib/query_builder/cql/statements/grant.rb +31 -0
- data/lib/query_builder/cql/statements/insert.rb +27 -0
- data/lib/query_builder/cql/statements/list_permissions.rb +35 -0
- data/lib/query_builder/cql/statements/list_roles.rb +23 -0
- data/lib/query_builder/cql/statements/list_users.rb +23 -0
- data/lib/query_builder/cql/statements/rename_column.rb +27 -0
- data/lib/query_builder/cql/statements/rename_field.rb +25 -0
- data/lib/query_builder/cql/statements/revoke.rb +31 -0
- data/lib/query_builder/cql/statements/select.rb +35 -0
- data/lib/query_builder/cql/statements/truncate.rb +23 -0
- data/lib/query_builder/cql/statements/update.rb +31 -0
- data/lib/query_builder/cql/statements/use.rb +23 -0
- data/lib/query_builder/rspec.rb +25 -0
- data/lib/query_builder/version.rb +9 -0
- data/query_builder.gemspec +31 -0
- data/spec/integration/alter_keyspace_spec.rb +17 -0
- data/spec/integration/alter_role_spec.rb +28 -0
- data/spec/integration/alter_table_add_spec.rb +21 -0
- data/spec/integration/alter_table_alter_spec.rb +15 -0
- data/spec/integration/alter_table_drop_spec.rb +15 -0
- data/spec/integration/alter_table_rename_spec.rb +15 -0
- data/spec/integration/alter_table_with_spec.rb +17 -0
- data/spec/integration/alter_type_add_spec.rb +15 -0
- data/spec/integration/alter_type_alter_spec.rb +15 -0
- data/spec/integration/alter_type_rename_spec.rb +15 -0
- data/spec/integration/alter_user_spec.rb +28 -0
- data/spec/integration/batch_spec.rb +32 -0
- data/spec/integration/create_aggregate_spec.rb +31 -0
- data/spec/integration/create_function_spec.rb +29 -0
- data/spec/integration/create_index_spec.rb +35 -0
- data/spec/integration/create_keyspace_spec.rb +24 -0
- data/spec/integration/create_role_spec.rb +26 -0
- data/spec/integration/create_table_spec.rb +34 -0
- data/spec/integration/create_trigger_spec.rb +21 -0
- data/spec/integration/create_type_spec.rb +20 -0
- data/spec/integration/create_user_spec.rb +23 -0
- data/spec/integration/delete_spec.rb +28 -0
- data/spec/integration/drop_aggregate_spec.rb +21 -0
- data/spec/integration/drop_function_spec.rb +21 -0
- data/spec/integration/drop_index_spec.rb +21 -0
- data/spec/integration/drop_keyspace_spec.rb +18 -0
- data/spec/integration/drop_role_spec.rb +18 -0
- data/spec/integration/drop_table_spec.rb +18 -0
- data/spec/integration/drop_trigger_spec.rb +21 -0
- data/spec/integration/drop_type_spec.rb +18 -0
- data/spec/integration/drop_user_spec.rb +18 -0
- data/spec/integration/grant_spec.rb +29 -0
- data/spec/integration/insert_spec.rb +22 -0
- data/spec/integration/list_permissions_spec.rb +34 -0
- data/spec/integration/list_roles_spec.rb +12 -0
- data/spec/integration/list_users_spec.rb +12 -0
- data/spec/integration/revoke_spec.rb +29 -0
- data/spec/integration/select_spec.rb +46 -0
- data/spec/integration/truncate_spec.rb +12 -0
- data/spec/integration/update_spec.rb +23 -0
- data/spec/integration/use_spec.rb +12 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/unit/core/attribute_error_spec.rb +38 -0
- data/spec/unit/core/attribute_spec.rb +70 -0
- data/spec/unit/core/base_spec.rb +110 -0
- data/spec/unit/core/clause_spec.rb +101 -0
- data/spec/unit/core/statement_spec.rb +88 -0
- data/spec/unit/cql/operators/cql_composite_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_dec_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_element_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_entries_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_frozen_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_full_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_gt_spec.rb +19 -0
- data/spec/unit/cql/operators/cql_gte_spec.rb +19 -0
- data/spec/unit/cql/operators/cql_in_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_inc_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_keys_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_list_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_literal_spec.rb +83 -0
- data/spec/unit/cql/operators/cql_lt_spec.rb +19 -0
- data/spec/unit/cql/operators/cql_lte_spec.rb +19 -0
- data/spec/unit/cql/operators/cql_map_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_set_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_token_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_token_value_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_ttl_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_tuple_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_tuple_value_spec.rb +12 -0
- data/spec/unit/cql/operators/cql_writetime_spec.rb +12 -0
- data/spec/unit/cql/operators_spec.rb +66 -0
- metadata +405 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module QueryBuilder::CQL
|
|
4
|
+
|
|
5
|
+
module Statements
|
|
6
|
+
|
|
7
|
+
# Describes the 'TRUNCATE' CQL3 statement
|
|
8
|
+
#
|
|
9
|
+
class Truncate < Base
|
|
10
|
+
|
|
11
|
+
# Builds the statement
|
|
12
|
+
#
|
|
13
|
+
# @return [String]
|
|
14
|
+
#
|
|
15
|
+
def to_s
|
|
16
|
+
cql["TRUNCATE", context.to_s]
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end # class Truncate
|
|
20
|
+
|
|
21
|
+
end # module Statements
|
|
22
|
+
|
|
23
|
+
end # module QueryBuilder::CQL
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module QueryBuilder::CQL
|
|
4
|
+
|
|
5
|
+
module Statements
|
|
6
|
+
|
|
7
|
+
# Describes the 'UPDATE' CQL3 statement
|
|
8
|
+
#
|
|
9
|
+
class Update < Base
|
|
10
|
+
|
|
11
|
+
include Modifiers::Update
|
|
12
|
+
include Modifiers::Where
|
|
13
|
+
include Modifiers::If
|
|
14
|
+
include Modifiers::IfExists
|
|
15
|
+
include Modifiers::UsingOptions
|
|
16
|
+
|
|
17
|
+
# Builds the statement
|
|
18
|
+
#
|
|
19
|
+
# @return [String]
|
|
20
|
+
#
|
|
21
|
+
def to_s
|
|
22
|
+
cql[
|
|
23
|
+
"UPDATE", context.to_s, maybe_using, maybe_set, maybe_where, maybe_if
|
|
24
|
+
]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end # class Update
|
|
28
|
+
|
|
29
|
+
end # module Statements
|
|
30
|
+
|
|
31
|
+
end # module QueryBuilder::CQL
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module QueryBuilder::CQL
|
|
4
|
+
|
|
5
|
+
module Statements
|
|
6
|
+
|
|
7
|
+
# Describes the 'USE' CQL3 statement
|
|
8
|
+
#
|
|
9
|
+
class Use < Base
|
|
10
|
+
|
|
11
|
+
# Builds the statement
|
|
12
|
+
#
|
|
13
|
+
# @return [String]
|
|
14
|
+
#
|
|
15
|
+
def to_s
|
|
16
|
+
cql["USE", context.to_s]
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end # class Use
|
|
20
|
+
|
|
21
|
+
end # module Statements
|
|
22
|
+
|
|
23
|
+
end # module QueryBuilder::CQL
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
shared_examples :a_clause do |type|
|
|
4
|
+
|
|
5
|
+
it "[is a clause]" do
|
|
6
|
+
expect(subject).to be_kind_of(QueryBuilder::Core::Clause)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it "[is immutable]" do
|
|
10
|
+
expect(subject).to be_frozen
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "[has valid type]" do
|
|
14
|
+
expect(subject.type).to eql(type)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end # shared examples
|
|
18
|
+
|
|
19
|
+
shared_examples :query_builder do
|
|
20
|
+
|
|
21
|
+
it "[works]" do
|
|
22
|
+
expect(subject.to_s).to eql(cql)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end # shared examples
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require "query_builder/version"
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |gem|
|
|
7
|
+
|
|
8
|
+
gem.name = "query_builder"
|
|
9
|
+
gem.version = QueryBuilder::VERSION.dup
|
|
10
|
+
gem.author = "Andrew Kozin"
|
|
11
|
+
gem.email = "andrew.kozin@gmail.com"
|
|
12
|
+
gem.homepage = "https://github.com/nepalez/query_builder"
|
|
13
|
+
gem.summary = "Builder of the CQL statements."
|
|
14
|
+
gem.description = gem.summary
|
|
15
|
+
gem.license = "MIT"
|
|
16
|
+
|
|
17
|
+
gem.files = `git ls-files -z`.split("\x0")
|
|
18
|
+
gem.executables = gem.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
19
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
|
20
|
+
gem.extra_rdoc_files = Dir["README.md", "LICENSE", "CHANGELOG.md"]
|
|
21
|
+
gem.require_paths = ["lib"]
|
|
22
|
+
|
|
23
|
+
gem.required_ruby_version = "~> 1.9", ">= 1.9.3"
|
|
24
|
+
|
|
25
|
+
gem.add_runtime_dependency "transproc", "~> 0.3"
|
|
26
|
+
gem.add_runtime_dependency "equalizer", "~> 0.0.11"
|
|
27
|
+
gem.add_runtime_dependency "ice_nine", "~> 0.11"
|
|
28
|
+
|
|
29
|
+
gem.add_development_dependency "hexx-rspec", "~> 0.5"
|
|
30
|
+
|
|
31
|
+
end # Gem::Specification
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe "ALTER KEYSPACE" do
|
|
4
|
+
|
|
5
|
+
let(:statement) { QueryBuilder::CQL.keyspace(:wildlife).alter }
|
|
6
|
+
|
|
7
|
+
it_behaves_like :query_builder do
|
|
8
|
+
subject do
|
|
9
|
+
statement
|
|
10
|
+
.with(replication: { class: :SimpleStrategy, replication_factor: 3 })
|
|
11
|
+
.with(durable_writes: false)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
let(:cql) { "ALTER KEYSPACE wildlife WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3} AND durable_writes = false;" }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end # describe ALTER KEYSPACE
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe "ALTER ROLE" do
|
|
4
|
+
|
|
5
|
+
let(:role) { QueryBuilder::CQL.role(:admin) }
|
|
6
|
+
let(:statement) { role.alter("123456") }
|
|
7
|
+
|
|
8
|
+
it_behaves_like :query_builder do
|
|
9
|
+
subject { statement }
|
|
10
|
+
let(:cql) { "ALTER ROLE admin WITH PASSWORD '123456';" }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it_behaves_like :query_builder do
|
|
14
|
+
subject { statement.password(:foobar) }
|
|
15
|
+
let(:cql) { "ALTER ROLE admin WITH PASSWORD 'foobar';" }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it_behaves_like :query_builder do
|
|
19
|
+
subject { statement.superuser }
|
|
20
|
+
let(:cql) { "ALTER ROLE admin WITH PASSWORD '123456' SUPERUSER;" }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it_behaves_like :query_builder do
|
|
24
|
+
subject { statement.superuser(false) }
|
|
25
|
+
let(:cql) { "ALTER ROLE admin WITH PASSWORD '123456' NOSUPERUSER;" }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end # describe ALTER ROLE
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe "ALTER TABLE ... ADD" do
|
|
4
|
+
|
|
5
|
+
let(:column) do
|
|
6
|
+
QueryBuilder::CQL.keyspace(:wildlife).table(:species).column(:weight)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it_behaves_like :query_builder do
|
|
10
|
+
subject { column.create(:int) }
|
|
11
|
+
|
|
12
|
+
let(:cql) { "ALTER TABLE wildlife.species ADD weight int;" }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it_behaves_like :query_builder do
|
|
16
|
+
subject { column.create(:int, static: true) }
|
|
17
|
+
|
|
18
|
+
let(:cql) { "ALTER TABLE wildlife.species ADD weight int STATIC;" }
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end # describe ALTER TABLE ... ADD
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe "ALTER TABLE ... ALTER" do
|
|
4
|
+
|
|
5
|
+
let(:column) do
|
|
6
|
+
QueryBuilder::CQL.keyspace(:wildlife).table(:species).column(:weight)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it_behaves_like :query_builder do
|
|
10
|
+
subject { column.alter(:int) }
|
|
11
|
+
|
|
12
|
+
let(:cql) { "ALTER TABLE wildlife.species ALTER weight TYPE int;" }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end # describe ALTER TABLE ... ALTER
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe "ALTER TABLE ... DROP" do
|
|
4
|
+
|
|
5
|
+
let(:column) do
|
|
6
|
+
QueryBuilder::CQL.keyspace(:wildlife).table(:species).column(:weight)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it_behaves_like :query_builder do
|
|
10
|
+
subject { column.drop }
|
|
11
|
+
|
|
12
|
+
let(:cql) { "ALTER TABLE wildlife.species DROP weight;" }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end # describe ALTER TABLE ... DROP
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe "ALTER TABLE ... RENAME" do
|
|
4
|
+
|
|
5
|
+
let(:column) do
|
|
6
|
+
QueryBuilder::CQL.keyspace(:wildlife).table(:species).column(:weight)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it_behaves_like :query_builder do
|
|
10
|
+
subject { column.rename(:body_weight) }
|
|
11
|
+
|
|
12
|
+
let(:cql) { "ALTER TABLE wildlife.species RENAME weight TO body_weight;" }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end # describe ALTER TABLE ... RENAME
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe "ALTER TABLE ... WITH" do
|
|
4
|
+
|
|
5
|
+
let(:table) { QueryBuilder::CQL.keyspace(:wildlife).table(:species) }
|
|
6
|
+
|
|
7
|
+
it_behaves_like :query_builder do
|
|
8
|
+
subject do
|
|
9
|
+
table
|
|
10
|
+
.alter(comment: "A most excellent and useful table")
|
|
11
|
+
.alter(read_repair_chance: 0.2, default_time_to_live: 0)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
let(:cql) { "ALTER TABLE wildlife.species WITH comment = 'A most excellent and useful table' AND read_repair_chance = 0.2 AND default_time_to_live = 0;" }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end # describe ALTER TABLE ... WITH
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe "ALTER TYPE ... ADD" do
|
|
4
|
+
|
|
5
|
+
let(:field) do
|
|
6
|
+
QueryBuilder::CQL.keyspace(:wildlife).type(:species).field(:weight)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it_behaves_like :query_builder do
|
|
10
|
+
subject { field.create(:int) }
|
|
11
|
+
|
|
12
|
+
let(:cql) { "ALTER TYPE wildlife.species ADD weight int;" }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end # describe ALTER TYPE ... ADD
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe "ALTER TYPE ... ALTER" do
|
|
4
|
+
|
|
5
|
+
let(:field) do
|
|
6
|
+
QueryBuilder::CQL.keyspace(:wildlife).type(:species).field(:weight)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it_behaves_like :query_builder do
|
|
10
|
+
subject { field.alter(:int) }
|
|
11
|
+
|
|
12
|
+
let(:cql) { "ALTER TYPE wildlife.species ALTER weight TYPE int;" }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end # describe ALTER TYPE ... ALTER
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe "ALTER TYPE ... RENAME" do
|
|
4
|
+
|
|
5
|
+
let(:field) do
|
|
6
|
+
QueryBuilder::CQL.keyspace(:wildlife).type(:species).field(:weight)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it_behaves_like :query_builder do
|
|
10
|
+
subject { field.rename(:body_weight) }
|
|
11
|
+
|
|
12
|
+
let(:cql) { "ALTER TYPE wildlife.species RENAME weight TO body_weight;" }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end # describe ALTER TYPE ... RENAME
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe "ALTER USER" do
|
|
4
|
+
|
|
5
|
+
let(:user) { QueryBuilder::CQL.user(:andrew) }
|
|
6
|
+
let(:statement) { user.alter("123456") }
|
|
7
|
+
|
|
8
|
+
it_behaves_like :query_builder do
|
|
9
|
+
subject { statement }
|
|
10
|
+
let(:cql) { "ALTER USER andrew WITH PASSWORD '123456';" }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it_behaves_like :query_builder do
|
|
14
|
+
subject { statement.password(:foobar) }
|
|
15
|
+
let(:cql) { "ALTER USER andrew WITH PASSWORD 'foobar';" }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it_behaves_like :query_builder do
|
|
19
|
+
subject { statement.superuser }
|
|
20
|
+
let(:cql) { "ALTER USER andrew WITH PASSWORD '123456' SUPERUSER;" }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it_behaves_like :query_builder do
|
|
24
|
+
subject { statement.superuser(false) }
|
|
25
|
+
let(:cql) { "ALTER USER andrew WITH PASSWORD '123456' NOSUPERUSER;" }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end # describe ALTER USER
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe "BATCH" do
|
|
4
|
+
|
|
5
|
+
let(:root) { QueryBuilder::CQL }
|
|
6
|
+
let(:keyspace) { root.keyspace(:wildlife) }
|
|
7
|
+
let(:table) { keyspace.table(:species) }
|
|
8
|
+
let(:insert) { table.insert(name: :tiger) }
|
|
9
|
+
let(:delete) { table.delete(:name).where(name: :tiger) }
|
|
10
|
+
let(:statement) { root.batch.add(delete).add(insert) }
|
|
11
|
+
|
|
12
|
+
it_behaves_like :query_builder do
|
|
13
|
+
subject { statement }
|
|
14
|
+
let(:cql) { "BEGIN BATCH DELETE name FROM wildlife.species WHERE name = 'tiger'; INSERT INTO wildlife.species (name) VALUES ('tiger'); APPLY BATCH;" }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it_behaves_like :query_builder do
|
|
18
|
+
subject { statement.unlogged }
|
|
19
|
+
let(:cql) { "BEGIN UNLOGGED BATCH DELETE name FROM wildlife.species WHERE name = 'tiger'; INSERT INTO wildlife.species (name) VALUES ('tiger'); APPLY BATCH;" }
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it_behaves_like :query_builder do
|
|
23
|
+
subject { statement.counter }
|
|
24
|
+
let(:cql) { "BEGIN COUNTER BATCH DELETE name FROM wildlife.species WHERE name = 'tiger'; INSERT INTO wildlife.species (name) VALUES ('tiger'); APPLY BATCH;" }
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it_behaves_like :query_builder do
|
|
28
|
+
subject { statement.timestamp(100) }
|
|
29
|
+
let(:cql) { "BEGIN BATCH USING TIMESTAMP 100 DELETE name FROM wildlife.species WHERE name = 'tiger'; INSERT INTO wildlife.species (name) VALUES ('tiger'); APPLY BATCH;" }
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end # describe BATCH
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe "CREATE AGGREGATE" do
|
|
4
|
+
|
|
5
|
+
let(:aggregate) do
|
|
6
|
+
QueryBuilder::CQL.keyspace(:wildlife).aggregate(:numAverage)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
let(:statement) { aggregate.create }
|
|
10
|
+
|
|
11
|
+
it_behaves_like :query_builder do
|
|
12
|
+
subject { statement }
|
|
13
|
+
let(:cql) { "CREATE AGGREGATE wildlife.numAverage ();" }
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it_behaves_like :query_builder do
|
|
17
|
+
subject do
|
|
18
|
+
statement
|
|
19
|
+
.or_replace
|
|
20
|
+
.if_not_exists
|
|
21
|
+
.argument(:input, :int)
|
|
22
|
+
.sfunc(:avgState)
|
|
23
|
+
.stype(:bigint)
|
|
24
|
+
.finalfunc(:avgFinal)
|
|
25
|
+
.initcond(0, 0)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
let(:cql) { "CREATE OR REPLACE AGGREGATE IF NOT EXISTS wildlife.numAverage (input int) SFUNC avgState STYPE bigint FINALFUNC avgFinal INITCOND (0, 0);" }
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end # describe CREATE AGGREGATE
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe "CREATE FUNCTION" do
|
|
4
|
+
|
|
5
|
+
let(:function) do
|
|
6
|
+
QueryBuilder::CQL.keyspace(:wildlife).function(:count_species)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
let(:statement) { function.create(:java, "return MyClass.count(input));") }
|
|
10
|
+
|
|
11
|
+
it_behaves_like :query_builder do
|
|
12
|
+
subject { statement }
|
|
13
|
+
let(:cql) { "CREATE FUNCTION wildlife.count_species () RETURNS NULL ON NULL INPUT LANGUAGE 'java' AS 'return MyClass.count(input));';" }
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it_behaves_like :query_builder do
|
|
17
|
+
subject do
|
|
18
|
+
statement
|
|
19
|
+
.or_replace
|
|
20
|
+
.if_not_exists
|
|
21
|
+
.argument(:input, :double)
|
|
22
|
+
.returns(:int)
|
|
23
|
+
.called_on_null
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
let(:cql) { "CREATE OR REPLACE FUNCTION IF NOT EXISTS wildlife.count_species (input double) CALLED ON NULL INPUT RETURNS int LANGUAGE 'java' AS 'return MyClass.count(input));';" }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end # describe CREATE FUNCTION
|