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
- .get_table_name(sql, qualified = nil) ⇒ Object
- .unqualify_db_name(table_name) ⇒ Object
- .unqualify_table_name(table_name) ⇒ Object
- .unqualify_table_schema(table_name) ⇒ Object
- .unquote_column_name(column_name) ⇒ Object
- .unquote_string(string) ⇒ Object
-
.unquote_table_name(table_name) ⇒ Object
protected.
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 |