class DLQuery

Attributes

params[R]

return params

Public Class Methods

new(database = nil) click to toggle source

initialize parameters

# File lib/datalanche/query.rb, line 8
def initialize(database = nil)
    @params = Hash.new
    if database != nil
        @params['database'] = database
    end
end

Public Instance Methods

add_collaborator(username, permission) click to toggle source
# File lib/datalanche/query.rb, line 120
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) click to toggle source
# File lib/datalanche/query.rb, line 184
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) click to toggle source
# File lib/datalanche/query.rb, line 63
def alias(alias_name)
    return { '$alias'=>alias_name }
end
alter_collaborator(username, permission) click to toggle source
# File lib/datalanche/query.rb, line 129
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) click to toggle source

TODO: add_constraint

# File lib/datalanche/query.rb, line 195
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) click to toggle source

ALTER DATABASE

# File lib/datalanche/query.rb, line 115
def alter_database(database_name)
    @params['alter_database'] = database_name
    return self # method chaining
end
alter_index(index_name) click to toggle source

ALTER INDEX

# File lib/datalanche/query.rb, line 161
def alter_index(index_name)
    @params['alter_index'] = index_name
    return self # method chaining
end
alter_schema(schema_name) click to toggle source

ALTER SCHEMA

# File lib/datalanche/query.rb, line 170
def alter_schema(schema_name)
    @params['alter_schema'] = schema_name
    return self # method chaining
end
alter_table(table_name) click to toggle source

ALTER TABLE

# File lib/datalanche/query.rb, line 179
def alter_table(table_name)
    @params['alter_table'] = table_name
    return self # method chaining
end
avg(*args) click to toggle source

usage examples

q.count(“*”) q.sum(q.column(“c1”))

# File lib/datalanche/query.rb, line 91
def avg(*args)
    return { '$avg'=>args }
end
cascade(boolean) click to toggle source

COMMON

# File lib/datalanche/query.rb, line 19
def cascade(boolean)
    @params['cascade'] = boolean
    return self # method chaining
end
column(column_name) click to toggle source
# File lib/datalanche/query.rb, line 67
def column(column_name)
    return { '$column'=>column_name }
end
columns(columns) click to toggle source
# File lib/datalanche/query.rb, line 24
def columns(columns)
    @params['columns'] = columns
    return self # method chaining
end
count(*args) click to toggle source
# File lib/datalanche/query.rb, line 95
def count(*args)
    return { '$count'=>args }
end
create_index(index_name) click to toggle source

CREATE INDEX

# File lib/datalanche/query.rb, line 238
def create_index(index_name)
    @params['create_index'] = index_name
    return self # method chaining
end
create_schema(schema_name) click to toggle source

CREATE SCHEMA

# File lib/datalanche/query.rb, line 262
def create_schema(schema_name)
    @params['create_schema'] = schema_name
    return self # method chaining
end
create_table(table_name) click to toggle source

CREATE TABLE

# File lib/datalanche/query.rb, line 271
def create_table(table_name)
    @params['create_table'] = table_name
    return self # method chaining
end
delete_from(table_name) click to toggle source

DELETE

# File lib/datalanche/query.rb, line 283
def delete_from(table_name)
    @params['delete_from'] = table_name
    return self # method chaining
end
describe_database(database_name) click to toggle source

DESCRIBE DATABASE

# File lib/datalanche/query.rb, line 292
def describe_database(database_name)
    @params['describe_database'] = database_name
    return self # method chaining
end
describe_schema(schema_name) click to toggle source

DESCRIBE SCHEMA

# File lib/datalanche/query.rb, line 301
def describe_schema(schema_name)
    @params['describe_schema'] = schema_name
    return self # method chaining
end
describe_table(table_name) click to toggle source

DESCRIBE TABLE

# File lib/datalanche/query.rb, line 310
def describe_table(table_name)
    @params['describe_table'] = table_name
    return self # method chaining
end
description(text) click to toggle source
# File lib/datalanche/query.rb, line 29
def description(text)
    @params['description'] = text
    return self # method chaining
end
distinct(boolean) click to toggle source
# File lib/datalanche/query.rb, line 388
def distinct(boolean)
    @params['distinct'] = boolean
    return self # method chaining
end
drop_collaborator(username) click to toggle source
# File lib/datalanche/query.rb, line 138
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) click to toggle source
# File lib/datalanche/query.rb, line 204
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) click to toggle source

DROP INDEX

# File lib/datalanche/query.rb, line 319
def drop_index(index_name)
    @params['drop_index'] = index_name
    return self # method chaining
end
drop_schema(schema_name) click to toggle source

DROP SCHEMA

# File lib/datalanche/query.rb, line 328
def drop_schema(schema_name)
    @params['drop_schema'] = schema_name
    return self # method chaining
end
drop_table(table_name) click to toggle source

DROP TABLE

# File lib/datalanche/query.rb, line 337
def drop_table(table_name)
    @params['drop_table'] = table_name
    return self # method chaining
end
expr(*args) click to toggle source

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)

