class Blazer::Adapters::PrestoAdapter

Public Instance Methods

preview_statement() click to toggle source
# File lib/blazer/adapters/presto_adapter.rb, line 24
def preview_statement
  "SELECT * FROM {table} LIMIT 10"
end
run_statement(statement, comment) click to toggle source
# File lib/blazer/adapters/presto_adapter.rb, line 4
def run_statement(statement, comment)
  columns = []
  rows = []
  error = nil

  begin
    columns, rows = client.run("#{statement} /*#{comment}*/")
    columns = columns.map(&:name)
  rescue => e
    error = e.message
  end

  [columns, rows, error]
end
tables() click to toggle source
# File lib/blazer/adapters/presto_adapter.rb, line 19
def tables
  _, rows = client.run("SHOW TABLES")
  rows.map(&:first)
end

Protected Instance Methods

client() click to toggle source
# File lib/blazer/adapters/presto_adapter.rb, line 30
def client
  @client ||= begin
    uri = URI.parse(settings["url"])
    query = uri.query ? CGI::parse(uri.query) : {}
    Presto::Client.new(
      server: "#{uri.host}:#{uri.port}",
      catalog: uri.path.to_s.sub(/\A\//, ""),
      schema: query["schema"] || "public",
      user: uri.user,
      http_debug: false
    )
  end
end