]> git.joonet.de Git - adminer.git/commitdiff
Prepare PostgreSQL routines (thanks to Martin Major)
authorJakub Vrana <jakub@vrana.cz>
Fri, 3 Jun 2011 13:52:55 +0000 (15:52 +0200)
committerJakub Vrana <jakub@vrana.cz>
Fri, 3 Jun 2011 13:52:55 +0000 (15:52 +0200)
adminer/drivers/pgsql.inc.php

index c9fe0e03e3232943dc48567211d2589dc37dba78..5ae76025794bbe6a9d0796052d08b1799ab6bd6b 100644 (file)
@@ -442,6 +442,32 @@ WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name = " . q($table) //! t
                );
        }
        
+       /*
+       function routine($name, $type) {
+               //! there can be more functions with the same name differing only in parameters, it must be also passed to DROP FUNCTION
+               //! no procedures, only functions
+               //! different syntax of CREATE FUNCTION
+               $rows = get_rows('SELECT pg_catalog.format_type(p.prorettype, NULL) AS "returns", p.prosrc AS "definition"
+FROM pg_catalog.pg_namespace n
+JOIN pg_catalog.pg_proc p ON p.pronamespace = n.oid
+WHERE n.nspname = current_schema() AND p.proname = ' . q($name));
+               $rows[0]["fields"] = array(); //!
+               return $rows[0];
+       }
+       */
+       
+       function routines() {
+               return get_rows('SELECT p.proname AS "ROUTINE_NAME", p.proargtypes AS "ROUTINE_TYPE", pg_catalog.format_type(p.prorettype, NULL) AS "DTD_IDENTIFIER"
+FROM pg_catalog.pg_namespace n
+JOIN pg_catalog.pg_proc p ON p.pronamespace = n.oid
+WHERE n.nspname = current_schema()
+ORDER BY p.proname');
+       }
+       
+       function routine_languages() {
+               return get_vals("SELECT langname FROM pg_catalog.pg_language");
+       }
+       
        function begin() {
                return queries("BEGIN");
        }