---
name: "Tangram::Driver::Pg"
section: "3pm"
platform: "linux"
package: "libtangram-perl"
version: "2.12-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Tangram::Driver::Pg"
---

# Tangram::Driver::Pg(3pm)

Orthogonal Object Persistence in PostgreSQL databases

## NAME

Tangram::Driver::Pg - Orthogonal Object Persistence in PostgreSQL databases

## SYNOPSIS

```
   use Tangram;
   use Tangram::Driver::Pg;
   $schema = Tangram::Driver::Pg->schema( $hashref );
   Tangram::Driver::Pg->deploy($schema, $dbh);
   $storage = Tangram::Driver::Pg->connect( $schema,
      $data_source, $username, $password );
   $storage->disconnect();
   Tangram::Driver::Pg->retreat($schema, $dbh);
```

## DESCRIPTION

This is the entry point in the Pg-specific object-relational persistence backend.

This module performs the following:

## METHODS

This backend does not add any methods; for a description of available methods, see Tangram::Relational.

## ERRATA

Tangram::Type::Dump::Storable objects are first encoded with MIME::Base64, because Tangram does not currently have an easy mechanism for calling `"DBI->bind_param()"` at the appropriate time to flag the column as binary.

Tangram::Type::Dump::Perl objects are stored as `"BYTEA"` columns, which as of DBD::Pg 1.31, also do not get correctly escaped by the DBD driver.  This also affects the (as-yet not fully functional) Tangram::Type::Dump::YAML back-end, which might put `"\"` characters into a YAML document.

It is recommended to use the `"storable"` type with Tangram::Type::Dump::Any for this reason.
