module ActiveRecord::QueryMethods

Constants

VALID_COPY_OPTIONS
VALID_COPY_SWITCHES
VALID_SPECIAL_COPY_OPTIONS
VALID_SPECIAL_UNLOAD_OPTIONS
VALID_UNLOAD_OPTIONS
VALID_UNLOAD_SWITCHES

UNLOAD (‘select_statement’) TO ‘s3_path’

WITH

CREDENTIALS [AS] ‘aws_access_credentials’

option [ …

]

where option is

{ DELIMITER [ AS ] ‘delimiter_char’ | FIXEDWIDTH [ AS ] ‘fixedwidth_spec’ }

| ENCRYPTED | GZIP

| ADDQUOTES | NULL [ AS ] ‘null_string’ | ESCAPE | ALLOWOVERWRITE

VALID_UNQUOTED_COPY_OPTIONS
VALID_UNQUOTED_UNLOAD_OPTIONS

Public Instance Methods

copy(to_s3_filename, *options) click to toggle source

| ACCEPTINVCHARS [ AS ] [‘replacement_char’] | MAXERROR [ AS ] error_count | DATEFORMAT [ AS ] { ‘dateformat_string’ | ‘auto’ } | TIMEFORMAT [ AS ] { ‘timeformat_string’ | ‘auto’ | ‘epochsecs’ | ‘epochmillisecs’ } | IGNOREHEADER [ AS ] number_rows | ACCEPTANYDATE | IGNOREBLANKLINES | TRUNCATECOLUMNS | FILLRECORD | TRIMBLANKS | NOLOAD | NULL [ AS ] ‘null_string’ | EMPTYASNULL | BLANKSASNULL | COMPROWS numrows | COMPUPDATE [ { ON | TRUE } | { OFF | FALSE } ] | STATUPDATE [ { ON | TRUE } | { OFF | FALSE } ] | ESCAPE | ROUNDEC

# File lib/monkeypatch_activerecord.rb, line 180
def copy(to_s3_filename, *options)
  if options.last.is_a? Hash
    options_hash = options.last
  else
    options_hash = {}
  end

  credentials, copy_options =
    ::ActiveRecord::QueryMethods::CopyUnloadParser.parse_options(options, options_hash,
                                                                 VALID_COPY_SWITCHES, VALID_COPY_OPTIONS, VALID_UNQUOTED_COPY_OPTIONS, VALID_SPECIAL_COPY_OPTIONS)


  conncection.execute(Arel::Nodes::CopyStatement.new(Arel::Nodes::Copy.new(table_name, to_s3_filename), copy_options.join(" ")).to_sql)
end
unload(to_s3_filename, *options) click to toggle source
# File lib/monkeypatch_activerecord.rb, line 86
def unload(to_s3_filename, *options)
  if options.last.is_a? Hash
    options_hash = options.last
  else
    options_hash = {}
  end

  credentials, unload_options =
    ActiveRecord::QueryMethods::CopyUnloadParser.parse_options(options, options_hash,
                                                               VALID_UNLOAD_SWITCHES, VALID_UNLOAD_OPTIONS, VALID_UNQUOTED_UNLOAD_OPTIONS, VALID_SPECIAL_UNLOAD_OPTIONS)


  relation = Arel::Nodes::UnloadStatement.new(Arel::Nodes::Unload.new(Arel::Nodes::Relation.new(clone), to_s3_filename), unload_options.join(" "))
  relation
end