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
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
/**
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";