|
From: Benjamin C. <bc...@us...> - 2002-03-29 18:25:41
|
Update of /cvsroot/phpbt/phpbt/inc/db
In directory usw-pr-cvs1:/tmp/cvs-serv20053/inc/db
Modified Files:
mysql.php pgsql.php
Added Files:
oci8.php
Log Message:
Database independence... ooo-eee!
--- NEW FILE: oci8.php ---
<?php
$QUERY = array(
'admin-list-groups' => 'select ag.group_id, ag.group_name, ag.locked, '.
'count(ug.group_id) as count '.
'from '.TBL_AUTH_GROUP.' ag, '.TBL_USER_GROUP.' ug,'.TBL_AUTH_USER.' au '.
'where ag.group_id = ug.group_id(+) and ug.user_id = au.user_id(+) '.
'group by ag.group_id, ag.group_name, ag.locked '.
'order by %s %s',
'admin-list-oses' => 'select s.os_id, s.os_name, s.regex, s.sort_order, '.
'count(b.bug_id) as bug_count '.
'from '.TBL_OS.' s, '.TBL_BUG.' b '.
'where s.os_id = b.os_id(+) '.
'group by s.os_id, s.os_name, s.regex, s.sort_order '.
'order by s.%s %s',
'admin-show-version' => 'select v.*, p.project_name as project_name '.
'from '.TBL_VERSION.' v, '.TBL_PROJECT.' p '.
'where p.project_id = v.project_id(+) and version_id = \'%s\'',
'admin-show-component' => 'select c.*, p.project_name as project_name '.
'from '.TBL_COMPONENT.' c, '.TBL_PROJECT.' p '.
'where p.project_id = c.project_id(+) and component_id = \'%s\'',
'admin-list-resolutions' => 'select s.resolution_id, resolution_name, '.
'resolution_desc, sort_order, count(bug_id) as bug_count '.
'from '.TBL_RESOLUTION.' s, '.TBL_BUG.' b '.
'where s.resolution_id = b.resolution_id(+) '.
'group by s.resolution_id, resolution_name, resolution_desc, sort_order '.
'order by %s %s',
'admin-list-severities' => 'select s.severity_id, severity_name, '.
'severity_desc, severity_color, sort_order, count(bug_id) as bug_count '.
'from '.TBL_SEVERITY.' s, '.TBL_BUG.' b '.
'where s.severity_id = b.severity_id(+) '.
'group by s.severity_id, severity_name, severity_desc, severity_color, '.
'sort_order '.
'order by %s %s',
'admin-list-statuses' => 'select s.status_id, status_name, status_desc, '.
'sort_order, count(bug_id) as bug_count '.
'from '.TBL_STATUS.' s, '.TBL_BUG.' b '.
'where s.status_id = b.status_id(+) '.
'group by s.status_id, status_name, status_desc, sort_order '.
'order by %s %s',
'admin-user-groups' => 'select ug.group_id '.
'from '.TBL_USER_GROUP.' ug, ' . TBL_AUTH_GROUP.' g '.
'where g.group_id = ug.group_id(+) and user_id = %s '.
'and group_name <> \'User\'',
'bug-history' => 'select bh.*, login '.
'from '.TBL_BUG_HISTORY.' bh, '.TBL_AUTH_USER .
' where user_id = bh.created_by(+) and bug_id = %s',
'bug-cc-list' => 'select email '.
'from '.TBL_BUG_CC.' bc, ' . TBL_AUTH_USER.' u, ' . TBL_USER_PREF.' p '.
'where u.user_id = bc.user_id(+) and u.user_id = p.user_id '.
'and email_notices = 1 and bug_id = %s',
'bug-printable' => 'select b.*, reporter.login as reporter, '.
'owner.login as owner, p.project_name, c.component_name, '.
'v.version_name, s.severity_name, o.os_name, s.status_name, '.
'r.resolution_name '.
'from '.TBL_BUG.' b, '.TBL_AUTH_USER.' owner, '.
TBL_AUTH_USER.' reporter, '.TBL_RESOLUTION.' r, '.TBL_SEVERITY.' sv, '.
TBL_STATUS. ' st, ' . TBL_OS.' os, '.TBL_VERSION.' v, '.
TBL_COMPONENT.' c, ' . TBL_PROJECT.' p ',
'where b.assigned_to = owner.user_id(+) '.
'and b.created_by = reporter.user_id(+) '.
'and b.resolution_id = r.resolution_id(+) and b.os_id = os.os_id '.
'and b.version_id = v.version_id and b.component_id = c.component_id '.
'and b.project_id = p.project_id and b.severity_id = sv.severity_id '.
'and b.status_id = st.status_id and bug_id = %s',
'bug-prev-next' => 'select b.bug_id, reporter.login as reporter, '.
'owner.login as owner '.
'from '.TBL_BUG.' b, '.TBL_AUTH_USER.' owner, '.TBL_AUTH_USER.' reporter, '.
TBL_AUTH_USER.' lastmodifier, ' . TBL_RESOLUTION.' resolution, '.
TBL_SEVERITY.' severity, ' . TBL_STATUS.' status, '.TBL_OS.' os, '.
TBL_VERSION.' version, '.TBL_COMPONENT.' component, '.
TBL_PROJECT.' project '.
'where b.assigned_to = owner.user_id(+) '.
'and b.created_by = reporter.user_id(+) '.
'and b.last_modified_by = lastmodifier.user_id(+) '.
'and b.resolution_id = resolution.resolution_id(+) '.
'and b.severity_id = severity.severity_id '.
'and b.status_id = status.status_id and b.os_id = os.os_id '.
'and b.version_id = version.version_id '.
'and b.component_id = component.component_id '.
'and b.project_id = project.project_id and %s and bug_id <> %s '.
'order by %s %s, bug_id asc',
'bug-show-bug' => 'select b.*, reporter.login as reporter, '.
'owner.login as owner, r.resolution_name, st.status_name '.
'from '.TBL_BUG.' b, '.TBL_AUTH_USER.' owner, '.TBL_AUTH_USER.' reporter, '.
TBL_RESOLUTION.' r, '.TBL_SEVERITY.' sv, '.TBL_STATUS.' st '.
'where b.resolution_id = r.resolution_id(+) '.
'and b.assigned_to = owner.user_id(+) '.
'and b.created_by = reporter.user_id(+) '.
'and b.severity_id = sv.severity_id and b.status_id = st.status_id '.
'and bug_id = %s',
'functions-bug-cc' => 'select b.user_id, login '.
'from '.TBL_BUG_CC.' b, '. TBL_AUTH_USER.
' where phpbt_auth_user.user_id = b.user_id(+) and bug_id = %s',
'functions-project-js' => 'select p.project_id, project_name '.
'from ' . TBL_PROJECT . ' p, ' . TBL_PROJECT_GROUP . ' pg '.
'where p.project_id = pg.project_id(+) and active = 1 '.
'and (pg.project_id is null or pg.group_id in (%s)) '.
'group by p.project_id, p.project_name order by project_name',
'include-template-owner' => "SELECT sum(decode( s.status_name, 'Unconfirmed', 1, 'New', 1, 'Assigned', 1, 'Reopened', 1, 0 )) ".
'from '.TBL_BUG.' b, '.TBL_STATUS.' s '.
'where b.status_id = s.status_id (+) and b.assigned_to = %s',
'include-template-reporter' => "SELECT sum(decode( s.status_name, 'Unconfirmed', 1, 'New', 1, 'Assigned', 1, 'Reopened', 1, 0 )) ".
'from '.TBL_BUG.' b, ' . TBL_STATUS.' s '.
'where b.status_id = s.status_id (+) and b.created_by = %s',
'index-projsummary-1' => 'select b.project_id, p.project_name as "Project", '.
'sum(decode( b.resolution_id, 0, 1, 0)) as "Open"',
'index-projsummary-2' => "select b.resolution_name, ",
'index-projsummary-3' => "', sum(decode( b.resolution_id, '",
'index-projsummary-4' => "', 1, 0)) as \"'",
'index-projsummary-5' => "from ".TBL_RESOLUTION." b",
'index-projsummary-6' => "%s, count(bug_id) as \"Total\" ".
'from '.TBL_BUG . ' b, '.TBL_PROJECT.' p '.
'where b.project_id = p.project_id(+) and b.project_id not in (%s) '.
'group by b.project_id, p.project_name '.
'order by p.project_name',
'query-list-bugs-count' => 'select count(*) '.
'from '.TBL_BUG.' b, '.TBL_AUTH_USER.' owner, '.TBL_AUTH_USER.' reporter '.
'where b.assigned_to = owner.user_id(+) '.
'and b.created_by = reporter.user_id(+) ',
'query-list-bugs' => 'select b.*, reporter.login as reporter, '.
'owner.login as owner, lastmodifier.login as lastmodifier, '.
'project.project_name, severity.severity_name, severity.severity_color, '.
'status.status_name, os.os_name, version.version_name,'.
'component.component_name, resolution.resolution_name '.
'from '.TBL_BUG.' b, '.TBL_AUTH_USER.' lastmodifier, '.
TBL_AUTH_USER.' owner, '.TBL_AUTH_USER.' reporter, '.
TBL_SEVERITY.' severity, '.TBL_STATUS.' status, '.TBL_OS.' os, '.
TBL_VERSION.' version, '.TBL_COMPONENT.' component, '.
TBL_PROJECT.' project, ' . TBL_RESOLUTION.' resolution '.
'where b.assigned_to = owner.user_id(+) '.
'and b.created_by = reporter.user_id(+) '.
'and b.last_modified_by = lastmodifier.user_id(+) '.
'and b.resolution_id = resolution.resolution_id(+) '.
'and b.severity_id = severity.severity_id '.
'and b.status_id = status.status_id and b.os_id = os.os_id '.
'and b.version_id = version.version_id '.
'and b.component_id = component.component_id '.
'and b.project_id = project.project_id %s '.
'order by %s %s, bug_id asc',
'report-resbyeng-1' => 'select email as "Assigned To", '.
'sum(decode( b.resolution_id, 0, 1, 0)) as "Open"',
'report-resbyeng-2' => "select b.resolution_name, ",
'report-resbyeng-3' => "', sum(decode( b.resolution_id, '",
'report-resbyeng-4' => "', 1, 0)) as \"'",
'report-resbyeng-5' => "from ".TBL_RESOLUTION." b",
'report-resbyeng-6' => '%s, count(bug_id) as "Total" '.
'from '.TBL_BUG . ' b, '.TBL_AUTH_USER.' u '.
'where b.assigned_to = u.user_id(+) %s '.
'group by assigned_to, u.email',
'report-resbyeng-where' => 'and',
);
?>
Index: mysql.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/inc/db/mysql.php,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mysql.php 30 Nov 2001 06:06:17 -0000 1.1
+++ mysql.php 29 Mar 2002 18:25:38 -0000 1.2
@@ -1,426 +1,149 @@
<?php
-/*
- * Session Management for PHP3
- *
- * Copyright (c) 1998,1999 NetUSE GmbH
- * Boris Erdmann, Kristian Koehntopp
- *
- * db_sql.inc,v 1.12 2001/10/12 16:19:29 layne_weathers
- *
- */
-class DB_Sql {
-
- /* public: connection parameters */
- var $Host = "";
- var $Database = "";
- var $User = "";
- var $Password = "";
+$QUERY = array(
+ 'admin-list-groups' => 'select ag.group_id, group_name, locked, '.
+ 'count(ug.group_id) as count '.
+ 'from '.TBL_AUTH_GROUP.' ag '.
+ 'left join '.TBL_USER_GROUP.' ug using (group_id) '.
+ 'left join '.TBL_AUTH_USER.' using (user_id) '.
+ 'group by ag.group_id, group_name, locked '.
+ 'order by %s %s',
+ 'admin-list-oses' => 'select s.os_id, os_name, regex, sort_order, '.
+ 'count(bug_id) as bug_count '.
+ 'from '.TBL_OS.' s '.
+ 'left join '.TBL_BUG.' using (os_id) '.
+ 'group by s.os_id, os_name, regex, sort_order '.
+ 'order by %s %s',
+ 'admin-show-version' => 'select v.*, p.project_name as project_name '.
+ 'from '.TBL_VERSION.' v left join '.TBL_PROJECT.' p using(project_id) '.
+ 'where version_id = \'%s\'',
+ 'admin-show-component' => 'select c.*, p.project_name as project_name '.
+ 'from '.TBL_COMPONENT.' c left join '.TBL_PROJECT.' p using (project_id) '.
+ 'where component_id = \'%s\'',
+ 'admin-list-resolutions' => 'select s.resolution_id, resolution_name, '.
+ 'resolution_desc, sort_order, count(bug_id) as bug_count '.
+ 'from '.TBL_RESOLUTION. ' s left join '.TBL_BUG.' using (resolution_id) '.
+ 'group by s.resolution_id, resolution_name, resolution_desc, sort_order '.
+ 'order by %s %s',
+ 'admin-list-severities' => 'select s.severity_id, severity_name, '.
+ 'severity_desc, severity_color, sort_order, count(bug_id) as bug_count '.
+ 'from '.TBL_SEVERITY. ' s left join '.TBL_BUG.' using (severity_id) '.
+ 'group by s.severity_id, severity_name, severity_desc, severity_color, '.
+ 'sort_order '.
+ 'order by %s %s',
+ 'admin-list-statuses' => 'select s.status_id, status_name, status_desc, '.
+ 'sort_order, count(bug_id) as bug_count '.
+ 'from '.TBL_STATUS.' s left join '. TBL_BUG.' using (status_id) '.
+ 'group by s.status_id, status_name, status_desc, sort_order '.
+ 'order by %s %s',
+ 'admin-user-groups' => 'select ug.group_id '.
+ 'from '.TBL_USER_GROUP.' ug left join '.TBL_AUTH_GROUP.' g using (group_id) '.
+ 'where user_id = %s and group_name <> \'User\'',
+ 'bug-history' => 'select bh.*, login '.
+ 'from '.TBL_BUG_HISTORY.' bh '.
+ 'left join '. TBL_AUTH_USER.' on bh.created_by = user_id '.
+ 'where bug_id = %s',
+ 'bug-cc-list' => 'select email '.
+ 'from '.TBL_BUG_CC.' left join '. TBL_AUTH_USER.' u using(user_id), '.
+ TBL_USER_PREF.' p '.
+ 'where bug_id = %s and u.user_id = p.user_id and email_notices = 1',
+ 'bug-printable' => 'select b.*, reporter.login as reporter, '.
+ 'owner.login as owner, project_name, component_name, version_name, '.
+ 'severity_name, os_name, status_name, resolution_name '.
+ 'from '.TBL_BUG.' b '.
+ 'left join '.TBL_AUTH_USER.' owner on b.assigned_to = owner.user_id '.
+ 'left join '.TBL_AUTH_USER.' reporter on b.created_by = reporter.user_id '.
+ 'left join '.TBL_RESOLUTION.' r on b.resolution_id = r.resolution_id, '.
+ TBL_SEVERITY.' sv, '.TBL_STATUS.' st, '.TBL_OS.' os, '. TBL_VERSION.' v, '.
+ TBL_COMPONENT.' c, '.TBL_PROJECT.' p '.
+ 'where bug_id = %s and b.severity_id = sv.severity_id '.
+ 'and b.os_id = os.os_id and b.version_id = v.version_id '.
+ 'and b.component_id = c.component_id and b.project_id = p.project_id '.
+ 'and b.status_id = st.status_id',
+ 'bug-prev-next' => 'select bug_id, reporter.login as reporter, '.
+ 'owner.login as owner '.
+ 'from '.TBL_BUG.' b '.
+ 'left join '.TBL_AUTH_USER.' owner on b.assigned_to = owner.user_id '.
+ 'left join '.TBL_AUTH_USER.' reporter on b.created_by = reporter.user_id '.
+ 'left join '.TBL_AUTH_USER.' lastmodifier on b.last_modified_by = lastmodifier.user_id '.
+ 'left join '.TBL_RESOLUTION.' resolution on b.resolution_id = resolution.resolution_id, '.
+ TBL_SEVERITY.' severity, '.TBL_STATUS.' status, '.TBL_OS.' os, '.
+ TBL_VERSION.' version, '.TBL_COMPONENT.' component, '.TBL_PROJECT.' project '.
+ 'where b.severity_id = severity.severity_id '.
+ 'and b.status_id = status.status_id and b.os_id = os.os_id '.
+ 'and b.version_id = version.version_id '.
+ 'and b.component_id = component.component_id '.
+ 'and b.project_id = project.project_id and %s '.
+ 'and bug_id <> %s '.
+ 'order by %s %s, bug_id asc',
+ 'bug-show-bug' => 'select b.*, reporter.login as reporter, '.
+ 'owner.login as owner, status_name, resolution_name '.
+ 'from '.TBL_BUG.' b '.
+ 'left join '.TBL_AUTH_USER.' owner on b.assigned_to = owner.user_id '.
+ 'left join '.TBL_AUTH_USER.' reporter on b.created_by = reporter.user_id '.
+ 'left join '.TBL_RESOLUTION.' r on b.resolution_id = r.resolution_id, '.
+ TBL_SEVERITY.' sv, '.TBL_STATUS.' st '.
+ 'where bug_id = %s and b.severity_id = sv.severity_id '.
+ 'and b.status_id = st.status_id',
+ 'functions-bug-cc' => 'select b.user_id, login '.
+ 'from '.TBL_BUG_CC.' b left join '. TBL_AUTH_USER.' using(user_id) '.
+ 'where bug_id = %s',
+ 'functions-project-js' => 'select p.project_id, project_name '.
+ 'from '.TBL_PROJECT. ' p '.
+ 'left join '.TBL_PROJECT_GROUP.' pg using(project_id) '.
+ 'where active = 1 and (pg.project_id is null or pg.group_id in (%s)) '.
+ 'group by p.project_id, p.project_name '.
+ 'order by project_name',
+ 'include-template-owner' => "SELECT sum(CASE WHEN status_name in ('Unconfirmed','New','Assigned','Reopened') THEN 1 ELSE 0 END ) , ".
+ "sum(CASE WHEN status_name not in ('Unconfirmed','New','Assigned','Reopened') THEN 1 ELSE 0 END ) ".
+ "from ".TBL_BUG." b left join ".TBL_STATUS." s using(status_id) ".
+ "where assigned_to = %s",
+ 'include-template-reporter' => "SELECT sum(CASE WHEN status_name in ('Unconfirmed','New','Assigned','Reopened') THEN 1 ELSE 0 END ) , ".
+ "sum(CASE WHEN status_name not in ('Unconfirmed','New','Assigned','Reopened') THEN 1 ELSE 0 END ) ".
+ "from ".TBL_BUG." b left join ".TBL_STATUS." s using(status_id) ".
+ "where created_by = %s",
+ 'index-projsummary-1' => 'select project_name as "Project", '.
+ 'sum(case when resolution_id = 0 then 1 else 0 end) as "Open"',
+ 'index-projsummary-2' => "select resolution_name, ",
+ 'index-projsummary-3' => "', sum(case when resolution_id = '",
+ 'index-projsummary-4' => "' then 1 else 0 end) as \"'",
+ 'index-projsummary-5' => " from ".TBL_RESOLUTION,
+ 'index-projsummary-6' => '%s, count(bug_id) as "Total" '.
+ 'from '.TBL_BUG. ' b left join '.TBL_PROJECT.' p using (project_id) '.
+ 'where b.project_id not in (%s) group by b.project_id, project_name '.
+ 'order by project_name',
+ 'query-list-bugs-count' => 'select count(*) '.
+ 'from '.TBL_BUG.' b '.
+ 'left join '.TBL_AUTH_USER.' owner on b.assigned_to = owner.user_id '.
+ 'left join '.TBL_AUTH_USER.' reporter on b.created_by = reporter.user_id ',
+ 'query-list-bugs' => 'select b.*, reporter.login as reporter, '.
+ 'owner.login as owner, lastmodifier.login as lastmodifier, '.
+ 'project_name, severity_name, severity_color, status_name, '.
+ 'os_name, version_name, component_name, resolution_name '.
+ 'from '.TBL_BUG.' b '.
+ 'left join '.TBL_AUTH_USER.' owner on b.assigned_to = owner.user_id '.
+ 'left join '.TBL_AUTH_USER.' reporter on b.created_by = reporter.user_id '.
+ 'left join '.TBL_AUTH_USER.' lastmodifier on b.last_modified_by = lastmodifier.user_id '.
+ 'left join '.TBL_RESOLUTION.' resolution on b.resolution_id = resolution.resolution_id, '.
+ TBL_SEVERITY.' severity, '.TBL_STATUS.' status, '.TBL_OS.' os, '.
+ TBL_VERSION.' version, '.TBL_COMPONENT.' component, '.TBL_PROJECT.' project '.
+ 'where b.severity_id = severity.severity_id '.
+ 'and b.status_id = status.status_id and b.os_id = os.os_id '.
+ 'and b.version_id = version.version_id '.
+ 'and b.component_id = component.component_id '.
+ 'and b.project_id = project.project_id %s '.
+ 'order by %s %s, bug_id asc',
+ 'report-resbyeng-1' => 'select email as "Assigned To", '.
+ 'sum(case when resolution_id = 0 then 1 else 0 end) as "Open"',
+ 'report-resbyeng-2' => "select resolution_name, ",
+ 'report-resbyeng-3' => "', sum(case when resolution_id = '",
+ 'report-resbyeng-4' => "' then 1 else 0 end) as \"'",
+ 'report-resbyeng-5' => " from ".TBL_RESOLUTION,
+ 'report-resbyeng-6' => '%s, count(bug_id) as "Total" '.
+ 'from '.TBL_BUG. ' b '.
+ 'left join '.TBL_AUTH_USER.' u on assigned_to = user_id %s '.
+ 'group by assigned_to, u.email',
+ 'report-resbyeng-where' => 'where',
+ );
- /* public: configuration parameters */
- var $Auto_Free = 0; ## Set to 1 to automatically free results
- var $Debug = 0; ## Set to 1 for debugging messages
- var $Halt_On_Error = "yes"; ## "yes" (halt with message), "no" (ignore errors quietly), "report" (ignore error, but spit a warning)
- var $Seq_Table = "db_sequence"; ## Name of the sequence table
- var $Seq_ID_Col = "p_nextid"; ## Name of the Sequence ID column in $Seq_Table
- var $Seq_Name_Col = "p_seq_name"; ## Name of the Sequence Name column in $Seq_Table
-
- /* public: result array and current row number */
- var $Record = array();
- var $Row = 0;
-
- /* public: current error number and error text */
- var $Errno = 0;
- var $Error = "";
-
- /* public: this is an api revision, not a CVS revision. */
- var $type = "mysql";
- var $revision = "1.2";
-
- /* private: link and query handles */
- var $Link_ID = 0;
- var $Query_ID = 0;
-
-
- /* public: constructor */
- function DB_Sql($query = "") {
- $this->query($query);
- }
-
- /* public: some trivial reporting */
- function link_id() {
- return $this->Link_ID;
- }
-
- function query_id() {
- return $this->Query_ID;
- }
-
- /* public: connection management */
- function connect($Database = "", $Host = "", $User = "", $Password = "") {
- /* Handle defaults */
- if ("" == $Database)
- $Database = $this->Database;
- if ("" == $Host)
- $Host = $this->Host;
- if ("" == $User)
- $User = $this->User;
- if ("" == $Password)
- $Password = $this->Password;
-
- /* establish connection, select database */
- if ( 0 == $this->Link_ID ) {
- $this->Link_ID=mysql_pconnect($Host, $User, $Password);
- if (!$this->Link_ID) {
- $this->halt("pconnect($Host, $User, \$Password) failed.");
- return 0;
- }
- }
-
- if (!@mysql_select_db($Database,$this->Link_ID)) {
- $this->halt("cannot use database ".$Database);
- return 0;
- }
-
- return $this->Link_ID;
- }
-
- /* public: discard the query result */
- function free() {
- @mysql_free_result($this->Query_ID);
- $this->Query_ID = 0;
- }
-
- /* public: perform a query */
- function query($Query_String) {
- /* No empty queries, please, since PHP4 chokes on them. */
- if ($Query_String == "")
- /* The empty query string is passed on from the constructor,
- * when calling the class without a query, e.g. in situations
- * like these: '$db = new DB_Sql_Subclass;'
- */
- return 0;
-
- if (!$this->connect()) {
- return 0; /* we already complained in connect() about that. */
- }
-
- # New query, discard previous result.
- if ($this->Query_ID) {
- $this->free();
- }
-
- if ($this->Debug)
- printf("Debug: query = %s<br>\n", $Query_String);
-
- $this->Query_ID = @mysql_query($Query_String,$this->Link_ID);
- $this->Row = 0;
- $this->check_error();
- if (!$this->Query_ID) {
- $this->halt("Invalid SQL: ".$Query_String);
- }
-
- # Will return nada if it fails. That's fine.
- return $this->Query_ID;
- }
-
- /* public: walk result set */
- function next_record() {
- if (!$this->Query_ID) {
- $this->halt("next_record called with no query pending.");
- return 0;
- }
-
- $this->Record = @mysql_fetch_array($this->Query_ID);
- $this->Row += 1;
- $this->check_error();
-
- $stat = is_array($this->Record);
- if (!$stat && $this->Auto_Free) {
- $this->free();
- }
- return $stat;
- }
-
- /* public: position in result set */
- function seek($pos = 0) {
- $status = @mysql_data_seek($this->Query_ID, $pos);
- if ($status)
- $this->Row = $pos;
- else {
- $this->halt("seek($pos) failed: result has ".$this->num_rows()." rows.");
-
- /* half assed attempt to save the day,
- * but do not consider this documented or even
- * desirable behaviour.
- */
- @mysql_data_seek($this->Query_ID, $this->num_rows());
- $this->Row = $this->num_rows();
- return 0;
- }
-
- return 1;
- }
-
- /* public: table locking */
- function lock($table, $mode = "write") {
- $query = "lock tables ";
- if (is_array($table)) {
- while (list($key,$value) = each($table)) {
- if (!is_int($key)) {
- // texts key are "read", "read local", "write", "low priority write"
- $query .= "$value $key, ";
- } else {
- $query .= "$value $mode, ";
- }
- }
- $query = substr($query,0,-2);
- } else {
- $query .= "$table $mode";
- }
- $res = $this->query($query);
- if (!$res) {
- $this->halt("lock() failed.");
- return 0;
- }
- return $res;
- }
-
- function unlock() {
- $res = $this->query("unlock tables");
- if (!$res) {
- $this->halt("unlock() failed.");
- }
- return $res;
- }
-
- /* public: evaluate the result (size, width) */
- function affected_rows() {
- return @mysql_affected_rows($this->Link_ID);
- }
-
- function num_rows() {
- return @mysql_num_rows($this->Query_ID);
- }
-
- function num_fields() {
- return @mysql_num_fields($this->Query_ID);
- }
-
- /* public: shorthand notation */
- function nf() {
- return $this->num_rows();
- }
-
- function np() {
- print $this->num_rows();
- }
-
- function f($Name) {
- if (isset($this->Record[$Name])) {
- return $this->Record[$Name];
- }
- return "";
- }
-
- function p($Name) {
- print $this->f($Name);
- }
-
- /* public: sequence numbers */
- function nextid($seq_name) {
- if (!$this->connect()) {
- return 0; /* we already complained in connect() about that. */
- }
-
- if ($this->lock($this->Seq_Table)) {
- /* get sequence number (locked) and increment */
- $q = sprintf("select %s from %s where %s = '%s'",
- $this->Seq_ID_Col,
- $this->Seq_Table,
- $this->Seq_Name_Col,
- $seq_name);
- $id = @mysql_query($q, $this->Link_ID);
- $res = @mysql_fetch_array($id);
-
- /* No current value, make one */
- if (!is_array($res)) {
- $currentid = 0;
- $q = sprintf("insert into %s ( %s, %s ) values('%s', %s)",
- $this->Seq_Table,
- $this->Seq_Name_Col,
- $this->Seq_ID_Col,
- $seq_name,
- $currentid);
- $id = @mysql_query($q, $this->Link_ID);
- } else {
- $currentid = $res[$this->Seq_ID_Col];
- }
- $nextid = $currentid + 1;
- $q = sprintf("update %s set %s = '%s' where %s = '%s'",
- $this->Seq_Table,
- $this->Seq_ID_Col,
- $nextid,
- $this->Seq_Name_Col,
- $seq_name);
- $id = @mysql_query($q, $this->Link_ID);
- $this->unlock();
- } else {
- $this->halt("cannot lock ".$this->Seq_Table." - has it been created?");
- return 0;
- }
- return $nextid;
- }
-
- /* public: return table metadata */
- function metadata($table = "", $full = false) {
- $count = 0;
- $id = 0;
- $res = array();
-
- /*
- * Due to compatibility problems with Table we changed the behavior
- * of metadata();
- * If $full is set, metadata returns additional information
- *
- * This information is always returned:
- * $result[]:
- * [0]["table"] table name
- * [0]["name"] field name
- * [0]["type"] field type
- * [0]["len"] field length
- * [0]["flags"] field flags
- *
- * If $full is set this information is also returned:
- * $result[]:
- * ["num_fields"] number of metadata records
- * [0]["php_type"] the corresponding PHP-type
- * [0]["php_subtype"] the subtype of PHP-type
- * ["meta"][field name] index of field named "field name"
- * This one could be used if you have a field name, but no index.
- * Test: if (isset($result['meta']['myfield'])) { ...
- * [unique] = field names which have an unique key, separated by space
- */
-
- // if no $table specified, assume that we are working with a query result
- if ($table) {
- if (!$this->connect()) {
- return 0; /* we already complained in connect() about that. */
- }
- $id = @mysql_list_fields($this->Database, $table);
- if (!$id) {
- $this->halt("Metadata query failed.");
- return false;
- }
- } else {
- $id = $this->Query_ID;
- if (!$id) {
- $this->halt("No query specified.");
- return false;
- }
- }
-
- $count = @mysql_num_fields($id);
-
- for ($i=0; $i<$count; $i++) {
- $res[$i]["table"] = @mysql_field_table ($id, $i);
- $res[$i]["name"] = @mysql_field_name ($id, $i);
- $res[$i]["type"] = @mysql_field_type ($id, $i);
- $res[$i]["len"] = @mysql_field_len ($id, $i);
- $res[$i]["flags"] = @mysql_field_flags ($id, $i);
- }
-
- if ($full) {
- $uniq = array();
- $res["num_fields"] = $count;
-
- for ($i=0; $i<$count; $i++) {
- $res["meta"][$res[$i]["name"]] = $i;
- switch ($res[$i]["type"]) {
- case "var string":
- case "string" :
- case "char" :
- $res[$i]["php_type"]="string";
- $res[$i]["php_subtype"]="";
- break;
- case "timestamp" :
- case "datetime" :
- case "date" :
- case "time" :
- $res[$i]["php_type"]="string";
- $res[$i]["php_subtype"]="date";
- break;
- case "blob" :
- $res[$i]["php_type"]="string";
- $res[$i]["php_subtype"]="blob";
- break;
- case "real" :
- $res[$i]["php_type"]="double";
- $res[$i]["php_subtype"]="";
- break;
- case "long" :
- default :
- $res[$i]["php_type"]="int";
- $res[$i]["php_subtype"]="";
- break;
- }
- if ( ereg("(unique_key|primary_key)",$res[$i]["flags"]) ) {
- $uniq[]=$res[$i]["name"];
- }
- }
- $res["unique"]=join(" ",$uniq);
- }
-
- // free the result only if we were called on a table
- if ($table) {
- @mysql_free_result($id);
- }
- return $res;
- }
-
- /* public: find available table names */
- function table_names() {
- if (!$this->connect()) {
- return 0; /* we already complained in connect() about that. */
- }
-
- $h = @mysql_query("show tables", $this->Link_ID);
- $i = 0;
- while ($info = @mysql_fetch_row($h)) {
- $return[$i]["table_name"] = $info[0];
- $return[$i]["tablespace_name"] = $this->Database;
- $return[$i]["database"] = $this->Database;
- $i++;
- }
-
- @mysql_free_result($h);
- return $return;
- }
-
- /* private: error handling */
- function check_error() {
- $this->Error = @mysql_error();
- $this->Errno = @mysql_errno();
- }
-
- function halt($msg) {
- $this->Error = @mysql_error($this->Link_ID);
- $this->Errno = @mysql_errno($this->Link_ID);
- if ($this->Halt_On_Error == "no")
- return;
-
- $this->haltmsg($msg);
-
- if ($this->Halt_On_Error != "report")
- die("Session halted.");
- }
-
- function haltmsg($msg) {
- printf("</td></tr></table><b>Database error:</b> %s<br>\n", $msg);
- printf("<b>MySQL Error</b>: %s (%s)<br>\n",
- $this->Errno,
- $this->Error);
- }
-
-}
?>
Index: pgsql.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/inc/db/pgsql.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- pgsql.php 4 Dec 2001 14:32:23 -0000 1.2
+++ pgsql.php 29 Mar 2002 18:25:38 -0000 1.3
@@ -1,229 +1,149 @@
<?php
-/*
- * Session Management for PHP3
- *
- * Copyright (c) 1998,1999 NetUSE GmbH
- * Boris Erdmann, Kristian Koehntopp
- *
- * db_sql.inc,v 1.4 2000/07/01 22:08:35 kir
- *
- */
-class DB_Sql {
- var $Host = "";
- var $Port = "";
- var $Database = "";
- var $User = "";
- var $Password = "";
+$QUERY = array(
+ 'admin-list-groups' => 'select ag.group_id, group_name, locked, '.
+ 'count(ug.group_id) as count '.
+ 'from '.TBL_AUTH_GROUP.' ag '.
+ 'left join '.TBL_USER_GROUP.' ug using (group_id) '.
+ 'left join '.TBL_AUTH_USER.' using (user_id) '.
+ 'group by ag.group_id, group_name, locked '.
+ 'order by %s %s',
+ 'admin-list-oses' => 'select s.os_id, os_name, regex, sort_order, '.
+ 'count(bug_id) as bug_count '.
+ 'from '.TBL_OS.' s '.
+ 'left join '.TBL_BUG.' using (os_id) '.
+ 'group by s.os_id, os_name, regex, sort_order '.
+ 'order by %s %s',
+ 'admin-show-version' => 'select v.*, p.project_name as project_name '.
+ 'from '.TBL_VERSION.' v left join '.TBL_PROJECT.' p using(project_id) '.
+ 'where version_id = \'%s\'',
+ 'admin-show-component' => 'select c.*, p.project_name as project_name '.
+ 'from '.TBL_COMPONENT.' c left join '.TBL_PROJECT.' p using (project_id) '.
+ 'where component_id = \'%s\'',
+ 'admin-list-resolutions' => 'select s.resolution_id, resolution_name, '.
+ 'resolution_desc, sort_order, count(bug_id) as bug_count '.
+ 'from '.TBL_RESOLUTION. ' s left join '.TBL_BUG.' using (resolution_id) '.
+ 'group by s.resolution_id, resolution_name, resolution_desc, sort_order '.
+ 'order by %s %s',
+ 'admin-list-severities' => 'select s.severity_id, severity_name, '.
+ 'severity_desc, severity_color, sort_order, count(bug_id) as bug_count '.
+ 'from '.TBL_SEVERITY. ' s left join '.TBL_BUG.' using (severity_id) '.
+ 'group by s.severity_id, severity_name, severity_desc, severity_color, '.
+ 'sort_order '.
+ 'order by %s %s',
+ 'admin-list-statuses' => 'select s.status_id, status_name, status_desc, '.
+ 'sort_order, count(bug_id) as bug_count '.
+ 'from '.TBL_STATUS.' s left join '. TBL_BUG.' using (status_id) '.
+ 'group by s.status_id, status_name, status_desc, sort_order '.
+ 'order by %s %s',
+ 'admin-user-groups' => 'select ug.group_id '.
+ 'from '.TBL_USER_GROUP.' ug left join '.TBL_AUTH_GROUP.' g using (group_id) '.
+ 'where user_id = %s and group_name <> \'User\'',
+ 'bug-history' => 'select bh.*, login '.
+ 'from '.TBL_BUG_HISTORY.' bh '.
+ 'left join '. TBL_AUTH_USER.' on bh.created_by = user_id '.
+ 'where bug_id = %s',
+ 'bug-cc-list' => 'select email '.
+ 'from '.TBL_BUG_CC.' left join '. TBL_AUTH_USER.' u using(user_id), '.
+ TBL_USER_PREF.' p '.
+ 'where bug_id = %s and u.user_id = p.user_id and email_notices = 1',
+ 'bug-printable' => 'select b.*, reporter.login as reporter, '.
+ 'owner.login as owner, project_name, component_name, version_name, '.
+ 'severity_name, os_name, status_name, resolution_name '.
+ 'from '.TBL_BUG.' b '.
+ 'left join '.TBL_AUTH_USER.' owner on b.assigned_to = owner.user_id '.
+ 'left join '.TBL_AUTH_USER.' reporter on b.created_by = reporter.user_id '.
+ 'left join '.TBL_RESOLUTION.' r on b.resolution_id = r.resolution_id, '.
+ TBL_SEVERITY.' sv, '.TBL_STATUS.' st, '.TBL_OS.' os, '. TBL_VERSION.' v, '.
+ TBL_COMPONENT.' c, '.TBL_PROJECT.' p '.
+ 'where bug_id = %s and b.severity_id = sv.severity_id '.
+ 'and b.os_id = os.os_id and b.version_id = v.version_id '.
+ 'and b.component_id = c.component_id and b.project_id = p.project_id '.
+ 'and b.status_id = st.status_id',
+ 'bug-prev-next' => 'select bug_id, reporter.login as reporter, '.
+ 'owner.login as owner '.
+ 'from '.TBL_BUG.' b '.
+ 'left join '.TBL_AUTH_USER.' owner on b.assigned_to = owner.user_id '.
+ 'left join '.TBL_AUTH_USER.' reporter on b.created_by = reporter.user_id '.
+ 'left join '.TBL_AUTH_USER.' lastmodifier on b.last_modified_by = lastmodifier.user_id '.
+ 'left join '.TBL_RESOLUTION.' resolution on b.resolution_id = resolution.resolution_id, '.
+ TBL_SEVERITY.' severity, '.TBL_STATUS.' status, '.TBL_OS.' os, '.
+ TBL_VERSION.' version, '.TBL_COMPONENT.' component, '.TBL_PROJECT.' project '.
+ 'where b.severity_id = severity.severity_id '.
+ 'and b.status_id = status.status_id and b.os_id = os.os_id '.
+ 'and b.version_id = version.version_id '.
+ 'and b.component_id = component.component_id '.
+ 'and b.project_id = project.project_id and %s '.
+ 'and bug_id <> %s '.
+ 'order by %s %s, bug_id asc',
+ 'bug-show-bug' => 'select b.*, reporter.login as reporter, '.
+ 'owner.login as owner, status_name, resolution_name '.
+ 'from '.TBL_BUG.' b '.
+ 'left join '.TBL_AUTH_USER.' owner on b.assigned_to = owner.user_id '.
+ 'left join '.TBL_AUTH_USER.' reporter on b.created_by = reporter.user_id '.
+ 'left join '.TBL_RESOLUTION.' r on b.resolution_id = r.resolution_id, '.
+ TBL_SEVERITY.' sv, '.TBL_STATUS.' st '.
+ 'where bug_id = %s and b.severity_id = sv.severity_id '.
+ 'and b.status_id = st.status_id',
+ 'functions-bug-cc' => 'select b.user_id, login '.
+ 'from '.TBL_BUG_CC.' b left join '. TBL_AUTH_USER.' using(user_id) '.
+ 'where bug_id = %s',
+ 'functions-project-js' => 'select p.project_id, project_name '.
+ 'from '.TBL_PROJECT. ' p '.
+ 'left join '.TBL_PROJECT_GROUP.' pg using(project_id) '.
+ 'where active = 1 and (pg.project_id is null or pg.group_id in (%s)) '.
+ 'group by p.project_id, p.project_name '.
+ 'order by project_name',
+ 'include-template-owner' => "SELECT sum(CASE WHEN status_name in ('Unconfirmed','New','Assigned','Reopened') THEN 1 ELSE 0 END ) , ".
+ "sum(CASE WHEN status_name not in ('Unconfirmed','New','Assigned','Reopened') THEN 1 ELSE 0 END ) ".
+ "from ".TBL_BUG." b left join ".TBL_STATUS." s using(status_id) ".
+ "where assigned_to = %s",
+ 'include-template-reporter' => "SELECT sum(CASE WHEN status_name in ('Unconfirmed','New','Assigned','Reopened') THEN 1 ELSE 0 END ) , ".
+ "sum(CASE WHEN status_name not in ('Unconfirmed','New','Assigned','Reopened') THEN 1 ELSE 0 END ) ".
+ "from ".TBL_BUG." b left join ".TBL_STATUS." s using(status_id) ".
+ "where created_by = %s",
+ 'index-projsummary-1' => 'select project_name as "Project", '.
+ 'sum(case when resolution_id = 0 then 1 else 0 end) as "Open"',
+ 'index-projsummary-2' => "select resolution_name, ",
+ 'index-projsummary-3' => "', sum(case when resolution_id = '",
+ 'index-projsummary-4' => "' then 1 else 0 end) as \"'",
+ 'index-projsummary-5' => " from ".TBL_RESOLUTION,
+ 'index-projsummary-6' => '%s, count(bug_id) as "Total" '.
+ 'from '.TBL_BUG. ' b left join '.TBL_PROJECT.' p using (project_id) '.
+ 'where b.project_id not in (%s) group by b.project_id, project_name '.
+ 'order by project_name',
+ 'query-list-bugs-count' => 'select count(*) '.
+ 'from '.TBL_BUG.' b '.
+ 'left join '.TBL_AUTH_USER.' owner on b.assigned_to = owner.user_id '.
+ 'left join '.TBL_AUTH_USER.' reporter on b.created_by = reporter.user_id ',
+ 'query-list-bugs' => 'select b.*, reporter.login as reporter, '.
+ 'owner.login as owner, lastmodifier.login as lastmodifier, '.
+ 'project_name, severity_name, severity_color, status_name, '.
+ 'os_name, version_name, component_name, resolution_name '.
+ 'from '.TBL_BUG.' b '.
+ 'left join '.TBL_AUTH_USER.' owner on b.assigned_to = owner.user_id '.
+ 'left join '.TBL_AUTH_USER.' reporter on b.created_by = reporter.user_id '.
+ 'left join '.TBL_AUTH_USER.' lastmodifier on b.last_modified_by = lastmodifier.user_id '.
+ 'left join '.TBL_RESOLUTION.' resolution on b.resolution_id = resolution.resolution_id, '.
+ TBL_SEVERITY.' severity, '.TBL_STATUS.' status, '.TBL_OS.' os, '.
+ TBL_VERSION.' version, '.TBL_COMPONENT.' component, '.TBL_PROJECT.' project '.
+ 'where b.severity_id = severity.severity_id '.
+ 'and b.status_id = status.status_id and b.os_id = os.os_id '.
+ 'and b.version_id = version.version_id '.
+ 'and b.component_id = component.component_id '.
+ 'and b.project_id = project.project_id %s '.
+ 'order by %s %s, bug_id asc',
+ 'report-resbyeng-1' => 'select email as "Assigned To", '.
+ 'sum(case when resolution_id = 0 then 1 else 0 end) as "Open"',
+ 'report-resbyeng-2' => "select resolution_name, ",
+ 'report-resbyeng-3' => "', sum(case when resolution_id = '",
+ 'report-resbyeng-4' => "' then 1 else 0 end) as \"'",
+ 'report-resbyeng-5' => " from ".TBL_RESOLUTION,
+ 'report-resbyeng-6' => '%s, count(bug_id) as "Total" '.
+ 'from '.TBL_BUG. ' b '.
+ 'left join '.TBL_AUTH_USER.' u on assigned_to = user_id %s '.
+ 'group by assigned_to, u.email',
+ 'report-resbyeng-where' => 'where',
+ );
- var $Link_ID = 0;
- var $Query_ID = 0;
- var $Record = array();
- var $Row = 0;
-
- var $Seq_Table = "db_sequence";
-
- var $Errno = 0;
- var $Error = "";
- var $Debug = 0;
-
- var $Auto_Free = 0; # Set this to 1 for automatic pg_freeresult on
- # last record.
-
- function ifadd($add, $me) {
- if("" != $add) return " ".$me.$add;
- }
-
- /* public: constructor */
- function DB_Sql($query = "") {
- $this->query($query);
- }
-
-
- function connect() {
- if ( 0 == $this->Link_ID ) {
- $cstr = "dbname=".$this->Database.
- $this->ifadd($this->Host, "host=").
- $this->ifadd($this->Port, "port=").
- $this->ifadd($this->User, "user=").
- $this->ifadd($this->Password, "password=");
- $this->Link_ID=pg_pconnect($cstr);
- if (!$this->Link_ID) {
- $this->halt("Link-ID == false, pconnect failed");
- }
- }
- }
-
- function query($Query_String) {
-
- /* No empty queries, please, since PHP4 chokes on them. */
- if ($Query_String == "")
- /* The empty query string is passed on from the constructor,
- * when calling the class without a query, e.g. in situations
- * like these: '$db = new DB_Sql_Subclass;'
- */
- return 0;
-
- $this->connect();
-
- if ($this->Debug) printf("<br>Debug: query = %s<br>\n", $Query_String);
-
- $this->Query_ID = pg_Exec($this->Link_ID, $Query_String);
- $this->Row = 0;
-
- $this->Error = pg_ErrorMessage($this->Link_ID);
- $this->Errno = ($this->Error == "")?0:1;
- if (!$this->Query_ID) {
- $this->halt("Invalid SQL: ".$Query_String);
- }
-
- return $this->Query_ID;
- }
-
- function next_record() {
- $this->Record = @pg_fetch_array($this->Query_ID, $this->Row++);
-
- $this->Error = pg_ErrorMessage($this->Link_ID);
- $this->Errno = ($this->Error == "")?0:1;
-
- $stat = is_array($this->Record);
- if (!$stat && $this->Auto_Free) {
- pg_freeresult($this->Query_ID);
- $this->Query_ID = 0;
- }
- return $stat;
- }
-
- function seek($pos) {
- $this->Row = $pos;
- }
-
- function lock($table, $mode = "write") {
- if ($mode == "write") {
- $result = pg_Exec($this->Link_ID, "lock table $table");
- } else {
- $result = 1;
- }
- return $result;
- }
-
- function unlock() {
- return pg_Exec($this->Link_ID, "commit");
- }
-
-
- /* public: sequence numbers */
- function nextid($seq_name) {
- $this->connect();
-
- if ($this->lock($this->Seq_Table)) {
- /* get sequence number (locked) and increment */
- $q = sprintf("select nextid from %s where seq_name = '%s'",
- $this->Seq_Table,
- $seq_name);
- $id = @pg_Exec($this->Link_ID, $q);
- $res = @pg_Fetch_Array($id, 0);
-
- /* No current value, make one */
- if (!is_array($res)) {
- $currentid = 0;
- $q = sprintf("insert into %s values('%s', %s)",
- $this->Seq_Table,
- $seq_name,
- $currentid);
- $id = @pg_Exec($this->Link_ID, $q);
- } else {
- $currentid = $res["nextid"];
- }
- $nextid = $currentid + 1;
- $q = sprintf("update %s set nextid = '%s' where seq_name = '%s'",
- $this->Seq_Table,
- $nextid,
- $seq_name);
- $id = @pg_Exec($this->Link_ID, $q);
- $this->unlock();
- } else {
- $this->halt("cannot lock ".$this->Seq_Table." - has it been created?");
- return 0;
- }
- return $nextid;
- }
-
-
-
- function metadata($table) {
- $count = 0;
- $id = 0;
- $res = array();
-
- $this->connect();
- $id = pg_exec($this->Link_ID, "select * from $table");
- if ($id < 0) {
- $this->Error = pg_ErrorMessage($id);
- $this->Errno = 1;
- $this->halt("Metadata query failed.");
- }
- $count = pg_NumFields($id);
-
- for ($i=0; $i<$count; $i++) {
- $res[$i]["table"] = $table;
- $res[$i]["name"] = pg_FieldName ($id, $i);
- $res[$i]["type"] = pg_FieldType ($id, $i);
- $res[$i]["len"] = pg_FieldSize ($id, $i);
- $res[$i]["flags"] = "";
- }
-
- pg_FreeResult($id);
- return $res;
- }
-
- function affected_rows() {
- return pg_cmdtuples($this->Query_ID);
- }
-
- function num_rows() {
- return pg_numrows($this->Query_ID);
- }
-
- function num_fields() {
- return pg_numfields($this->Query_ID);
- }
-
- function nf() {
- return $this->num_rows();
- }
-
- function np() {
- print $this->num_rows();
- }
-
- function f($Name) {
- return $this->Record[$Name];
- }
-
- function p($Name) {
- print $this->Record[$Name];
- }
-
- function halt($msg) {
- printf("</td></tr></table><b>Database error:</b> %s<br>\n", $msg);
- printf("<b>PostgreSQL Error</b>: %s (%s)<br>\n",
- $this->Errno,
- $this->Error);
- die("Session halted.");
- }
-
- function table_names() {
- $this->query("select relname from pg_class where relkind = 'r' and not relname like 'pg_%'");
- $i=0;
- while ($this->next_record())
- {
- $return[$i]["table_name"]= $this->f(0);
- $return[$i]["tablespace_name"]=$this->Database;
- $return[$i]["database"]=$this->Database;
- $i++;
- }
- return $return;
- }
-}
?>
|