
FusqlFS::Backend::PgSQL::Role::Base - abstract PostgreSQL configuration complexity for FusqlFS::Backend::PgSQL::Role::* classes

package FusqlFS::Backend::PgSQL::Role::Acl;
use parent 'FusqlFS::Backend::PgSQL::Role::Base';
sub init
{
my $self = shift;
my $relkind = shift;
my @kind = $self->kind($relkind);
# initialize instance
}

This class hides configuration complexity for FusqlFS::Backend::PgSQL::Role::* family of modules including FusqlFS::Backend::PgSQL::Role::Acl and FusqlFS::Backend::PgSQL::Role::Owner.
Its single method kind() accepts single character argument designating the kind of referenced database artifact and returns a number of configuration parameters to construct correct SQL statements for the artifact's kind. The possible values of this argument are:
rTable (a.k.a. relation).
iTable's index.
SSequence.
vView.
_FFunction (a.k.a. stored procedure).
_LLanguage.
If list context kind() method returns a list of ($kind, $pfx, $table, $filter) where
$kindis the name of artifact type, e.g. TABLE, INDEX, SEQUENCE, VIEW, FUNCTION or LANGUAGE,
$pfxis the prefix for fields in pg_catalog schema's table with data of the artifact type, e.g. rel for pg_class or pro for pg_proc,
$tableis the table in pg_catalog schema with information about artifacts of this kind, e.g. pg_class, pg_proc or pg_language,
$nameis the SQL statement to get artifact's name (usually it's just ${pfx}name, but can be rather different, e.g. in case of functions), use this instead of self-composed name fields in both WHERE and SELECT expressions.
$filteris the additional WHERE clause for pg_class table to filter data by required relkind field value, contains empty string for tables other than pg_class.
In scalar context this method returns hashref with keys named kind, pfx, table, name, filter and values as described above, so this hashref is usable with FusqlFS::Artifact/hprintf method.