drill_adapter.rb 606 B

12345678910111213141516171819202122232425262728
  1. module Blazer
  2. module Adapters
  3. class DrillAdapter < BaseAdapter
  4. def run_statement(statement, comment)
  5. columns = []
  6. rows = []
  7. error = nil
  8. begin
  9. # remove trailing semicolon
  10. response = drill.query(statement.sub(/;\s*\z/, ""))
  11. rows = response.map { |r| r.values }
  12. columns = rows.any? ? response.first.keys : []
  13. rescue => e
  14. error = e.message
  15. end
  16. [columns, rows, error]
  17. end
  18. private
  19. def drill
  20. @drill ||= ::Drill.new(url: settings["url"])
  21. end
  22. end
  23. end
  24. end