Module: ActiveRecord::ConnectionAdapters::Redshift::Quoting
- Included in:
 - ActiveRecord::ConnectionAdapters::RedshiftAdapter
 
- Defined in:
 - lib/active_record/connection_adapters/redshift/quoting.rb
 
Instance Method Summary collapse
- 
  
    
      #escape_bytea(value)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Escapes binary strings for bytea input to the database.
 - 
  
    
      #quote_column_name(name)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Quotes column names for use in SQL queries.
 - 
  
    
      #quote_default_value(value, column)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Does not quote function default values for UUID columns.
 - 
  
    
      #quote_schema_name(name)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Quotes schema names for use in SQL queries.
 - 
  
    
      #quote_string(s)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Quotes strings for use in SQL input.
 - 
  
    
      #quote_table_name(name)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Checks the following cases:.
 - #quote_table_name_for_assignment(table, attr) ⇒ Object
 - 
  
    
      #quoted_date(value)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Quote date/time values for use in SQL input.
 - 
  
    
      #unescape_bytea(value)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Unescapes bytea output from a database to the binary string it represents.
 
Instance Method Details
#escape_bytea(value) ⇒ Object
Escapes binary strings for bytea input to the database.
      6 7 8  | 
    
      # File 'lib/active_record/connection_adapters/redshift/quoting.rb', line 6 def escape_bytea(value) @connection.escape_bytea(value) if value end  | 
  
#quote_column_name(name) ⇒ Object
Quotes column names for use in SQL queries.
      39 40 41  | 
    
      # File 'lib/active_record/connection_adapters/redshift/quoting.rb', line 39 def quote_column_name(name) #:nodoc: PG::Connection.quote_ident(name.to_s) end  | 
  
#quote_default_value(value, column) ⇒ Object
Does not quote function default values for UUID columns
      60 61 62 63 64 65 66  | 
    
      # File 'lib/active_record/connection_adapters/redshift/quoting.rb', line 60 def quote_default_value(value, column) #:nodoc: if column.type == :uuid && value =~ /\(\)/ value else quote(value, column) end end  | 
  
#quote_schema_name(name) ⇒ Object
Quotes schema names for use in SQL queries.
      44 45 46  | 
    
      # File 'lib/active_record/connection_adapters/redshift/quoting.rb', line 44 def quote_schema_name(name) PG::Connection.quote_ident(name) end  | 
  
#quote_string(s) ⇒ Object
Quotes strings for use in SQL input.
      18 19 20  | 
    
      # File 'lib/active_record/connection_adapters/redshift/quoting.rb', line 18 def quote_string(s) #:nodoc: @connection.escape(s) end  | 
  
#quote_table_name(name) ⇒ Object
Checks the following cases:
- 
table_name
 - 
“table.name”
 - 
schema_name.table_name
 - 
schema_name.“table.name”
 - 
“schema.name”.table_name
 - 
“schema.name”.“table.name”
 
      30 31 32  | 
    
      # File 'lib/active_record/connection_adapters/redshift/quoting.rb', line 30 def quote_table_name(name) Utils.extract_schema_qualified_name(name.to_s).quoted end  | 
  
#quote_table_name_for_assignment(table, attr) ⇒ Object
      34 35 36  | 
    
      # File 'lib/active_record/connection_adapters/redshift/quoting.rb', line 34 def quote_table_name_for_assignment(table, attr) quote_column_name(attr) end  | 
  
#quoted_date(value) ⇒ Object
Quote date/time values for use in SQL input.
      49 50 51 52 53 54 55 56 57  | 
    
      # File 'lib/active_record/connection_adapters/redshift/quoting.rb', line 49 def quoted_date(value) #:nodoc: result = super if value.year <= 0 bce_year = format("%04d", -value.year + 1) result = result.sub(/^-?\d+/, bce_year) + " BC" end result end  | 
  
#unescape_bytea(value) ⇒ Object
Unescapes bytea output from a database to the binary string it represents. NOTE: This is NOT an inverse of escape_bytea! This is only to be used on escaped binary output from database drive.
      13 14 15  | 
    
      # File 'lib/active_record/connection_adapters/redshift/quoting.rb', line 13 def unescape_bytea(value) @connection.unescape_bytea(value) if value end  |