sqlmapproject/sqlmap · error · RuntimeError

ordered PoC unavailable in equality-only compare mode

Error message

ordered PoC unavailable in equality-only compare mode

What it means

Error "ordered PoC unavailable in equality-only compare mode" thrown in sqlmapproject/sqlmap.

Source

Thrown at extra/esperanto/enumeration.py:791

            if self._comparator == "between":
                return "%s BETWEEN %d AND %d" % (code, gt + 1, 1 << 62)
            if self._cmpTemplate is not None:
                return self._cmpTemplate.format(expr=code, n=gt)
            raise RuntimeError("ordered PoC unavailable: membership comparator has no '>' form")
        # hex / collation / ordinal compare strings or wrapped values with '>'; if '>' was
        # blocked (comparator isn't 'gt') there is NO equivalent renderer for these text modes
        # -> refuse rather than emit a predicate the target already rejected.
        if self._comparator != "gt":
            raise RuntimeError("ordered PoC unavailable: '>' blocked and %s mode has no operator-free form" % self.dialect.compare)
        if self.dialect.compare == "hex" and self.dialect.hexfn:
            return "%s>'%02X'" % (self.dialect.hexfn[1].format(expr=one), gt)
        if self.dialect.compare == "collation" and self.dialect.binwrap:
            w = self.dialect.binwrap[1]
            return "%s>%s" % (w.format(x=one), w.format(x=self._lit(chr(gt))))
        if self.dialect.compare in ("equality", "equality-ci"):
            # equality mode was chosen BECAUSE ordering isn't trustworthy - don't
            # fabricate a `>` predicate the target's collation may not honour
            raise RuntimeError("ordered PoC unavailable in equality-only compare mode")
        return "%s>%s" % (one, self._lit(chr(gt)))

    def strategy(self):
        """Freeze the discovered dialect into an immutable InferenceStrategy - the
        hand-off artifact for a host inference engine (see hostExtract). Ensures the
        hex fn and quoting/backslash flags are resolved before freezing."""
        d = self.dialect
        if not self._discovered:
            self.discover()
        self._ensureHexfn()
        self._lit("x")                               # resolve backslash-escape flag
        return InferenceStrategy(
            product=d.product or d.family, family=d.family, compare_mode=d.compare,
            catalog=d.catalog, dual=(d.dual[1] if d.dual else ""), notes=tuple(d.notes),
            substring=(d.substring[1] if d.substring else None),
            index_base=(d.substring.get("index_base", 1) if d.substring else 1),
            length=(d.length[1] if d.length else None),
            charcode=(d.charcode[1] if d.charcode else None),

View on GitHub (pinned to 0a35b20e39)

When it happens

Trigger: Thrown at extra/esperanto/enumeration.py:791 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of sqlmapproject/sqlmap@0a35b20e39 (2026-08-26). Data as JSON: /api/errors/33dc66dcdd7a7bff. Report an issue: GitHub.