Namespace (schema name) in DB (ERROR)
| From: | Rezende Rodrigo | Date: | Tue, 09 Dec 2003 17:35:26 +0000 |
| Subject: | Namespace (schema name) in DB (ERROR) | ||
| Groups: | php.pear.dev | ||
| Request: | Send a blank email to pear-dev+get-24312@lists.php.net to get a copy of this message | ||
Hello,
When I use schema name in DB, occurrs various errors.
Then, see the modifications bellow:
DB/common.php :
(Original version replace dot with '_' this is an error, because postgres
uses schema.sequence_name)
function getSequenceName($sqn)
{
/***************************************************************************
*********************************/
return sprintf($this->getOption("seqname_format"),
preg_replace('/[^a-z0-9._]/i', '_', $sqn));
/***************************************************************************
*********************************/
}
DB/pgsql.php :
/**
* Returns the query needed to get some backend info
* @param string $type What kind of info you want to retrieve
* @return string The SQL query string
*/
function getSpecialQuery($type)
{
switch ($type) {
/***************************************************************************
*********************************/
/*START BUG : TOGO MODIFICATION!!! */
case 'tables': {
$sql = "SELECT n.nspname || '.' || c.relname as \"Name\"
FROM pg_class c, pg_user u, pg_namespace n
WHERE
c.relnamespace = n.oid
AND c.relowner = u.usesysid
AND c.relkind = 'r'
AND not exists (select 1 from pg_views where
viewname = c.relname)
AND c.relname !~ '^pg_'
UNION
SELECT c.relname as \"Name\"
FROM pg_class c
WHERE c.relkind = 'r'
AND not exists (select 1 from pg_views where
viewname = c.relname)
AND not exists (select 1 from pg_user where usesysid
= c.relowner)
AND c.relname !~ '^pg_'";
break;
}
/*END BUG : TOGO MODIFICATION!!! */
/***************************************************************************
*********************************/
case 'views': {
// Table cols: viewname | viewowner | definition
$sql = "SELECT viewname FROM pg_views";
break;
}
case 'users': {
// cols: usename
|usesysid|usecreatedb|usetrace|usesuper|usecatupd|passwd |valuntil
$sql = 'SELECT usename FROM pg_user';
break;
}
case 'databases': {
$sql = 'SELECT datname FROM pg_database';
break;
}
case 'functions': {
$sql = 'SELECT proname FROM pg_proc';
break;
}
default:
return null;
}
return $sql;
}
// }}}
}
Thanks,
Rodrigo Carvalho Rezende
http://www.togoworks.com/