You are here

function DB_pgsql::getSpecialQuery in Flickr API 5

Obtains the query string needed for listing a given type of objects

@access protected

Parameters

string $type the kind of objects you want to retrieve:

Return value

string the SQL query string or null if the driver doesn't support the object type requested

Overrides DB_common::getSpecialQuery

See also

DB_common::getListOf()

File

phpFlickr/PEAR/DB/pgsql.php, line 1039

Class

DB_pgsql
The methods PEAR DB uses to interact with PHP's pgsql extension for interacting with PostgreSQL databases

Code

function getSpecialQuery($type) {
  switch ($type) {
    case 'tables':
      return 'SELECT c.relname AS "Name"' . ' FROM pg_class c, pg_user u' . ' WHERE c.relowner = u.usesysid' . " AND c.relkind = 'r'" . ' AND NOT EXISTS' . ' (SELECT 1 FROM pg_views' . '  WHERE viewname = c.relname)' . " AND c.relname !~ '^(pg_|sql_)'" . ' 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_'";
    case 'schema.tables':
      return "SELECT schemaname || '.' || tablename" . ' AS "Name"' . ' FROM pg_catalog.pg_tables' . ' WHERE schemaname NOT IN' . " ('pg_catalog', 'information_schema', 'pg_toast')";
    case 'views':

      // Table cols: viewname | viewowner | definition
      return 'SELECT viewname from pg_views WHERE schemaname' . " NOT IN ('information_schema', 'pg_catalog')";
    case 'users':

      // cols: usename |usesysid|usecreatedb|usetrace|usesuper|usecatupd|passwd  |valuntil
      return 'SELECT usename FROM pg_user';
    case 'databases':
      return 'SELECT datname FROM pg_database';
    case 'functions':
    case 'procedures':
      return 'SELECT proname FROM pg_proc WHERE proowner <> 1';
    default:
      return null;
  }
}