class RedshiftConnector::UnloadQuery

Public Class Methods

new(query:, bundle:, enable_sort: false) click to toggle source
# File lib/redshift_connector/query.rb, line 51
def initialize(query:, bundle:, enable_sort: false)
  @query = query
  @bundle = bundle
  @enable_sort = enable_sort
end
wrap(query:, bundle:, enable_sort: false) click to toggle source
# File lib/redshift_connector/query.rb, line 47
def UnloadQuery.wrap(query:, bundle:, enable_sort: false)
  new(query: ArbitraryQuery.new(query), bundle: bundle, enable_sort: enable_sort)
end

Public Instance Methods

description() click to toggle source
# File lib/redshift_connector/query.rb, line 61
def description
  @query.description
end
escape_query(query) click to toggle source
# File lib/redshift_connector/query.rb, line 77
def escape_query(query)
  query.gsub("'", "\\\\'")
end
table_spec() click to toggle source
# File lib/redshift_connector/query.rb, line 57
def table_spec
  @query.table_spec
end
to_sql() click to toggle source
# File lib/redshift_connector/query.rb, line 65
    def to_sql
      <<-EndSQL.gsub(/^\s+/, '')
        unload ('#{escape_query(@query.to_sql)}')
        to '#{@bundle.url}'
        credentials '#{@bundle.credential_string}'
        gzip
        allowoverwrite
        parallel #{@enable_sort ? 'off' : 'on'}
        delimiter ',' escape addquotes
      EndSQL
    end