class GeocodeRecords::DumpSqlToCsv
Attributes
database_url[R]
glob[R]
num[R]
subquery[R]
table_name[R]
Public Class Methods
new( database_url:, glob:, table_name: nil, subquery: nil, num: nil )
click to toggle source
# File lib/geocode_records/dump_sql_to_csv.rb, line 9 def initialize( database_url:, glob:, table_name: nil, subquery: nil, num: nil ) @database_url = database_url @glob = glob @table_name = table_name @subquery = subquery @num = num end
Public Instance Methods
perform()
click to toggle source
# File lib/geocode_records/dump_sql_to_csv.rb, line 23 def perform memo = GeocodeRecords.new_tmp_path(subquery || table_name) GeocodeRecords.psql( database_url, "\\copy (#{sql}) TO '#{memo}' DELIMITER ',' CSV HEADER" ) memo end
Private Instance Methods
sql()
click to toggle source
# File lib/geocode_records/dump_sql_to_csv.rb, line 34 def sql @sql ||= begin num_suffix = (num == 1 ? '' : num) unless glob "SELECT id, house_number_and_street#{num_suffix}, city#{num_suffix}, state#{num_suffix}, regexp_replace(postcode#{num_suffix}, '.0$', '') AS postcode#{num_suffix} FROM #{subquery ? "(#{subquery}) t1" : table_name} WHERE city#{num_suffix} IS NOT NULL OR postcode#{num_suffix} IS NOT NULL" else "SELECT id, glob#{num_suffix} FROM #{subquery ? "(#{subquery}) t1" : table_name} WHERE (city#{num_suffix} IS NULL AND postcode#{num_suffix} IS NULL) AND glob#{num_suffix} IS NOT NULL" end end end