Module: Sequel::MSSQL::DatasetMethods
- Includes:
- Dataset::UnsupportedIntersectExcept
- Defined in:
- lib/sequel_core/adapters/shared/mssql.rb
Constant Summary collapse
- SELECT_CLAUSE_ORDER =
%w'limit distinct columns from with join where group order having compounds'.freeze
Instance Method Summary collapse
- #complex_expression_sql(op, args) ⇒ Object
- #full_text_search(cols, terms, opts = {}) ⇒ Object
- #literal(v) ⇒ Object
- #multi_insert_sql(columns, values) ⇒ Object
-
#nolock ⇒ Object
Allows you to do .nolock on a query.
- #quoted_identifier(name) ⇒ Object
Methods included from Dataset::UnsupportedIntersectExcept
Instance Method Details
#complex_expression_sql(op, args) ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/sequel_core/adapters/shared/mssql.rb', line 42 def complex_expression_sql(op, args) case op when :'||' super(:+, args) else super(op, args) end end |
#full_text_search(cols, terms, opts = {}) ⇒ Object
51 52 53 |
# File 'lib/sequel_core/adapters/shared/mssql.rb', line 51 def full_text_search(cols, terms, opts = {}) filter("CONTAINS (#{literal(cols)}, #{literal(terms)})") end |
#literal(v) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/sequel_core/adapters/shared/mssql.rb', line 55 def literal(v) case v when LiteralString v when String "N#{super}" when Time literal(v.iso8601) when Date, DateTime literal(v.to_s) else super end end |
#multi_insert_sql(columns, values) ⇒ Object
70 71 72 73 |
# File 'lib/sequel_core/adapters/shared/mssql.rb', line 70 def multi_insert_sql(columns, values) values = values.map {|r| "SELECT #{expression_list(r)}" }.join(" UNION ALL ") ["INSERT INTO #{source_list(@opts[:from])} (#{identifier_list(columns)}) #{values}"] end |
#nolock ⇒ Object
Allows you to do .nolock on a query
76 77 78 |
# File 'lib/sequel_core/adapters/shared/mssql.rb', line 76 def nolock clone(:with => "(NOLOCK)") end |
#quoted_identifier(name) ⇒ Object
80 81 82 |
# File 'lib/sequel_core/adapters/shared/mssql.rb', line 80 def quoted_identifier(name) "[#{name}]" end |