]> granicus.if.org Git - php/commitdiff
Add some example functions for mysql users.
authorYasuo Ohgaki <yohgaki@php.net>
Wed, 2 Oct 2002 03:32:27 +0000 (03:32 +0000)
committerYasuo Ohgaki <yohgaki@php.net>
Wed, 2 Oct 2002 03:32:27 +0000 (03:32 +0000)
ext/pgsql/mysql_users.php [new file with mode: 0644]

diff --git a/ext/pgsql/mysql_users.php b/ext/pgsql/mysql_users.php
new file mode 100644 (file)
index 0000000..65a2c33
--- /dev/null
@@ -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);
+}
+
+?>