Module: Sequel::MSSQL::DatasetMethods

Defined in:
lib/sequel/adapters/shared/mssql.rb

Constant Summary collapse

SELECT_CLAUSE_ORDER =
%w'with limit distinct columns from table_options join where group order having compounds'.freeze

Instance Method Summary collapse

Instance Method Details

#complex_expression_sql(op, args) ⇒ Object



51
52
53
54
55
56
57
58
# File 'lib/sequel/adapters/shared/mssql.rb', line 51

def complex_expression_sql(op, args)
  case op
  when :'||'
    super(:+, args)
  else
    super(op, args)
  end
end

#full_text_search(cols, terms, opts = {}) ⇒ Object



60
61
62
# File 'lib/sequel/adapters/shared/mssql.rb', line 60

def full_text_search(cols, terms, opts = {})
  filter("CONTAINS (#{literal(cols)}, #{literal(terms)})")
end

#multi_insert_sql(columns, values) ⇒ Object



64
65
66
67
# File 'lib/sequel/adapters/shared/mssql.rb', line 64

def multi_insert_sql(columns, values)
  values = values.map {|r| "SELECT #{expression_list(r)}" }.join(" UNION ALL ")
  ["#{insert_sql_base}#{source_list(@opts[:from])} (#{identifier_list(columns)}) #{values}"]
end

#nolockObject

Allows you to do .nolock on a query



70
71
72
# File 'lib/sequel/adapters/shared/mssql.rb', line 70

def nolock
  clone(:table_options => "(NOLOCK)")
end

#quoted_identifier(name) ⇒ Object



74
75
76
# File 'lib/sequel/adapters/shared/mssql.rb', line 74

def quoted_identifier(name)
  "[#{name}]"
end

#supports_intersect_except?Boolean

Microsoft SQL Server does not support INTERSECT or EXCEPT

Returns:

  • (Boolean)


79
80
81
# File 'lib/sequel/adapters/shared/mssql.rb', line 79

def supports_intersect_except?
  false
end

#supports_window_functions?Boolean

MSSQL 2005+ supports window functions

Returns:

  • (Boolean)


84
85
86
# File 'lib/sequel/adapters/shared/mssql.rb', line 84

def supports_window_functions?
  true
end