Is it possible to schema-qualify an operator? Let's say I create an extension, like PostGIS, in the schema postgis,

CREATE EXTENSION postgis WITH SCHEMA postgis;


Is it possible to fully qualify an operator like &amp;&amp; in the below example,

SELECT box2d &amp;&amp; ST_MakePoint(5,5)
FROM postgis.box2d(postgis.ST_MakeEnvelope(0,0,10,10));


But "postgis.&amp;&amp;" and even "postgis".&amp;&amp; and "postgis"."&amp;&amp;" is not working for me. The docs on "Operator Type Resolution" seem to hint at being possible,


  If a qualified operator name was given, only operators in the specified schema are considered.


Put another way, can I use an operator that is "not visible".

SELECT pg_type_is_visible(
  'postgis.&amp;&amp;(postgis.geometry,postgis.geometry)'::regoperator
);


Clearly, I can add postgis to my search_path but I'm looking to leave that unmodified and in ever other context we can in fact qualify everything.
Be aware that the OPERATOR construct (like OPERATOR(postgis.&amp;&amp;)) is not 100 % identical to the operator itself. Operators lose their implicit precedence and fall back to default operator precedence, which can have sneaky side effects. Consider:

SELECT 3 + 3 * 2                        -- 9
     , 3 + 3 OPERATOR(pg_catalog.*) 2;  -- 12


There is no effect for OPERATOR(postgis.&amp;&amp;) as &amp;&amp; has default operator precedence to begin with.

Related:


Use PostgreSQL builtin operator &lt;@ after including extension intarray
GIN index on smallint[] column not used or error “operator is not unique”


Another limitation: the OPERATOR construct does not work for SQL syntax elements like AND, OR, BETWEEN etc., which are also sometimes called "operators" (and have their own operator precedence). Only for operators listed in the system catalog pg_operator.