summaryrefslogtreecommitdiff
path: root/ext/pgsql/mysql_users.php
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /ext/pgsql/mysql_users.php
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
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 0000000..65a2c33
--- /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);
+}
+
+?>