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,47 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module QueryBuilder::CQL
|
|
4
|
+
|
|
5
|
+
module Modifiers
|
|
6
|
+
|
|
7
|
+
# Adds statements to CQL BATCH
|
|
8
|
+
#
|
|
9
|
+
module Statement
|
|
10
|
+
|
|
11
|
+
# Adds the statement
|
|
12
|
+
#
|
|
13
|
+
# @param [#to_s] statement
|
|
14
|
+
#
|
|
15
|
+
# @return [QueryBuilder::Core::Statement] updated statement
|
|
16
|
+
#
|
|
17
|
+
def add(statement)
|
|
18
|
+
self << Clause.new(statement: statement)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
def maybe_statements
|
|
24
|
+
clauses(:statement).join(" ")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# The clause for adding to a statement
|
|
28
|
+
#
|
|
29
|
+
# @api private
|
|
30
|
+
#
|
|
31
|
+
class Clause < Base
|
|
32
|
+
|
|
33
|
+
type :statement
|
|
34
|
+
attribute :statement, required: true
|
|
35
|
+
|
|
36
|
+
# @private
|
|
37
|
+
def to_s
|
|
38
|
+
statement.to_s
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
end # class Clause
|
|
42
|
+
|
|
43
|
+
end # module Statement
|
|
44
|
+
|
|
45
|
+
end # module Modifiers
|
|
46
|
+
|
|
47
|
+
end # module QueryBuilder::CQL
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module QueryBuilder::CQL
|
|
4
|
+
|
|
5
|
+
module Modifiers
|
|
6
|
+
|
|
7
|
+
# Provides STYPE clauses for statements
|
|
8
|
+
#
|
|
9
|
+
module Stype
|
|
10
|
+
|
|
11
|
+
# Adds STYPE clause to the statement
|
|
12
|
+
#
|
|
13
|
+
# @param [#to_s] name
|
|
14
|
+
#
|
|
15
|
+
# @return [QueryBuilder::Core::Statement] updated statement
|
|
16
|
+
#
|
|
17
|
+
def stype(name)
|
|
18
|
+
self << Clause.new(name: name)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
def maybe_functions
|
|
24
|
+
clauses(:function).join(" ")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# The clause for adding to a statement
|
|
28
|
+
#
|
|
29
|
+
# @api private
|
|
30
|
+
#
|
|
31
|
+
class Clause < Base
|
|
32
|
+
|
|
33
|
+
type :function
|
|
34
|
+
attribute :name, required: true
|
|
35
|
+
|
|
36
|
+
# @private
|
|
37
|
+
def to_s
|
|
38
|
+
"STYPE #{name}"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
end # class Clause
|
|
42
|
+
|
|
43
|
+
end # module Stype
|
|
44
|
+
|
|
45
|
+
end # module Modifiers
|
|
46
|
+
|
|
47
|
+
end # module QueryBuilder::CQL
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module QueryBuilder::CQL
|
|
4
|
+
|
|
5
|
+
module Modifiers
|
|
6
|
+
|
|
7
|
+
# Provides (NO)SUPERUSER clauses for statements
|
|
8
|
+
#
|
|
9
|
+
module Superuser
|
|
10
|
+
|
|
11
|
+
# Adds (NO)SUPERUSER clause to the statement
|
|
12
|
+
#
|
|
13
|
+
# @param [Boolean] option (true)
|
|
14
|
+
#
|
|
15
|
+
# @return [QueryBuilder::Core::Statement] updated statement
|
|
16
|
+
#
|
|
17
|
+
def superuser(option = true)
|
|
18
|
+
self << Clause.new(reverse: !option)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
def maybe_superuser
|
|
24
|
+
clauses(:superuser)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# The clause for adding to a statement
|
|
28
|
+
#
|
|
29
|
+
# @api private
|
|
30
|
+
#
|
|
31
|
+
class Clause < Base
|
|
32
|
+
|
|
33
|
+
unique
|
|
34
|
+
type :superuser
|
|
35
|
+
attribute :reverse, default: false
|
|
36
|
+
|
|
37
|
+
# @private
|
|
38
|
+
def to_s
|
|
39
|
+
"#{maybe_no}SUPERUSER"
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
private
|
|
43
|
+
|
|
44
|
+
def maybe_no
|
|
45
|
+
"NO" if reverse
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end # class Clause
|
|
49
|
+
|
|
50
|
+
end # module Superuser
|
|
51
|
+
|
|
52
|
+
end # module Modifiers
|
|
53
|
+
|
|
54
|
+
end # module QueryBuilder::CQL
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module QueryBuilder::CQL
|
|
4
|
+
|
|
5
|
+
module Modifiers
|
|
6
|
+
|
|
7
|
+
# Provides LIMIT clauses for statements
|
|
8
|
+
#
|
|
9
|
+
module Timestamp
|
|
10
|
+
|
|
11
|
+
# Adds LIMIT clause to the statement
|
|
12
|
+
#
|
|
13
|
+
# @param [Integer] value
|
|
14
|
+
#
|
|
15
|
+
# @return [QueryBuilder::Core::Statement] updated statement
|
|
16
|
+
#
|
|
17
|
+
def timestamp(value)
|
|
18
|
+
self << Clause.new(value: value)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
def maybe_using
|
|
24
|
+
list = clauses(:using)
|
|
25
|
+
["USING", list.sort.join(" AND ")] if list.any?
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# The clause for adding to a statement
|
|
29
|
+
#
|
|
30
|
+
# @api private
|
|
31
|
+
#
|
|
32
|
+
class Clause < Base
|
|
33
|
+
|
|
34
|
+
unique
|
|
35
|
+
type :using
|
|
36
|
+
|
|
37
|
+
attribute :value, required: true
|
|
38
|
+
|
|
39
|
+
# @private
|
|
40
|
+
def to_s
|
|
41
|
+
"TIMESTAMP #{value}"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
end # class Clause
|
|
45
|
+
|
|
46
|
+
end # module Timestamp
|
|
47
|
+
|
|
48
|
+
end # module Modifiers
|
|
49
|
+
|
|
50
|
+
end # module QueryBuilder::CQL
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module QueryBuilder::CQL
|
|
4
|
+
|
|
5
|
+
module Modifiers
|
|
6
|
+
|
|
7
|
+
# Provides UNLOGGED batch type
|
|
8
|
+
#
|
|
9
|
+
module Unlogged
|
|
10
|
+
|
|
11
|
+
# Adds a clause to the statement
|
|
12
|
+
#
|
|
13
|
+
# @return [QueryBuilder::Core::Statement] updated statement
|
|
14
|
+
#
|
|
15
|
+
def unlogged
|
|
16
|
+
self << Clause.new
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
def maybe_type
|
|
22
|
+
clauses(:type)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# The clause for adding to a statement
|
|
26
|
+
#
|
|
27
|
+
# @api private
|
|
28
|
+
#
|
|
29
|
+
class Clause < Base
|
|
30
|
+
|
|
31
|
+
unique
|
|
32
|
+
type :type
|
|
33
|
+
|
|
34
|
+
# @private
|
|
35
|
+
def to_s
|
|
36
|
+
"UNLOGGED"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end # class Clause
|
|
40
|
+
|
|
41
|
+
end # module Unlogged
|
|
42
|
+
|
|
43
|
+
end # module Modifiers
|
|
44
|
+
|
|
45
|
+
end # module QueryBuilder::CQL
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module QueryBuilder::CQL
|
|
4
|
+
|
|
5
|
+
module Modifiers
|
|
6
|
+
|
|
7
|
+
# Provides columns and values for UPDATE statement
|
|
8
|
+
#
|
|
9
|
+
module Update
|
|
10
|
+
|
|
11
|
+
# Adds SET clause to the statement
|
|
12
|
+
#
|
|
13
|
+
# @param [Hash] options
|
|
14
|
+
#
|
|
15
|
+
# @return [QueryBuilder::Core::Statement] updated statement
|
|
16
|
+
#
|
|
17
|
+
def update(options)
|
|
18
|
+
options
|
|
19
|
+
.map { |key, value| Clause.new(column: key, value: value) }
|
|
20
|
+
.inject(self, :<<)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def maybe_set
|
|
26
|
+
list = clauses(:set)
|
|
27
|
+
["SET", list.join(", ")] if list.any?
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# The clause for adding to a statement
|
|
31
|
+
#
|
|
32
|
+
# @api private
|
|
33
|
+
#
|
|
34
|
+
class Clause < BaseCondition
|
|
35
|
+
|
|
36
|
+
type :set
|
|
37
|
+
|
|
38
|
+
end # class Clause
|
|
39
|
+
|
|
40
|
+
end # module Update
|
|
41
|
+
|
|
42
|
+
end # module Modifiers
|
|
43
|
+
|
|
44
|
+
end # module QueryBuilder::CQL
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module QueryBuilder::CQL
|
|
4
|
+
|
|
5
|
+
module Modifiers
|
|
6
|
+
|
|
7
|
+
# Provides USING clauses for statements
|
|
8
|
+
#
|
|
9
|
+
module Using
|
|
10
|
+
|
|
11
|
+
# Defines java class for the index
|
|
12
|
+
#
|
|
13
|
+
# @param [#to_s] java_class
|
|
14
|
+
#
|
|
15
|
+
# @return [QueryBuilder::Core::Statement] updated statement
|
|
16
|
+
#
|
|
17
|
+
def using(java_class)
|
|
18
|
+
self << Clause.new(value: java_class)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
def maybe_using
|
|
24
|
+
list = clauses(:using)
|
|
25
|
+
["USING", list.sort.join(" AND ")] if list.any?
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# The clause for adding to a statement
|
|
29
|
+
#
|
|
30
|
+
# @api private
|
|
31
|
+
#
|
|
32
|
+
class Clause < Base
|
|
33
|
+
|
|
34
|
+
type :using
|
|
35
|
+
attribute :value, required: true
|
|
36
|
+
|
|
37
|
+
# @private
|
|
38
|
+
def to_s
|
|
39
|
+
cql_literal[value]
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
end # class Clause
|
|
43
|
+
|
|
44
|
+
end # module Using
|
|
45
|
+
|
|
46
|
+
end # module Modifiers
|
|
47
|
+
|
|
48
|
+
end # module QueryBuilder::CQL
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module QueryBuilder::CQL
|
|
4
|
+
|
|
5
|
+
module Modifiers
|
|
6
|
+
|
|
7
|
+
# Provides USING clauses for statements with various options
|
|
8
|
+
#
|
|
9
|
+
module UsingOptions
|
|
10
|
+
|
|
11
|
+
# Adds USING clause to the statement
|
|
12
|
+
#
|
|
13
|
+
# @param [Hash] options
|
|
14
|
+
#
|
|
15
|
+
# @return [QueryBuilder::Core::Statement] updated statement
|
|
16
|
+
#
|
|
17
|
+
def using(options)
|
|
18
|
+
options
|
|
19
|
+
.map { |key, value| Clause.new(property: key, value: value) }
|
|
20
|
+
.inject(self, :<<)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def maybe_using
|
|
26
|
+
list = clauses(:using)
|
|
27
|
+
["USING", list.sort.join(" AND ")] if list.any?
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# The clause for adding to a statement
|
|
31
|
+
#
|
|
32
|
+
# @api private
|
|
33
|
+
#
|
|
34
|
+
class Clause < Base
|
|
35
|
+
|
|
36
|
+
type :using
|
|
37
|
+
attribute :property, required: true
|
|
38
|
+
attribute :value, required: true
|
|
39
|
+
|
|
40
|
+
# @private
|
|
41
|
+
def to_s
|
|
42
|
+
"#{property.upcase} #{cql_literal[value]}"
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end # class Clause
|
|
46
|
+
|
|
47
|
+
end # module UsingOptions
|
|
48
|
+
|
|
49
|
+
end # module Modifiers
|
|
50
|
+
|
|
51
|
+
end # module QueryBuilder::CQL
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module QueryBuilder::CQL
|
|
4
|
+
|
|
5
|
+
module Modifiers
|
|
6
|
+
|
|
7
|
+
# Provides WHERE clauses for statements
|
|
8
|
+
#
|
|
9
|
+
module Where
|
|
10
|
+
|
|
11
|
+
# Adds WHERE clause to the statement
|
|
12
|
+
#
|
|
13
|
+
# @param [Hash] options
|
|
14
|
+
#
|
|
15
|
+
# @return [QueryBuilder::Core::Statement] updated statement
|
|
16
|
+
#
|
|
17
|
+
def where(options)
|
|
18
|
+
options
|
|
19
|
+
.map { |key, value| Clause.new(column: key, value: value) }
|
|
20
|
+
.inject(self, :<<)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def maybe_where
|
|
26
|
+
list = clauses(:where)
|
|
27
|
+
["WHERE", list.join(" AND ")] if list.any?
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# The clause for adding to a statement
|
|
31
|
+
#
|
|
32
|
+
# @api private
|
|
33
|
+
#
|
|
34
|
+
class Clause < BaseCondition
|
|
35
|
+
|
|
36
|
+
type :where
|
|
37
|
+
|
|
38
|
+
end # class Clause
|
|
39
|
+
|
|
40
|
+
end # module Where
|
|
41
|
+
|
|
42
|
+
end # module Modifiers
|
|
43
|
+
|
|
44
|
+
end # module QueryBuilder::CQL
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module QueryBuilder::CQL
|
|
4
|
+
|
|
5
|
+
module Modifiers
|
|
6
|
+
|
|
7
|
+
# Provides WHERE clauses for clustered columns in statements
|
|
8
|
+
#
|
|
9
|
+
module WhereClustered
|
|
10
|
+
|
|
11
|
+
# Adds WHERE clause to the statement
|
|
12
|
+
#
|
|
13
|
+
# @param [Hash] options
|
|
14
|
+
#
|
|
15
|
+
# @return [QueryBuilder::Core::Statement] updated statement
|
|
16
|
+
#
|
|
17
|
+
def where_clustered(options)
|
|
18
|
+
self << Clause.new(columns: options.keys, values: options.values)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
def maybe_where
|
|
24
|
+
list = clauses(:where)
|
|
25
|
+
["WHERE", list.join(" AND ")] if list.any?
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# The clause for adding to a statement
|
|
29
|
+
#
|
|
30
|
+
# @api private
|
|
31
|
+
#
|
|
32
|
+
class Clause < Base
|
|
33
|
+
|
|
34
|
+
type :where
|
|
35
|
+
attribute :columns, required: true
|
|
36
|
+
attribute :values, required: true
|
|
37
|
+
|
|
38
|
+
def to_s
|
|
39
|
+
[
|
|
40
|
+
"(#{columns.join(", ")})",
|
|
41
|
+
"(#{values.map { |value| cql_literal[value] }.join(", ")})"
|
|
42
|
+
].join(" = ")
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end # class Clause
|
|
46
|
+
|
|
47
|
+
end # module WhereClustered
|
|
48
|
+
|
|
49
|
+
end # module Modifiers
|
|
50
|
+
|
|
51
|
+
end # module QueryBuilder::CQL
|