Method: Myreplicator::SqlCommands.get_columns

Defined in:
lib/exporter/sql_commands.rb

.get_columns(*args) ⇒ Object

exp: SELECT customer_id,firstname,REPLACE(UPPER(‘lastname`), ’NULL’, ‘ABC’),email,..,REPLACE(‘modified_date`, ’0000-00-00’,‘1900-01-01’),.. FROM king.customer WHERE customer_id in ( 261085,348081,477336 );



126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# File 'lib/exporter/sql_commands.rb', line 126

def self.get_columns * args
  options = args.extract_options!
  #Kernel.p "===== GET COLUMNS OPTIONS ====="
  #Kernel.p options
  #
  exp = Myreplicator::Export.find(options[:export_id])
  #
  mysql_schema = Myreplicator::Loader.mysql_table_definition(options)
  mysql_schema_simple_form = Myreplicator::MysqlExporter.get_mysql_schema_rows mysql_schema
  columns = Myreplicator::VerticaLoader.get_mysql_inserted_columns mysql_schema_simple_form
  #Kernel.p "===== table's columns====="
  #Kernel.p columns
  if !exp.removing_special_chars.blank?
    json = JSON.parse(exp.removing_special_chars)
  else
    json = {}
  end
  #Kernel.p exp.removing_special_chars
  #Kernel.p json
  result = []
  columns.each do |column|
    if !json[column].blank?
      puts json[column]
      replaces = json[column]
      sql = ""
      replaces.each do |k,v|
        if sql.blank?
          sql = "REPLACE(\\`#{column}\\`, '#{k}', '#{v}')"
        else
          sql = "REPLACE(#{sql}, '#{k}', '#{v}')"
        end
        sql.gsub!("back_slash","\\\\\\\\\\")
        #puts sql
      end
      result << sql
    else
      result << "\\`#{column}\\`"
    end
  end
  Kernel.p result
  return result
end