Hallo,
ein Kollege machte mich auf ein Problemchen aufmerksam im Zusammenhang mit eGroupwareupdates und unserer eingesetzten Postgres-Datenbank.
PGSQL “meckert” an einer bestimmten Stelle und das Upgrade der DB wird nicht durchgeführt.
Es geht hier einfach um das Hochkomma (’) in “…’%$sTableName%_seq’::text)’…”, welches einen Fehler produziert.
Hierzu das Diff, das den Fehler behebt.
diff egroupware/phpgwapi/inc/class.schema_proc.inc.php /usr/share/egroupware/phpgwapi/inc/class.schema_proc.inc.php
397,398c397,398
< $seq = $this->adodb->GetOne(“SELECT d.adsrc FROM pg_attribute a, pg_class c, pg_attrdef d WHERE c.relname=’$sTableName’ AND c.oid=d.adrelid AND d.adsrc LIKE ‘%seq_$sTableName::text’ AND a.attrelid=c.oid AND d.adnum=a.attnum”);
< $seq2 = $this->adodb->GetOne(“SELECT d.adsrc FROM pg_attribute a, pg_class c, pg_attrdef d WHERE c.relname=’$sTableName’ AND c.oid=d.adrelid AND d.adsrc LIKE ‘%$sTableName%_seq::text’ AND a.attrelid=c.oid AND d.adnum=a.attnum”);
$seq = $this->adodb->GetOne(“SELECT d.adsrc FROM pg_attribute a, pg_class c, pg_attrdef d WHERE c.relname=’$sTableName’ AND c.oid=d.adrelid AND d.adsrc LIKE ‘%seq_$sTableName’::text)’ AND a.attrelid=c.oid AND d.adnum=a.attnum”);
$seq2 = $this->adodb->GetOne(“SELECT d.adsrc FROM pg_attribute a, pg_class c, pg_attrdef d WHERE c.relname=’$sTableName’ AND c.oid=d.adrelid AND d.adsrc LIKE ‘%$sTableName%_seq’::text)’ AND a.attrelid=c.oid AND d.adnum=a.attnum”);
Wir setzen folgende eGroupware-Version ein: 1.8.004.20130322
Vielleicht kann dieser Fix ja Eingang in die Sourcen finden.
Viele Grüße
Manfred