From: Guillaume (ioguix) de Rorthais Date: Wed, 17 Nov 2010 00:21:18 +0000 (+0100) Subject: Fix operator properties page X-Git-Tag: REL_5-0-0~11 X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=1f8f1d5d61c06c0021468d476d0cf3c44203bfee;p=phppgadmin.git Fix operator properties page The pg_operator table changed in 8.3. I hadn't found an appropriate has*() method to reflect this change and its point :( --- diff --git a/classes/database/Postgres.php b/classes/database/Postgres.php index 5e4dba0b..80167f64 100755 --- a/classes/database/Postgres.php +++ b/classes/database/Postgres.php @@ -5148,12 +5148,9 @@ class Postgres extends ADODB_base { oprright::pg_catalog.regtype AS oprrightname, oprresult::pg_catalog.regtype AS resultname, po.oprcanhash, + oprcanmerge, oprcom::pg_catalog.regoperator AS oprcom, oprnegate::pg_catalog.regoperator AS oprnegate, - oprlsortop::pg_catalog.regoperator AS oprlsortop, - oprrsortop::pg_catalog.regoperator AS oprrsortop, - oprltcmpop::pg_catalog.regoperator AS oprltcmpop, - oprgtcmpop::pg_catalog.regoperator AS oprgtcmpop, po.oprcode::pg_catalog.regproc AS oprcode, po.oprrest::pg_catalog.regproc AS oprrest, po.oprjoin::pg_catalog.regproc AS oprjoin diff --git a/classes/database/Postgres82.php b/classes/database/Postgres82.php index c7cf58c1..19e5fd37 100644 --- a/classes/database/Postgres82.php +++ b/classes/database/Postgres82.php @@ -282,6 +282,41 @@ class Postgres82 extends Postgres83 { return $this->execute($sql); } + // Operator functions + + /** + * Returns all details for a particular operator + * @param $operator_oid The oid of the operator + * @return Function info + */ + function getOperator($operator_oid) { + $this->clean($operator_oid); + + $sql = " + SELECT + po.oid, po.oprname, + oprleft::pg_catalog.regtype AS oprleftname, + oprright::pg_catalog.regtype AS oprrightname, + oprresult::pg_catalog.regtype AS resultname, + po.oprcanhash, + oprcom::pg_catalog.regoperator AS oprcom, + oprnegate::pg_catalog.regoperator AS oprnegate, + oprlsortop::pg_catalog.regoperator AS oprlsortop, + oprrsortop::pg_catalog.regoperator AS oprrsortop, + oprltcmpop::pg_catalog.regoperator AS oprltcmpop, + oprgtcmpop::pg_catalog.regoperator AS oprgtcmpop, + po.oprcode::pg_catalog.regproc AS oprcode, + po.oprrest::pg_catalog.regproc AS oprrest, + po.oprjoin::pg_catalog.regproc AS oprjoin + FROM + pg_catalog.pg_operator po + WHERE + po.oid='{$operator_oid}' + "; + + return $this->selectSet($sql); + } + // Operator Class functions /** diff --git a/operators.php b/operators.php index 555ba0ac..14475199 100644 --- a/operators.php +++ b/operators.php @@ -42,18 +42,26 @@ echo "", $misc->printVal($oprdata->fields['oprjoin']), "\n"; echo "{$lang['strhashes']}\n"; echo "", ($oprdata->fields['oprcanhash']) ? $lang['stryes'] : $lang['strno'], "\n"; - echo "{$lang['strmerges']}\n"; - echo "", ($oprdata->fields['oprlsortop'] !== '0' && $oprdata->fields['oprrsortop'] !== '0') ? $lang['stryes'] : $lang['strno'], "\n"; - echo "{$lang['strrestrict']}\n"; - echo "", $misc->printVal($oprdata->fields['oprrest']), "\n"; - echo "{$lang['strleftsort']}\n"; - echo "", $misc->printVal($oprdata->fields['oprlsortop']), "\n"; - echo "{$lang['strrightsort']}\n"; - echo "", $misc->printVal($oprdata->fields['oprrsortop']), "\n"; - echo "{$lang['strlessthan']}\n"; - echo "", $misc->printVal($oprdata->fields['oprltcmpop']), "\n"; - echo "{$lang['strgreaterthan']}\n"; - echo "", $misc->printVal($oprdata->fields['oprgtcmpop']), "\n"; + + /* these field only exists in 8.2 and before in pg_catalog */ + if (isset($oprdata->fields['oprlsortop'])) { + echo "{$lang['strmerges']}\n"; + echo "", ($oprdata->fields['oprlsortop'] !== '0' && $oprdata->fields['oprrsortop'] !== '0') ? $lang['stryes'] : $lang['strno'], "\n"; + echo "{$lang['strrestrict']}\n"; + echo "", $misc->printVal($oprdata->fields['oprrest']), "\n"; + echo "{$lang['strleftsort']}\n"; + echo "", $misc->printVal($oprdata->fields['oprlsortop']), "\n"; + echo "{$lang['strrightsort']}\n"; + echo "", $misc->printVal($oprdata->fields['oprrsortop']), "\n"; + echo "{$lang['strlessthan']}\n"; + echo "", $misc->printVal($oprdata->fields['oprltcmpop']), "\n"; + echo "{$lang['strgreaterthan']}\n"; + echo "", $misc->printVal($oprdata->fields['oprgtcmpop']), "\n"; + } + else { + echo "{$lang['strmerges']}\n"; + echo "", $data->phpBool($oprdata->fields['oprcanmerge']) ? $lang['stryes'] : $lang['strno'], "\n"; + } echo "\n"; echo "

href}\">{$lang['strshowalloperators']}

\n";