Module: Sequel::MSAccess::DatasetMethods

Includes:
Dataset::UnsupportedIntersectExcept
Defined in:
lib/sequel_core/adapters/shared/ms_access.rb

Constant Summary collapse

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

Instance Method Summary collapse

Methods included from Dataset::UnsupportedIntersectExcept

#except, #intersect

Instance Method Details

#complex_expression_sql(op, args) ⇒ Object



55
56
57
58
59
60
61
62
# File 'lib/sequel_core/adapters/shared/ms_access.rb', line 55

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

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



64
65
66
# File 'lib/sequel_core/adapters/shared/ms_access.rb', line 64

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

#literal(v) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/sequel_core/adapters/shared/ms_access.rb', line 68

def literal(v)
  case v
  when Time
    literal(v.iso8601)
  when Date, DateTime
    literal(v.to_s)
  when TrueClass
    'TRUE'
  when FalseClass
    'FALSE'
  else
    super
  end
end

#multi_insert_sql(columns, values) ⇒ Object



83
84
85
86
# File 'lib/sequel_core/adapters/shared/ms_access.rb', line 83

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



89
90
91
# File 'lib/sequel_core/adapters/shared/ms_access.rb', line 89

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

#quoted_identifier(name) ⇒ Object



93
94
95
# File 'lib/sequel_core/adapters/shared/ms_access.rb', line 93

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