forked from php/php-src
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add some example functions for mysql users.
- Loading branch information
Yasuo Ohgaki
committed
Oct 2, 2002
1 parent
82e7bea
commit 2745e8b
Showing
1 changed file
with
82 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
<?php | ||
/* | ||
* File: mysql_users.php | ||
* Author: Yasuo Ohgaki <[email protected]> | ||
* | ||
* This file contains example user defined functions that does | ||
* similar to MySQL functions. They can be implemented as module | ||
* functions, but there won't be many users need them. | ||
* | ||
* Requires: PostgreSQL 7.2.x | ||
*/ | ||
|
||
/* | ||
* mysql_list_dbs() | ||
* | ||
* This function should be needed, since PostgreSQL connection | ||
* binds database. | ||
*/ | ||
function pg_list_dbs($db) | ||
{ | ||
assert(is_resource($db)); | ||
$query = ' | ||
SELECT | ||
d.datname as "Name", | ||
u.usename as "Owner", | ||
pg_encoding_to_char(d.encoding) as "Encoding" | ||
FROM | ||
pg_database d LEFT JOIN pg_user u ON d.datdba = u.usesysid | ||
ORDER BY 1; | ||
'; | ||
return pg_query($db, $query); | ||
} | ||
|
||
|
||
/* | ||
* mysql_list_tables() | ||
*/ | ||
function pg_list_tables($db) | ||
{ | ||
assert(is_resource($db)); | ||
$query = " | ||
SELECT | ||
c.relname as \"Name\", | ||
CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as \"Type\", | ||
u.usename as \"Owner\" | ||
FROM | ||
pg_class c LEFT JOIN pg_user u ON c.relowner = u.usesysid | ||
WHERE | ||
c.relkind IN ('r','v','S','') | ||
AND c.relname !~ '^pg_' | ||
ORDER BY 1; | ||
"; | ||
return pg_query($db, $query); | ||
} | ||
|
||
/* | ||
* mysql_list_fields() | ||
* | ||
* See also pg_meta_data(). It returns field defintion as array. | ||
*/ | ||
function pg_list_fields($db, $table) | ||
{ | ||
assert(is_resource($db)); | ||
$query = " | ||
SELECT | ||
a.attname, | ||
format_type(a.atttypid, a.atttypmod), | ||
a.attnotnull, | ||
a.atthasdef, | ||
a.attnum | ||
FROM | ||
pg_class c, | ||
pg_attribute a | ||
WHERE | ||
c.relname = '".$table."' | ||
AND a.attnum > 0 AND a.attrelid = c.oid | ||
ORDER BY a.attnum; | ||
"; | ||
return pg_query($db, $query); | ||
} | ||
|
||
?> |