Files
metasploit-gs/lib/rex/post/postgresql/ui/console/command_dispatcher/client.rb
T

50 lines
1.5 KiB
Ruby

# -*- coding: binary -*-
require 'rex/post/sql/ui/console/command_dispatcher/client'
module Rex
module Post
module PostgreSQL
module Ui
###
#
# Core PostgreSQL client commands
#
###
class Console::CommandDispatcher::Client
include Rex::Post::Sql::Ui::Console::CommandDispatcher::Client
include Rex::Post::PostgreSQL::Ui::Console::CommandDispatcher
# @return [String]
def name
'PostgreSQL Client'
end
# @return [Object]
def cmd_query_help
print_line 'Usage: query'
print_line
print_line 'Run a single SQL query on the target.'
print_line @@query_opts.usage
print_line 'Examples:'
print_line
print_line ' query SELECT user;'
print_line ' query SELECT version();'
print_line ' query SELECT * FROM pg_catalog.pg_tables;'
print_line
end
# @param [Msf::Db::PostgresPR::Connection] result The PostgreSQL query result
# @return [Hash] Hash containing rows, columns and errors.
def normalise_sql_result(result)
# PostgreSQL errors are handled by raising an exception when querying,
# meaning we don't have that in the Result object.
{ rows: result.rows, columns: result.fields.each.map(&:name), errors: [] }
end
end
end
end
end
end