Sha256: f3eaafe080a12c923822b0b3fb18fdae3d239ede326282984199ab99438f421f

Contents?: true

Size: 1.32 KB

Versions: 6

Compression:

Stored size: 1.32 KB

Contents

module VerticaUtils
  class VerticaSql
  
    def self.create_table_stmt options

      sql = "CREATE TABLE IF NOT EXISTS #{options[:vertica_db]}."
      sql += "#{options[:vertica_schema]}." if options[:vertica_schema]
      sql += "#{options[:table]} ("

      index = 1
      primary_set = false

      options[:columns].each do |column|
        sql += "\"#{column['column_name']}\" "

        sql += data_type(column['data_type'], column['column_type'])
        sql += " "

        if column['column_key'] == "PRI"
          sql += key(column['column_key']) + " " unless primary_set # set only one primary key
          primary_set = true
        end

        sql += nullable(column['is_nullable'])
        sql += " "

        if index < options[:columns].size
          sql += ", "
        else
          sql += ");"
        end
        index += 1
      end
 
      puts sql
    
      return sql
    end
  
    def self.nullable is_nullable
      if is_nullable == "YES"
        return "NULL"
      elsif is_nullable == "NO"
        return "NOT NULL"
      end
      return ""
    end
 
    def self.data_type type, col_type
      type = VerticaTypes.convert type, col_type
      result = " #{type} "
      return result
    end

    def self.key col_key
      col_key = VerticaTypes.convert_key col_key
      return  "#{col_key} "
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
myreplicator-1.1.9 lib/loader/vertica/vertica_sql.rb~
myreplicator-1.1.7 lib/loader/vertica/vertica_sql.rb~
myreplicator-1.1.6 lib/loader/vertica/vertica_sql.rb~
myreplicator-1.1.3 lib/loader/vertica/vertica_sql.rb~
myreplicator-1.1.2 lib/loader/vertica/vertica_sql.rb~
myreplicator-1.1.0 lib/loader/vertica/vertica_sql.rb~