Module: ArJdbc::MSSQL::Utils

Included in:
ArJdbc::MSSQL
Defined in:
lib/arjdbc/mssql/utils.rb

Constant Summary collapse

GET_TABLE_NAME_INSERT_UPDATE_RE =
/^\s*(INSERT|EXEC sp_executesql N'INSERT)\s+INTO\s+([^\(\s,]+)\s*|^\s*update\s+([^\(\s,]+)\s*/i
GET_TABLE_NAME_FROM_RE =
/\bFROM\s+([^\(\)\s,]+)\s*/i

Class Method Summary collapse

Class Method Details

.get_table_name(sql, qualified = nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/arjdbc/mssql/utils.rb', line 13

def get_table_name(sql, qualified = nil)
  if sql =~ GET_TABLE_NAME_INSERT_UPDATE_RE
    tn = $2 || $3
    qualified ? tn : unqualify_table_name(tn)
  elsif sql =~ GET_TABLE_NAME_FROM_RE
    qualified ? $1 : unqualify_table_name($1)
  else
    nil
  end
end

.unqualify_db_name(table_name) ⇒ Object



46
47
48
49
# File 'lib/arjdbc/mssql/utils.rb', line 46

def unqualify_db_name(table_name)
  table_names = table_name.to_s.split('.')
  table_names.length == 3 ? table_names.first.tr('[]', '') : nil
end

.unqualify_table_name(table_name) ⇒ Object



38
39
40
# File 'lib/arjdbc/mssql/utils.rb', line 38

def unqualify_table_name(table_name)
  table_name.to_s.split('.').last.tr('[]', '')
end

.unqualify_table_schema(table_name) ⇒ Object



42
43
44
# File 'lib/arjdbc/mssql/utils.rb', line 42

def unqualify_table_schema(table_name)
  table_name.to_s.split('.')[-2].gsub(/[\[\]]/, '') rescue nil
end

.unquote_column_name(column_name) ⇒ Object



30
31
32
# File 'lib/arjdbc/mssql/utils.rb', line 30

def unquote_column_name(column_name)
  column_name.to_s.tr('[]', '')
end

.unquote_string(string) ⇒ Object



34
35
36
# File 'lib/arjdbc/mssql/utils.rb', line 34

def unquote_string(string)
  string.to_s.gsub("''", "'")
end

.unquote_table_name(table_name) ⇒ Object

protected



26
27
28
# File 'lib/arjdbc/mssql/utils.rb', line 26

def unquote_table_name(table_name)
  unquote_column_name(table_name)
end