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