Class: DLQuery
- Inherits:
-
Object
- Object
- DLQuery
- Defined in:
- lib/datalanche/query.rb
Instance Attribute Summary collapse
-
#params ⇒ Object
readonly
return params.
Instance Method Summary collapse
- #add_collaborator(username, permission) ⇒ Object
- #add_column(column_name, attributes) ⇒ Object
- #alias(alias_name) ⇒ Object
- #alter_collaborator(username, permission) ⇒ Object
-
#alter_column(column_name, attributes) ⇒ Object
TODO: add_constraint.
-
#alter_database(database_name) ⇒ Object
ALTER DATABASE.
-
#alter_index(index_name) ⇒ Object
ALTER INDEX.
-
#alter_schema(schema_name) ⇒ Object
ALTER SCHEMA.
-
#alter_table(table_name) ⇒ Object
ALTER TABLE.
-
#avg(*args) ⇒ Object
usage examples.
-
#cascade(boolean) ⇒ Object
COMMON.
- #column(column_name) ⇒ Object
- #columns(columns) ⇒ Object
- #count(*args) ⇒ Object
-
#create_index(index_name) ⇒ Object
CREATE INDEX.
-
#create_schema(schema_name) ⇒ Object
CREATE SCHEMA.
-
#create_table(table_name) ⇒ Object
CREATE TABLE.
-
#delete_from(table_name) ⇒ Object
DELETE.
-
#describe_database(database_name) ⇒ Object
DESCRIBE DATABASE.
-
#describe_schema(schema_name) ⇒ Object
DESCRIBE SCHEMA.
-
#describe_table(table_name) ⇒ Object
DESCRIBE TABLE.
- #description(text) ⇒ Object
- #distinct(boolean) ⇒ Object
- #drop_collaborator(username) ⇒ Object
- #drop_column(column_name, cascade = false) ⇒ Object
-
#drop_index(index_name) ⇒ Object
DROP INDEX.
-
#drop_schema(schema_name) ⇒ Object
DROP SCHEMA.
-
#drop_table(table_name) ⇒ Object
DROP TABLE.
-
#expr(*args) ⇒ Object
usage examples.
- #from(tables) ⇒ Object
- #group_by(columns) ⇒ Object
- #having(expression) ⇒ Object
-
#initialize(database = nil) ⇒ DLQuery
constructor
initialize parameters.
-
#insert_into(table_name) ⇒ Object
INSERT.
- #is_private(boolean) ⇒ Object
- #limit(integer) ⇒ Object
- #literal(value) ⇒ Object
- #max(*args) ⇒ Object
- #max_size_gb(integer) ⇒ Object
- #min(*args) ⇒ Object
- #offset(integer) ⇒ Object
- #on_table(tableName) ⇒ Object
- #order_by(expr_array) ⇒ Object
-
#rename_column(column_name, new_name) ⇒ Object
TODO: drop_constraint.
- #rename_to(table_name) ⇒ Object
-
#search_table(query_text) ⇒ Object
SEARCH TABLE.
-
#select(columns) ⇒ Object
SELECT.
- #select_all ⇒ Object
- #set(kv_pairs) ⇒ Object
-
#set_schema(schema_name) ⇒ Object
TODO: rename_constraint.
-
#show_databases ⇒ Object
SHOW DATABASES.
-
#show_schemas ⇒ Object
SHOW SCHEMAS.
-
#show_tables ⇒ Object
SHOW TABLES.
- #sum(*args) ⇒ Object
- #table(table_name) ⇒ Object
- #unique(boolean) ⇒ Object
-
#update(table_name) ⇒ Object
UPDATE.
- #using_method(text) ⇒ Object
- #values(rows) ⇒ Object
- #where(expression) ⇒ Object
- #with_query(query_text) ⇒ Object
Constructor Details
#initialize(database = nil) ⇒ DLQuery
initialize parameters
9 10 11 12 13 14 |
# File 'lib/datalanche/query.rb', line 9 def initialize(database = nil) @params = Hash.new if database != nil @params['database'] = database end end |
Instance Attribute Details
#params ⇒ Object (readonly)
return params
6 7 8 |
# File 'lib/datalanche/query.rb', line 6 def params @params end |
Instance Method Details
#add_collaborator(username, permission) ⇒ Object
121 122 123 124 125 126 127 128 |
# File 'lib/datalanche/query.rb', line 121 def add_collaborator(username, ) if @params.has_key?('add_collaborators') @params['add_collaborators'] = Hase.new end @params['add_collaborators'][username] = return self # method chaining end |
#add_column(column_name, attributes) ⇒ Object
185 186 187 188 189 190 191 192 |
# File 'lib/datalanche/query.rb', line 185 def add_column(column_name, attributes) if !(@params.has_key?('add_columns')) @params['add_columns'] = Hash.new end @params['add_columns'][column_name] = attributes return self # method chaining end |
#alias(alias_name) ⇒ Object
64 65 66 |
# File 'lib/datalanche/query.rb', line 64 def alias(alias_name) return { '$alias'=>alias_name } end |
#alter_collaborator(username, permission) ⇒ Object
130 131 132 133 134 135 136 137 |
# File 'lib/datalanche/query.rb', line 130 def alter_collaborator(username, ) if @params.has_key?('alter_collaborators') @params['alter_collaborators'] = Hash.new end @params['alter_collaborators'][username] = return self # method chaining end |
#alter_column(column_name, attributes) ⇒ Object
TODO: add_constraint
196 197 198 199 200 201 202 203 |
# File 'lib/datalanche/query.rb', line 196 def alter_column(column_name, attributes) if !(@params.has_key?('alter_columns')) @params['alter_columns'] = Hash.new end @params['alter_columns'][column_name] = attributes return self # method chaining end |
#alter_database(database_name) ⇒ Object
ALTER DATABASE
116 117 118 119 |
# File 'lib/datalanche/query.rb', line 116 def alter_database(database_name) @params['alter_database'] = database_name return self # method chaining end |
#alter_index(index_name) ⇒ Object
ALTER INDEX
162 163 164 165 |
# File 'lib/datalanche/query.rb', line 162 def alter_index(index_name) @params['alter_index'] = index_name return self # method chaining end |
#alter_schema(schema_name) ⇒ Object
ALTER SCHEMA
171 172 173 174 |
# File 'lib/datalanche/query.rb', line 171 def alter_schema(schema_name) @params['alter_schema'] = schema_name return self # method chaining end |
#alter_table(table_name) ⇒ Object
ALTER TABLE
180 181 182 183 |
# File 'lib/datalanche/query.rb', line 180 def alter_table(table_name) @params['alter_table'] = table_name return self # method chaining end |
#avg(*args) ⇒ Object
usage examples
q.count(“*”) q.sum(q.column(“c1”))
92 93 94 |
# File 'lib/datalanche/query.rb', line 92 def avg(*args) return { '$avg'=>args } end |
#cascade(boolean) ⇒ Object
COMMON
20 21 22 23 |
# File 'lib/datalanche/query.rb', line 20 def cascade(boolean) @params['cascade'] = boolean return self # method chaining end |
#column(column_name) ⇒ Object
68 69 70 |
# File 'lib/datalanche/query.rb', line 68 def column(column_name) return { '$column'=>column_name } end |
#columns(columns) ⇒ Object
25 26 27 28 |
# File 'lib/datalanche/query.rb', line 25 def columns(columns) @params['columns'] = columns return self # method chaining end |
#count(*args) ⇒ Object
96 97 98 |
# File 'lib/datalanche/query.rb', line 96 def count(*args) return { '$count'=>args } end |
#create_index(index_name) ⇒ Object
CREATE INDEX
239 240 241 242 |
# File 'lib/datalanche/query.rb', line 239 def create_index(index_name) @params['create_index'] = index_name return self # method chaining end |
#create_schema(schema_name) ⇒ Object
CREATE SCHEMA
263 264 265 266 |
# File 'lib/datalanche/query.rb', line 263 def create_schema(schema_name) @params['create_schema'] = schema_name return self # method chaining end |
#create_table(table_name) ⇒ Object
CREATE TABLE
272 273 274 275 |
# File 'lib/datalanche/query.rb', line 272 def create_table(table_name) @params['create_table'] = table_name return self # method chaining end |
#delete_from(table_name) ⇒ Object
DELETE
284 285 286 287 |
# File 'lib/datalanche/query.rb', line 284 def delete_from(table_name) @params['delete_from'] = table_name return self # method chaining end |
#describe_database(database_name) ⇒ Object
DESCRIBE DATABASE
293 294 295 296 |
# File 'lib/datalanche/query.rb', line 293 def describe_database(database_name) @params['describe_database'] = database_name return self # method chaining end |
#describe_schema(schema_name) ⇒ Object
DESCRIBE SCHEMA
302 303 304 305 |
# File 'lib/datalanche/query.rb', line 302 def describe_schema(schema_name) @params['describe_schema'] = schema_name return self # method chaining end |
#describe_table(table_name) ⇒ Object
DESCRIBE TABLE
311 312 313 314 |
# File 'lib/datalanche/query.rb', line 311 def describe_table(table_name) @params['describe_table'] = table_name return self # method chaining end |
#description(text) ⇒ Object
30 31 32 33 |
# File 'lib/datalanche/query.rb', line 30 def description(text) @params['description'] = text return self # method chaining end |
#distinct(boolean) ⇒ Object
389 390 391 392 |
# File 'lib/datalanche/query.rb', line 389 def distinct(boolean) @params['distinct'] = boolean return self # method chaining end |
#drop_collaborator(username) ⇒ Object
139 140 141 142 143 144 145 146 |
# File 'lib/datalanche/query.rb', line 139 def drop_collaborator(username) if @params.has_key?('drop_collaborators') @params['drop_collaborators'] = Array.new end @params['drop_collaborators'].push(username) return self # method chaining end |
#drop_column(column_name, cascade = false) ⇒ Object
205 206 207 208 209 210 211 212 213 214 215 |
# File 'lib/datalanche/query.rb', line 205 def drop_column(column_name, cascade = false) if !(@params.has_key?('drop_columns')) @params['drop_columns'] = Array.new end column_obj = Hash.new column_obj['name'] = column_name column_obj['cascade'] = cascade self.params['drop_columns'].push(column_obj) return self # method chaining end |
#drop_index(index_name) ⇒ Object
DROP INDEX
320 321 322 323 |
# File 'lib/datalanche/query.rb', line 320 def drop_index(index_name) @params['drop_index'] = index_name return self # method chaining end |
#drop_schema(schema_name) ⇒ Object
DROP SCHEMA
329 330 331 332 |
# File 'lib/datalanche/query.rb', line 329 def drop_schema(schema_name) @params['drop_schema'] = schema_name return self # method chaining end |
#drop_table(table_name) ⇒ Object
DROP TABLE
338 339 340 341 |
# File 'lib/datalanche/query.rb', line 338 def drop_table(table_name) @params['drop_table'] = table_name return self # method chaining end |
#expr(*args) ⇒ Object
usage examples
q.expr(2, “+”, 2) q.expr(“~”, 2) q.expr(2, “!”) q.expr(q.column(“c1”), “$like”, “%abc%”) q.expr(q.column(“c1”), “$not”, “$in”, [1, 2, 3, 4]) q.expr(q.column(“c1”), “=”, 1, “$and”, q.column(“c2”), “=”, 2)
59 60 61 62 |
# File 'lib/datalanche/query.rb', line 59 def expr(*args) # *args is a built-in Ruby variable which is a tuple of function args return { '$expr'=> args } end |
#from(tables) ⇒ Object
394 395 396 397 |
# File 'lib/datalanche/query.rb', line 394 def from(tables) @params['from'] = tables return self # method chaining end |
#group_by(columns) ⇒ Object
399 400 401 402 |
# File 'lib/datalanche/query.rb', line 399 def group_by(columns) @params['group_by'] = columns return self # method chaining end |
#having(expression) ⇒ Object
404 405 406 407 |
# File 'lib/datalanche/query.rb', line 404 def having(expression) @params['having'] = expression return self # method chaining end |
#insert_into(table_name) ⇒ Object
INSERT
347 348 349 350 |
# File 'lib/datalanche/query.rb', line 347 def insert_into(table_name) @params['insert_into'] = table_name return self # method chaining end |
#is_private(boolean) ⇒ Object
148 149 150 151 |
# File 'lib/datalanche/query.rb', line 148 def is_private(boolean) @params['is_private'] = boolean return self # method chaining end |
#limit(integer) ⇒ Object
409 410 411 412 |
# File 'lib/datalanche/query.rb', line 409 def limit(integer) @params['limit'] = integer return self # method chaining end |
#literal(value) ⇒ Object
72 73 74 |
# File 'lib/datalanche/query.rb', line 72 def literal(value) return { '$literal'=>value } end |
#max(*args) ⇒ Object
100 101 102 |
# File 'lib/datalanche/query.rb', line 100 def max(*args) return { '$max'=>args } end |
#max_size_gb(integer) ⇒ Object
153 154 155 156 |
# File 'lib/datalanche/query.rb', line 153 def max_size_gb(integer) @params['max_size_gb'] = integer return self # method chaining end |
#min(*args) ⇒ Object
104 105 106 |
# File 'lib/datalanche/query.rb', line 104 def min(*args) return { '$min'=>args } end |
#offset(integer) ⇒ Object
414 415 416 417 |
# File 'lib/datalanche/query.rb', line 414 def offset(integer) @params['offset'] = integer return self # method chaining end |
#on_table(tableName) ⇒ Object
244 245 246 247 |
# File 'lib/datalanche/query.rb', line 244 def on_table(tableName) @params['on_table'] = tableName return self # method chaining end |
#order_by(expr_array) ⇒ Object
419 420 421 422 |
# File 'lib/datalanche/query.rb', line 419 def order_by(expr_array) @params['order_by'] = expr_array return self # method chaining end |
#rename_column(column_name, new_name) ⇒ Object
TODO: drop_constraint
219 220 221 222 223 224 225 226 |
# File 'lib/datalanche/query.rb', line 219 def rename_column(column_name, new_name) if !(@params.has_key?('rename_columns')) @params['rename_columns'] = Hash.new end @params['rename_columns'][column_name] = new_name return self # method chaining end |
#rename_to(table_name) ⇒ Object
35 36 37 38 |
# File 'lib/datalanche/query.rb', line 35 def rename_to(table_name) @params['rename_to'] = table_name return self # method chaining end |
#search_table(query_text) ⇒ Object
SEARCH TABLE
361 362 363 364 |
# File 'lib/datalanche/query.rb', line 361 def search_table(query_text) @params['search_table'] = query_text return self # method chaining end |
#select(columns) ⇒ Object
SELECT
375 376 377 378 379 380 381 382 |
# File 'lib/datalanche/query.rb', line 375 def select(columns) if columns == '*' raise Exception('please use select_all() instead of select("*")') end @params['select'] = columns return self # method chaining end |
#select_all ⇒ Object
384 385 386 387 |
# File 'lib/datalanche/query.rb', line 384 def select_all() @params['select'] = true return self # method chaining end |
#set(kv_pairs) ⇒ Object
460 461 462 463 |
# File 'lib/datalanche/query.rb', line 460 def set(kv_pairs) @params['set'] = kv_pairs return self # method chaining end |
#set_schema(schema_name) ⇒ Object
TODO: rename_constraint
230 231 232 233 |
# File 'lib/datalanche/query.rb', line 230 def set_schema(schema_name) @params['set_schema'] = schema_name return self # method chaining end |
#show_databases ⇒ Object
SHOW DATABASES
428 429 430 431 |
# File 'lib/datalanche/query.rb', line 428 def show_databases() @params['show_databases'] = true return self # method chaining end |
#show_schemas ⇒ Object
SHOW SCHEMAS
437 438 439 440 |
# File 'lib/datalanche/query.rb', line 437 def show_schemas() @params['show_schemas'] = true return self # method chaining end |
#show_tables ⇒ Object
SHOW TABLES
446 447 448 449 |
# File 'lib/datalanche/query.rb', line 446 def show_tables() @params['show_tables'] = true return self # method chaining end |
#sum(*args) ⇒ Object
108 109 110 |
# File 'lib/datalanche/query.rb', line 108 def sum(*args) return { '$sum'=>args } end |
#table(table_name) ⇒ Object
76 77 78 |
# File 'lib/datalanche/query.rb', line 76 def table(table_name) return { '$table'=>table_name } end |
#unique(boolean) ⇒ Object
249 250 251 252 |
# File 'lib/datalanche/query.rb', line 249 def unique(boolean) @params['unique'] = boolean return self # method chaining end |
#update(table_name) ⇒ Object
UPDATE
455 456 457 458 |
# File 'lib/datalanche/query.rb', line 455 def update(table_name) @params['update'] = table_name return self # method chaining end |
#using_method(text) ⇒ Object
254 255 256 257 |
# File 'lib/datalanche/query.rb', line 254 def using_method(text) @params['using_method'] = text return self # method chaining end |
#values(rows) ⇒ Object
352 353 354 355 |
# File 'lib/datalanche/query.rb', line 352 def values(rows) @params['values'] = rows return self # method chaining end |
#where(expression) ⇒ Object
40 41 42 43 |
# File 'lib/datalanche/query.rb', line 40 def where(expression) @params['where'] = expression return self # method chaining end |
#with_query(query_text) ⇒ Object
366 367 368 369 |
# File 'lib/datalanche/query.rb', line 366 def with_query(query_text) @params['with_query'] = query_text return self # method chaining end |