return $self if $self->{info};
- 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.session_content'::regclass)
- AND (a.attnum > 0)
- AND NOT a.attisdropped
- ORDER BY a.attnum
+ $self->{info} = {};
+
+ foreach my $table (qw(session session_content)) {
+ my $query = <<SQL;
+ SELECT attname
+ FROM pg_attribute
+ WHERE (attrelid = 'auth.${table}'::regclass)
+ AND (attnum > 0)
+ AND NOT attisdropped
SQL
- $self->{info} = { 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;
}
}
sub has {
- my ($self, $column) = @_;
- return $self->info->{$column};
+ my ($self, $column, $table) = @_;
+ return $self->info->{$table || 'session_content'}->{$column};
}
1;