* highlight things on the info stats page
* advanced stats functions
* prevent the user from dropping all the superusers
-* Find links columns in views incorrectly
* getView() isn't schema-aware for 7.3+?
* rename function in 7.2 and below doesn't come back to the correct function
+* Fix sql window being referenced from two different versions of phppgadmin
* A class that implements the DB interface for Postgres
* Note: This class uses ADODB and returns RecordSets.
*
- * $Id: Postgres.php,v 1.216 2004/05/26 14:14:03 chriskl Exp $
+ * $Id: Postgres.php,v 1.217 2004/05/28 07:41:36 chriskl Exp $
*/
// @@@ THOUGHT: What about inherits? ie. use of ONLY???
// Build SQL, excluding system relations as necessary
// Relations
$sql = "
- SELECT CASE WHEN relkind='r' THEN (CASE WHEN EXISTS (SELECT 1 FROM pg_rewrite r WHERE r.ev_class = pc.oid AND r.ev_type = '1') THEN 'VIEW'::VARCHAR ELSE 'TABLE'::VARCHAR END) WHEN relkind='v' THEN 'VIEW' WHEN relkind='S' THEN 'SEQUENCE'::VARCHAR END AS type,
+ SELECT CASE WHEN relkind='r' THEN (CASE WHEN EXISTS (SELECT 1 FROM pg_rewrite r WHERE r.ev_class = pc.oid AND r.ev_type = '1') THEN 'VIEW'::VARCHAR ELSE 'TABLE'::VARCHAR END) WHEN relkind='v' THEN 'VIEW'::VARCHAR WHEN relkind='S' THEN 'SEQUENCE'::VARCHAR END AS type,
pc.oid, NULL::VARCHAR AS schemaname, NULL::VARCHAR AS relname, pc.relname AS name FROM pg_class pc
WHERE relkind IN ('r', 'v', 'S') AND relname ~* '.*{$term}.*'";
if (!$conf['show_system']) $sql .= " AND pc.relname NOT LIKE 'pg\\\\_%'";
// Columns
$sql .= "
UNION ALL
- SELECT 'COLUMN', NULL, NULL, pc.relname, pa.attname FROM pg_class pc,
+ SELECT CASE WHEN relkind='r' THEN (CASE WHEN EXISTS (SELECT 1 FROM pg_rewrite r WHERE r.ev_class = pc.oid AND r.ev_type = '1') THEN 'COLUMNVIEW'::VARCHAR ELSE 'COLUMNTABLE'::VARCHAR END) WHEN relkind='v' THEN 'COLUMNVIEW'::VARCHAR END,
+ NULL, NULL, pc.relname, pa.attname FROM pg_class pc,
pg_attribute pa WHERE pc.oid=pa.attrelid
AND pa.attname ~* '.*{$term}.*' AND pa.attnum > 0 AND pc.relkind IN ('r', 'v')";
if (!$conf['show_system']) $sql .= " AND pc.relname NOT LIKE 'pg\\\\_%'";
* A class that implements the DB interface for Postgres
* Note: This class uses ADODB and returns RecordSets.
*
- * $Id: Postgres73.php,v 1.111 2004/05/26 13:54:43 chriskl Exp $
+ * $Id: Postgres73.php,v 1.112 2004/05/28 07:41:36 chriskl Exp $
*/
// @@@ THOUGHT: What about inherits? ie. use of ONLY???
pn.nspname, NULL, pc.relname FROM pg_catalog.pg_class pc, pg_catalog.pg_namespace pn
WHERE pc.relnamespace=pn.oid AND relkind IN ('r', 'v', 'S') AND relname ILIKE '%{$term}%' {$where}
UNION ALL
- SELECT 'COLUMN', NULL, pn.nspname, pc.relname, pa.attname FROM pg_catalog.pg_class pc, pg_catalog.pg_namespace pn,
+ SELECT CASE WHEN pc.relkind='r' THEN 'COLUMNTABLE' ELSE 'COLUMNVIEW' END, NULL, pn.nspname, pc.relname, pa.attname FROM pg_catalog.pg_class pc, pg_catalog.pg_namespace pn,
pg_catalog.pg_attribute pa WHERE pc.relnamespace=pn.oid AND pc.oid=pa.attrelid
AND pa.attname ILIKE '%{$term}%' AND pa.attnum > 0 AND NOT pa.attisdropped AND pc.relkind IN ('r', 'v') {$where}
UNION ALL
/**
* Manage schemas within a database
*
- * $Id: database.php,v 1.44 2004/05/26 23:40:20 soranzo Exp $
+ * $Id: database.php,v 1.45 2004/05/28 07:41:36 chriskl Exp $
*/
// Include application functions
while (!$rs->EOF) {
// Output a new header if the current type has changed, but not if it's just changed the rule type
if ($rs->f['type'] != $curr) {
- // Short-circuit in the case of changing from table rules to view rules
+ // Short-circuit in the case of changing from table rules to view rules or table cols to view cols
if ($rs->f['type'] == 'RULEVIEW' && $curr == 'RULETABLE') {
$curr = $rs->f['type'];
}
+ elseif ($rs->f['type'] == 'COLUMNVIEW' && $curr == 'COLUMNTABLE') {
+ $curr = $rs->f['type'];
+ }
else {
if ($curr != '') echo "</ul>\n";
$curr = $rs->f['type'];
case 'SEQUENCE':
echo $lang['strsequences'];
break;
- case 'COLUMN':
+ case 'COLUMNTABLE':
+ case 'COLUMNVIEW':
echo $lang['strcolumns'];
break;
case 'INDEX':
echo "<li><a href=\"sequences.php?action=properties&{$misc->href}&schema=", urlencode($rs->f['schemaname']),
"&sequence=", urlencode($rs->f['name']), "\">", $misc->printVal($prefix), _highlight($misc->printVal($rs->f['name']), $_GET['term']), "</a></li>\n";
break;
- case 'COLUMN':
+ case 'COLUMNTABLE':
echo "<li><a href=\"tblproperties.php?{$misc->href}&schema=", urlencode($rs->f['schemaname']), "&table=",
urlencode($rs->f['relname']), "&column=", urlencode($rs->f['name']), "&action=properties\">",
$misc->printVal($prefix), $misc->printVal($rs->f['relname']), '.', _highlight($misc->printVal($rs->f['name']), $_GET['term']), "</a></li>\n";
break;
+ case 'COLUMNVIEW':
+ echo "<li><a href=\"viewproperties.php?{$misc->href}&schema=", urlencode($rs->f['schemaname']), "&view=",
+ urlencode($rs->f['relname']), "&column=", urlencode($rs->f['name']), "&action=properties\">",
+ $misc->printVal($prefix), $misc->printVal($rs->f['relname']), '.', _highlight($misc->printVal($rs->f['name']), $_GET['term']), "</a></li>\n";
+ break;
case 'INDEX':
echo "<li><a href=\"indexes.php?{$misc->href}&schema=", urlencode($rs->f['schemaname']), "&table=",
urlencode($rs->f['relname']), "\">",