The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Dimedis::SqlDriver::Pg - Postgres Treiber für das Dimedis::Sql Modul

SYNOPSIS

use Dimedis::Sql;

DESCRIPTION

siehe Dimedis::Sql

BESONDERHEITEN DER POSTGRESQL IMPLEMENTIERUNG

SERIAL BEHANDLUNG

Der 'serial' Datentyp wird mit Sequences realisiert. Dabei wird für jede Tabelle automatisch eine Sequence verwaltet, deren Name sich wie folgt zusammensetzt:

        ${table}_SEQ

Wenn die Sequence noch nicht existiert, wird sie automatisch angelegt. Die Zählung beginnt dabei mit 100.

Der 'serial' Datentyp muß bei Postgres also als integer angelegt werden.

Es gibt zwar auch einen eigenen Datentyp 'serial' in PostgreSQL, der die Serial auch genau über eine Sequence realisiert. Hier wurde aber eine eigene Implementierung vorgenommen, weil diese mit leichten Änderungen von Oracle übernommen werden konnte und das Problemm, "welche ID wurde zuletzt vergeben?", so gleich mit gelöst wurde.

BLOB BEHANDLUNG

Blobs und Clobs werden von Postgres direkt unterstützt, allerdings nicht innerhalb einer Tabelle gespeichert. Stattdessen wird dort eine ObjectID als Integer Wert gespeichert. Beim Anlegen von Blob und Clob Spalten für Postgres müssen diese also als integer Spalten deklariert werden.

Weiterhin muß eine RULE angelegt werden, damit die Blobs beim Löschen aus der Tabelle auch mit gelöscht werden (ähnlich den Triggern bei der Sybase Implementierung):

  create rule "TABELLE_blob_remove" as
      on delete to "TABELLE"
      do select lo_unlink(old.BLOB_SPALTE)

INSTALL METHODE

Für Dimedis::SqlDriver::Pg ist die install Methode leer, d.h. es werden keine Objekte in der Datenbank vorausgesetzt.

USE_DB UND DB_PREFIX METHODE

Beide Methoden sind nicht implementiert, weil PostgreSQL den Wechsel und den Zugriff mehrerer Datenbanken in derselben Connection nicht unterstützt.

AUTOR

Jörn Reder, joern@dimedis.de

COPYRIGHT

Copyright (c) 2001 dimedis GmbH, All Rights Reserved

SEE ALSO

perl(1).

1 POD Error

The following errors were encountered while parsing the POD:

Around line 608:

Non-ASCII character seen before =encoding in 'für'. Assuming CP1252