class Myreplicator::VerticaUtils

Public Class Methods

get_grants(*args) click to toggle source

Example: get_grant({:db => “bidw”, :schema => “king”, :table => “customer”})

# File lib/loader/vertica/vertica_utils.rb, line 5
def get_grants *args
  options = args.extract_options!
  db = options[:db]
  schema = options[:schema]
  table = options[:table]
  sql = "SELECT * FROM grants WHERE object_schema = '#{schema}' AND object_name = '#{table}';"
  result = Myreplicator::DB.exec_sql("vertica",sql)
  sqls = []
  result.entries.each do |priv|
    privilege = priv[:privileges_description]
    grantee = priv[:grantee]
    begin
      sql = "GRANT #{privilege} ON #{schema}.#{table} TO #{grantee};"
      sqls << sql
      puts sql
    rescue Exception => e
      puts e.message
    end
  end
  return sqls
end
load_grants_from_file(f) click to toggle source
# File lib/loader/vertica/vertica_utils.rb, line 51
def load_grants_from_file f
  file = Rails.root.join('tmp', f)
  file = File.open(filename, "r")
  sqls = file.readlines
  file.close()
  return sqls
end
save_grants_to_file(*args) click to toggle source

Example: save_grants_to_file({:sqls => [“GRANT ..”,“GRANT …”], :file=>“grants.txt”})

# File lib/loader/vertica/vertica_utils.rb, line 40
def save_grants_to_file *args
  options = args.extract_options!
  sqls = options[:sqls]
  filename = Rails.root.join('tmp', options[:file])
  file = File.open(filename, "w+")
  sqls.each do |sql|
    file.puts sql.to_s
  end
  file.close()
end
set_grants(sqls) click to toggle source

Example: set_grants sqls

# File lib/loader/vertica/vertica_utils.rb, line 28
def set_grants sqls
  sqls.each do |sql|
    begin
      puts sql
      Myreplicator::DB.exec_sql("vertica",sql)
    rescue Exception => e
      puts e.message
    end
  end
end