Unterstützung für PostgreSQL 12
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 20 Feb 2020 11:55:06 +0000 (12:55 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 20 Feb 2020 11:56:36 +0000 (12:56 +0100)
Das Format von `pg_attrdef` wurde in PostgreSQL 12 deutlich geändert;
die Spalte `adsrc` gibt es nicht mehr. Für den Auth-Code ist
allerdings nur interessant, ob es Spalte X in Tabelle Y bereits
gibt. Also auch nur genau diese Informationen auslesen.

SL/Auth/ColumnInformation.pm

index 64b600d..024b0cf 100644 (file)
@@ -27,16 +27,14 @@ sub _fetch {
 
   foreach my $table (qw(session session_content)) {
     my $query = <<SQL;
-      SELECT a.attname, format_type(a.atttypid, a.atttypmod) AS format_type, d.adsrc, a.attnotnull
-      FROM pg_attribute a
-      LEFT JOIN pg_attrdef d ON (a.attrelid = d.adrelid) AND (a.attnum = d.adnum)
-      WHERE (a.attrelid = 'auth.${table}'::regclass)
-        AND (a.attnum > 0)
-        AND NOT a.attisdropped
-      ORDER BY a.attnum
+      SELECT attname
+      FROM pg_attribute
+      WHERE (attrelid = 'auth.${table}'::regclass)
+        AND (attnum > 0)
+        AND NOT attisdropped
 SQL
 
-    $self->{info}->{$table} = { selectall_as_map($::form, $self->{auth}->dbconnect, $query, 'attname', [ qw(format_type adsrc attnotnull) ]) };
+    $self->{info}->{$table} = { selectall_as_map($::form, $self->{auth}->dbconnect, $query, 'attname', [ qw(attname) ]) };
   }
 
   return $self;