.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "AtteanX::Store::DBI 3pm" .TH AtteanX::Store::DBI 3pm "2021-01-21" "perl v5.32.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" AtteanX::Store::DBI \- Database quad\-store .SH "VERSION" .IX Header "VERSION" This document describes AtteanX::Store::DBI version 0.002 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use Attean; \& my $store = Attean\->get_store(\*(AqDBI\*(Aq)\->new( dbh => $dbh ); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" AtteanX::Store::DBI provides a quad-store backed by a relational database. .SH "ATTRIBUTES" .IX Header "ATTRIBUTES" .ie n .IP """dbh""" 4 .el .IP "\f(CWdbh\fR" 4 .IX Item "dbh" .SH "ROLES" .IX Header "ROLES" This class consumes Attean::API::QuadStore, Attean::API::MutableQuadStore, and Attean::API::BulkUpdatableStore. .SH "METHODS" .IX Header "METHODS" .ie n .IP """new ( dbh => $dbh )""" 4 .el .IP "\f(CWnew ( dbh => $dbh )\fR" 4 .IX Item "new ( dbh => $dbh )" Returns a new quad-store object backed by the database referenced by the supplied database handle. .ie n .IP """init()""" 4 .el .IP "\f(CWinit()\fR" 4 .IX Item "init()" Create the tables and indexes required for using the database as a quadstore. .ie n .IP """temporary_store()""" 4 .el .IP "\f(CWtemporary_store()\fR" 4 .IX Item "temporary_store()" Returns a temporary (in-memory, SQLite) store. .ie n .IP """get_quads ( $subject, $predicate, $object, $graph )""" 4 .el .IP "\f(CWget_quads ( $subject, $predicate, $object, $graph )\fR" 4 .IX Item "get_quads ( $subject, $predicate, $object, $graph )" Returns a stream object of all statements matching the specified subject, predicate and objects. Any of the arguments may be undef to match any value, or an \s-1ARRAY\s0 reference of terms that are allowable in the respective quad position. .ie n .IP """count_quads ( $subject, $predicate, $object, $graph )""" 4 .el .IP "\f(CWcount_quads ( $subject, $predicate, $object, $graph )\fR" 4 .IX Item "count_quads ( $subject, $predicate, $object, $graph )" Returns the count of all statements matching the specified subject, predicate and objects. Any of the arguments may be undef to match any value, or an \s-1ARRAY\s0 reference of terms that are allowable in the respective quad position. .ie n .IP """get_graphs""" 4 .el .IP "\f(CWget_graphs\fR" 4 .IX Item "get_graphs" Returns an iterator over the Attean::API::Term objects comprising the set of graphs of the stored quads. .ie n .IP """add_quad ( $quad )""" 4 .el .IP "\f(CWadd_quad ( $quad )\fR" 4 .IX Item "add_quad ( $quad )" Adds the specified \f(CW$quad\fR to the underlying model. .ie n .IP """remove_quad ( $statement )""" 4 .el .IP "\f(CWremove_quad ( $statement )\fR" 4 .IX Item "remove_quad ( $statement )" Removes the specified \f(CW$statement\fR from the underlying model. .ie n .IP """create_graph( $graph )""" 4 .el .IP "\f(CWcreate_graph( $graph )\fR" 4 .IX Item "create_graph( $graph )" This is a no-op function for the memory quad-store. .ie n .IP """drop_graph( $graph )""" 4 .el .IP "\f(CWdrop_graph( $graph )\fR" 4 .IX Item "drop_graph( $graph )" Removes all quads with the given \f(CW$graph\fR. .ie n .IP """clear_graph( $graph )""" 4 .el .IP "\f(CWclear_graph( $graph )\fR" 4 .IX Item "clear_graph( $graph )" Removes all quads with the given \f(CW$graph\fR. .ie n .IP """begin_transaction""" 4 .el .IP "\f(CWbegin_transaction\fR" 4 .IX Item "begin_transaction" Begin a database transaction. .ie n .IP """abort_transaction""" 4 .el .IP "\f(CWabort_transaction\fR" 4 .IX Item "abort_transaction" Rollback the current database transaction. .ie n .IP """end_transaction""" 4 .el .IP "\f(CWend_transaction\fR" 4 .IX Item "end_transaction" Commit the current database transaction. .ie n .IP """begin_bulk_updates""" 4 .el .IP "\f(CWbegin_bulk_updates\fR" 4 .IX Item "begin_bulk_updates" Begin a database transaction. .ie n .IP """end_bulk_updates""" 4 .el .IP "\f(CWend_bulk_updates\fR" 4 .IX Item "end_bulk_updates" Commit the current database transaction. .ie n .IP """database_type""" 4 .el .IP "\f(CWdatabase_type\fR" 4 .IX Item "database_type" Returns the database type name as a string (e.g. 'mysql', 'sqlite', or 'postgresql'). .ie n .IP """initialize_version""" 4 .el .IP "\f(CWinitialize_version\fR" 4 .IX Item "initialize_version" Insert data into the attean_version table. .ie n .IP """create_schema_file""" 4 .el .IP "\f(CWcreate_schema_file\fR" 4 .IX Item "create_schema_file" Returns the path to the file containing the database \s-1DDL\s0 for quadstore creation for the current database type if available, undef otherwise. .ie n .IP """drop_schema_file""" 4 .el .IP "\f(CWdrop_schema_file\fR" 4 .IX Item "drop_schema_file" Returns the path to the file containing the database \s-1DDL\s0 for quadstore deletion for the current database type if available, undef otherwise. .ie n .IP """available_database_types""" 4 .el .IP "\f(CWavailable_database_types\fR" 4 .IX Item "available_database_types" Returns the names of the database types for which the system has schemas available to create and drop quadstore tables. .ie n .IP """dbi_connect_args ( $type, %args )""" 4 .el .IP "\f(CWdbi_connect_args ( $type, %args )\fR" 4 .IX Item "dbi_connect_args ( $type, %args )" .PD 0 .ie n .IP """dbi_connect_args ( %args )""" 4 .el .IP "\f(CWdbi_connect_args ( %args )\fR" 4 .IX Item "dbi_connect_args ( %args )" .PD Returns a quad \f(CW\*(C`$dsn, $user, $password, \e%connect_args\*(C'\fR suitable for passing to \f(CW\*(C`DBI\->connect\*(C'\fR to obtain a database handle to be used in constructing a \f(CW\*(C`AtteanX::Store::DBI\*(C'\fR quadstore. .Sp \&\f(CW%args\fR must contain a value for the \f(CW\*(C`database\*(C'\fR key. It may also contain values for the optional keys: \f(CW\*(C`user\*(C'\fR, \f(CW\*(C`password\*(C'\fR, \&\f(CW\*(C`host\*(C'\fR, and \f(CW\*(C`port\*(C'\fR. .Sp If invoked as a class method, the \f(CW$type\fR parameter is required, and must be one of the database types returned by \f(CW\*(C`available_database_types\*(C'\fR. .Sp If invoked as an object method, the \f(CW$type\fR parameter must not be included; this information will be obtained directly from the \&\f(CW\*(C`AtteanX::Store::DBI\*(C'\fR object. .ie n .IP """plans_for_algebra( $algebra, $model, $active_graphs, $default_graphs )""" 4 .el .IP "\f(CWplans_for_algebra( $algebra, $model, $active_graphs, $default_graphs )\fR" 4 .IX Item "plans_for_algebra( $algebra, $model, $active_graphs, $default_graphs )" For \s-1BGP\s0 algebras, returns a DBI-specific Attean::API::Plan object, otherwise returns undef. .ie n .IP """cost_for_plan( $plan )""" 4 .el .IP "\f(CWcost_for_plan( $plan )\fR" 4 .IX Item "cost_for_plan( $plan )" Returns the estimated cost for a DBI-specific query plan, undef otherwise. .SH "BUGS" .IX Header "BUGS" Please report any bugs or feature requests to through the GitHub web interface at . .SH "AUTHOR" .IX Header "AUTHOR" Gregory Todd Williams \f(CW\*(C`\*(C'\fR .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2014\-\-2020 Gregory Todd Williams. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.