Class: Sequel::ODBC::MSSQL::Dataset
- Defined in:
- lib/sequel_core/adapters/odbc_mssql.rb
Constant Summary
Constants inherited from Dataset
Dataset::BOOL_FALSE, Dataset::BOOL_TRUE, Dataset::ODBC_DATE_FORMAT, Dataset::ODBC_TIMESTAMP_AFTER_SECONDS, Dataset::ODBC_TIMESTAMP_FORMAT, Dataset::UNTITLED_COLUMN
Constants inherited from Dataset
Dataset::AND_SEPARATOR, Dataset::BOOL_FALSE, Dataset::BOOL_TRUE, Dataset::COLUMN_CHANGE_OPTS, Dataset::COLUMN_REF_RE1, Dataset::COLUMN_REF_RE2, Dataset::COLUMN_REF_RE3, Dataset::COMMA_SEPARATOR, Dataset::COUNT_FROM_SELF_OPTS, Dataset::COUNT_OF_ALL_AS_COUNT, Dataset::DATASET_CLASSES, Dataset::DATE_FORMAT, Dataset::MUTATION_METHODS, Dataset::NOTIMPL_MSG, Dataset::NULL, Dataset::N_ARITY_OPERATORS, Dataset::QUESTION_MARK, Dataset::STOCK_COUNT_OPTS, Dataset::STOCK_TRANSFORMS, Dataset::TIMESTAMP_FORMAT, Dataset::TWO_ARITY_OPERATORS, Dataset::WILDCARD
Instance Attribute Summary
Attributes inherited from Dataset
#db, #opts, #quote_identifiers, #row_proc
Instance Method Summary collapse
- #complex_expression_sql(op, args) ⇒ Object
- #full_text_search(cols, terms, opts = {}) ⇒ Object
-
#nolock ⇒ Object
Allows you to do .nolock on a query.
-
#select_sql(opts = nil) ⇒ Object
(also: #sql)
Formats a SELECT statement using the given options and the dataset options.
Methods inherited from Dataset
#convert_odbc_value, #delete, #fetch_rows, #hash_row, #insert, #literal, #update
Methods inherited from Dataset
#<<, #[], #[]=, #aliased_expression_sql, #all, #and, #as, #avg, #case_expression_sql, #clone, #column_all_sql, #columns, #columns!, #count, #create_or_replace_view, #create_view, dataset_classes, #def_mutation_method, def_mutation_method, #delete, #delete_sql, #each, #each_page, #empty?, #except, #exclude, #exists, #fetch_rows, #filter, #first, #first_source, #from, #from_self, #function_sql, #get, #graph, #grep, #group, #group_and_count, #having, inherited, #initialize, #insert, #insert_multiple, #insert_sql, #inspect, #intersect, #interval, #invert, #irregular_function_sql, #join_clause_sql, #join_on_clause_sql, #join_table, #join_using_clause_sql, #last, #limit, #literal, #map, #max, #min, #model_classes, #multi_insert, #multi_insert_sql, #naked, #or, #order, #order_more, #ordered_expression_sql, #paginate, #polymorphic_key, #print, #qualified_identifier_sql, #query, #quote_identifier, #quote_identifiers?, #quoted_identifier, #range, #reverse_order, #select, #select_all, #select_more, #set, #set_graph_aliases, #set_model, #single_record, #single_value, #subscript_sql, #sum, #symbol_to_column_ref, #table_exists?, #to_csv, #to_hash, #transform, #transform_load, #transform_save, #unfiltered, #union, #uniq, #unordered, #update, #update_sql
Methods included from Enumerable
Constructor Details
This class inherits a constructor from Sequel::Dataset
Instance Method Details
#complex_expression_sql(op, args) ⇒ Object
95 96 97 98 99 100 101 102 |
# File 'lib/sequel_core/adapters/odbc_mssql.rb', line 95 def complex_expression_sql(op, args) case op when :'||' super(:+, args) else super(op, args) end end |
#full_text_search(cols, terms, opts = {}) ⇒ Object
91 92 93 |
# File 'lib/sequel_core/adapters/odbc_mssql.rb', line 91 def full_text_search(cols, terms, opts = {}) filter("CONTAINS (#{literal(cols)}, #{literal(terms)})") end |
#nolock ⇒ Object
Allows you to do .nolock on a query
18 19 20 |
# File 'lib/sequel_core/adapters/odbc_mssql.rb', line 18 def nolock clone(:with => "(NOLOCK)") end |
#select_sql(opts = nil) ⇒ Object Also known as: sql
Formats a SELECT statement using the given options and the dataset options.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/sequel_core/adapters/odbc_mssql.rb', line 24 def select_sql(opts = nil) opts = opts ? @opts.merge(opts) : @opts if sql = opts[:sql] return sql end # ADD TOP to SELECT string for LIMITS if limit = opts[:limit] top = "TOP #{limit} " raise Error, "Offset not supported" if opts[:offset] end columns = opts[:select] select_columns = columns ? column_list(columns) : WILDCARD if distinct = opts[:distinct] distinct_clause = distinct.empty? ? "DISTINCT" : "DISTINCT ON (#{expression_list(distinct)})" sql = "SELECT #{top}#{distinct_clause} #{select_columns}" else sql = "SELECT #{top}#{select_columns}" end if opts[:from] sql << " FROM #{source_list(opts[:from])}" end # ADD WITH to SELECT string for NOLOCK if with = opts[:with] sql << " WITH #{with}" end if join = opts[:join] join.each{|j| sql << literal(j)} end if where = opts[:where] sql << " WHERE #{literal(where)}" end if group = opts[:group] sql << " GROUP BY #{expression_list(group)}" end if order = opts[:order] sql << " ORDER BY #{expression_list(order)}" end if having = opts[:having] sql << " HAVING #{literal(having)}" end if union = opts[:union] sql << (opts[:union_all] ? \ " UNION ALL #{union.sql}" : " UNION #{union.sql}") elsif intersect = opts[:intersect] sql << (opts[:intersect_all] ? \ " INTERSECT ALL #{intersect.sql}" : " INTERSECT #{intersect.sql}") elsif except = opts[:except] sql << (opts[:except_all] ? \ " EXCEPT ALL #{except.sql}" : " EXCEPT #{except.sql}") end sql end |