NAME
Pg::SQL::PrettyPrinter - Pretty printing SQL queries
SYNOPSIS
Formats SQL queries "nicely". To do so it first has to parse it, and for this it's using microservice available over HTTP: https://gitlab.com/depesz/pg-query-parser-microservice.
Usage example:
use Pg::SQL::PrettyPrinter;
my $pp = Pg::SQL::PrettyPrinter->new(
'service' => 'http://127.0.0.1:15283/',
'sql' => 'select 1'
);
my $nice = $pp->pretty_print();
FUNCTIONS
new
Object constructor.
Takes following arguments:
sql : obligatory query that will be pretty-printed
service : usually obligatory url to parsing microservice
struct : data structure that was obtained from the parsing microservice separately
Normally one will provide sql
and service
, but for testing purposes one can skip service
and instead provide struct
, which should be perl hash that is exactly what is being sent from the parser as JSON.
validate_struct
Checks if given structure (either from constructor's struct
field, or obtained after deserializing JSON obtained from parsing microservice) matches some basic assumptions on what should be there.
In case of problems, exception is raised.
parse
Wraps all work related with gettin data from struct
given to constructor, or from parsing sql
into tree of perl objects that will be responsible for pretty printing.
In case anything goes wrong - it will raise an exception.
fetch_struct
Sends sql
that was given to new() call to parsing microservice, deserializes it's output, and calls validate_struct
to make sure that the result is sane.
remove_irrelevant
Removes irrelevant parts of query, like prompts.
AUTHOR
hubert depesz lubaczewski, <depesz at depesz.com>
BUGS
Please report any bugs or feature requests to depesz at depesz.com
.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Pg::SQL::PrettyPrinter