# File lib/datalanche/query.rb, line 58
def expr(*args)
    # *args is a built-in Ruby variable which is a tuple of function args
    return { '$expr'=> args }
end
from(tables) click to toggle source
# File lib/datalanche/query.rb, line 393
def from(tables)
    @params['from'] = tables
    return self # method chaining
end
group_by(columns) click to toggle source
# File lib/datalanche/query.rb, line 398
def group_by(columns)
    @params['group_by'] = columns
    return self # method chaining
end
having(expression) click to toggle source
# File lib/datalanche/query.rb, line 403
def having(expression)
    @params['having'] = expression
    return self # method chaining
end
insert_into(table_name) click to toggle source

INSERT

# File lib/datalanche/query.rb, line 346
def insert_into(table_name)
    @params['insert_into'] = table_name
    return self # method chaining
end
is_private(boolean) click to toggle source
# File lib/datalanche/query.rb, line 147
def is_private(boolean)
    @params['is_private'] = boolean
    return self # method chaining
end
limit(integer) click to toggle source
# File lib/datalanche/query.rb, line 408
def limit(integer)
    @params['limit'] = integer
    return self # method chaining
end
literal(value) click to toggle source
# File lib/datalanche/query.rb, line 71
def literal(value)
    return { '$literal'=>value }
end
max(*args) click to toggle source
# File lib/datalanche/query.rb, line 99
def max(*args)
    return { '$max'=>args }
end
max_size_gb(integer) click to toggle source
# File lib/datalanche/query.rb, line 152
def max_size_gb(integer)
    @params['max_size_gb'] = integer
    return self # method chaining
end
min(*args) click to toggle source
# File lib/datalanche/query.rb, line 103
def min(*args)
    return { '$min'=>args }
end
offset(integer) click to toggle source
# File lib/datalanche/query.rb, line 413
def offset(integer)
    @params['offset'] = integer
    return self # method chaining
end
on_table(tableName) click to toggle source
# File lib/datalanche/query.rb, line 243
def on_table(tableName)
    @params['on_table'] = tableName
    return self # method chaining
end
order_by(expr_array) click to toggle source
# File lib/datalanche/query.rb, line 418
def order_by(expr_array)
    @params['order_by'] = expr_array
    return self # method chaining
end
rename_column(column_name, new_name) click to toggle source

TODO: drop_constraint

# File lib/datalanche/query.rb, line 218
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) click to toggle source
# File lib/datalanche/query.rb, line 34
def rename_to(table_name)
    @params['rename_to'] = table_name
    return self # method chaining
end
search_table(query_text) click to toggle source

SEARCH TABLE

# File lib/datalanche/query.rb, line 360
def search_table(query_text)
    @params['search_table'] = query_text
    return self # method chaining
end
select(columns) click to toggle source

SELECT

# File lib/datalanche/query.rb, line 374
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() click to toggle source
# File lib/datalanche/query.rb, line 383
def select_all()
    @params['select'] = true
    return self # method chaining
end
set(kv_pairs) click to toggle source
# File lib/datalanche/query.rb, line 459
def set(kv_pairs)
    @params['set'] = kv_pairs
    return self # method chaining
end
set_schema(schema_name) click to toggle source

TODO: rename_constraint

# File lib/datalanche/query.rb, line 229
def set_schema(schema_name)
    @params['set_schema'] = schema_name
    return self # method chaining
end
show_databases() click to toggle source

SHOW DATABASES

# File lib/datalanche/query.rb, line 427
def show_databases()
    @params['show_databases'] = true
    return self # method chaining
end
show_schemas() click to toggle source

SHOW SCHEMAS

# File lib/datalanche/query.rb, line 436
def show_schemas()
    @params['show_schemas'] = true
    return self # method chaining
end
show_tables() click to toggle source

SHOW TABLES

# File lib/datalanche/query.rb, line 445
def show_tables()
    @params['show_tables'] = true
    return self # method chaining
end
sum(*args) click to toggle source
# File lib/datalanche/query.rb, line 107
def sum(*args)
    return { '$sum'=>args }
end
table(table_name) click to toggle source
# File lib/datalanche/query.rb, line 75
def table(table_name)
    return { '$table'=>table_name }
end
unique(boolean) click to toggle source
# File lib/datalanche/query.rb, line 248
def unique(boolean)
    @params['unique'] = boolean
    return self # method chaining
end
update(table_name) click to toggle source

UPDATE

# File lib/datalanche/query.rb, line 454
def update(table_name)
    @params['update'] = table_name
    return self # method chaining
end
using_method(text) click to toggle source
# File lib/datalanche/query.rb, line 253
def using_method(text)
    @params['using_method'] = text
    return self # method chaining
end
values(rows) click to toggle source
# File lib/datalanche/query.rb, line 351
def values(rows)
    @params['values'] = rows
    return self # method chaining
end
where(expression) click to toggle source
# File lib/datalanche/query.rb, line 39
def where(expression)
    @params['where'] = expression
    return self # method chaining
end
with_query(query_text) click to toggle source
# File lib/datalanche/query.rb, line 365
def with_query(query_text)
    @params['with_query'] = query_text
    return self # method chaining
end