Class: DLQuery

Inherits:
Object
  • Object
show all
Defined in:
lib/datalanche/query.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#paramsObject (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, permission)
    if @params.has_key?('add_collaborators')
        @params['add_collaborators'] = Hase.new
    end
    
    @params['add_collaborators'][username] = permission
    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, permission)
    if @params.has_key?('alter_collaborators')
        @params['alter_collaborators'] = Hash.new
    end
    
    @params['alter_collaborators'][username] = permission
    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_allObject



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_databasesObject

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_schemasObject

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_tablesObject

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