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

Methods included from Dataset::UnsupportedIntersectExcept

#except, #intersect

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

#nolockObject

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