summaryrefslogtreecommitdiff
path: root/ext/pgsql/mysql_users.php
diff options
context:
space:
mode:
authorYasuo Ohgaki <yohgaki@php.net>2002-10-02 03:32:27 +0000
committerYasuo Ohgaki <yohgaki@php.net>2002-10-02 03:32:27 +0000
commit2745e8b9b2563b3f12636b63b8d4d403e361674c (patch)
tree649d604d9a75afd52cd0eb52139565bd8ae8a0ee /ext/pgsql/mysql_users.php
parent82e7bea50431aa5eaa289a468970073887ddb9f9 (diff)
downloadphp-git-2745e8b9b2563b3f12636b63b8d4d403e361674c.tar.gz
Add some example functions for mysql users.
Diffstat (limited to 'ext/pgsql/mysql_users.php')
-rw-r--r--ext/pgsql/mysql_users.php82
1 files changed, 82 insertions, 0 deletions
diff --git a/ext/pgsql/mysql_users.php b/ext/pgsql/mysql_users.php
new file mode 100644
index 0000000000..65a2c33967
--- /dev/null
+++ b/ext/pgsql/mysql_users.php
@@ -0,0 +1,82 @@
+<?php
+/*
+ * File: mysql_users.php
+ * Author: Yasuo Ohgaki <yohgaki@php.net>
+ *
+ * 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);
+}
+
+?>