diff options
author | Guillaume (ioguix) de Rorthais | 2010-11-17 00:21:18 +0000 |
---|---|---|
committer | Guillaume (ioguix) de Rorthais | 2010-11-17 00:21:18 +0000 |
commit | 1f8f1d5d61c06c0021468d476d0cf3c44203bfee (patch) | |
tree | 214943711ae3385c607f3cf47ea99502c4aa93b4 | |
parent | 987fba72b004322175c4566d45a13a0c2fd14ac2 (diff) |
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 :(
-rwxr-xr-x | classes/database/Postgres.php | 5 | ||||
-rw-r--r-- | classes/database/Postgres82.php | 35 | ||||
-rw-r--r-- | operators.php | 32 |
3 files changed, 56 insertions, 16 deletions
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 "<td class=\"data1\">", $misc->printVal($oprdata->fields['oprjoin']), "</td></tr>\n"; echo "<tr><th class=\"data left\">{$lang['strhashes']}</th>\n"; echo "<td class=\"data1\">", ($oprdata->fields['oprcanhash']) ? $lang['stryes'] : $lang['strno'], "</td></tr>\n"; - echo "<tr><th class=\"data left\">{$lang['strmerges']}</th>\n"; - echo "<td class=\"data1\">", ($oprdata->fields['oprlsortop'] !== '0' && $oprdata->fields['oprrsortop'] !== '0') ? $lang['stryes'] : $lang['strno'], "</td></tr>\n"; - echo "<tr><th class=\"data left\">{$lang['strrestrict']}</th>\n"; - echo "<td class=\"data1\">", $misc->printVal($oprdata->fields['oprrest']), "</td></tr>\n"; - echo "<tr><th class=\"data left\">{$lang['strleftsort']}</th>\n"; - echo "<td class=\"data1\">", $misc->printVal($oprdata->fields['oprlsortop']), "</td></tr>\n"; - echo "<tr><th class=\"data left\">{$lang['strrightsort']}</th>\n"; - echo "<td class=\"data1\">", $misc->printVal($oprdata->fields['oprrsortop']), "</td></tr>\n"; - echo "<tr><th class=\"data left\">{$lang['strlessthan']}</th>\n"; - echo "<td class=\"data1\">", $misc->printVal($oprdata->fields['oprltcmpop']), "</td></tr>\n"; - echo "<tr><th class=\"data left\">{$lang['strgreaterthan']}</th>\n"; - echo "<td class=\"data1\">", $misc->printVal($oprdata->fields['oprgtcmpop']), "</td></tr>\n"; + + /* these field only exists in 8.2 and before in pg_catalog */ + if (isset($oprdata->fields['oprlsortop'])) { + echo "<tr><th class=\"data left\">{$lang['strmerges']}</th>\n"; + echo "<td class=\"data1\">", ($oprdata->fields['oprlsortop'] !== '0' && $oprdata->fields['oprrsortop'] !== '0') ? $lang['stryes'] : $lang['strno'], "</td></tr>\n"; + echo "<tr><th class=\"data left\">{$lang['strrestrict']}</th>\n"; + echo "<td class=\"data1\">", $misc->printVal($oprdata->fields['oprrest']), "</td></tr>\n"; + echo "<tr><th class=\"data left\">{$lang['strleftsort']}</th>\n"; + echo "<td class=\"data1\">", $misc->printVal($oprdata->fields['oprlsortop']), "</td></tr>\n"; + echo "<tr><th class=\"data left\">{$lang['strrightsort']}</th>\n"; + echo "<td class=\"data1\">", $misc->printVal($oprdata->fields['oprrsortop']), "</td></tr>\n"; + echo "<tr><th class=\"data left\">{$lang['strlessthan']}</th>\n"; + echo "<td class=\"data1\">", $misc->printVal($oprdata->fields['oprltcmpop']), "</td></tr>\n"; + echo "<tr><th class=\"data left\">{$lang['strgreaterthan']}</th>\n"; + echo "<td class=\"data1\">", $misc->printVal($oprdata->fields['oprgtcmpop']), "</td></tr>\n"; + } + else { + echo "<tr><th class=\"data left\">{$lang['strmerges']}</th>\n"; + echo "<td class=\"data1\">", $data->phpBool($oprdata->fields['oprcanmerge']) ? $lang['stryes'] : $lang['strno'], "</td></tr>\n"; + } echo "</table>\n"; echo "<p><a class=\"navlink\" href=\"operators.php?{$misc->href}\">{$lang['strshowalloperators']}</a></p>\n"; |