Josh Berkus <josh@agliodbs.com> writes:
> Summary: special inet operators ( << >> <<= =>> ) are
> up to 1000000X off in estimating rowcounts
A look in pg_operator will show you that these operators have no
associated selectivity estimators at all. It's not so much "broken"
as "unimplemented".
regression=# select oid::regoperator,oprcode,oprrest,oprjoin from pg_operator where (oprleft = 869 or oprright = 869)
andoprresult = 16;
oid | oprcode | oprrest | oprjoin
----------------+---------------+-------------+-----------------
=(inet,inet) | network_eq | eqsel | eqjoinsel
<>(inet,inet) | network_ne | neqsel | neqjoinsel
<(inet,inet) | network_lt | scalarltsel | scalarltjoinsel
<=(inet,inet) | network_le | scalarltsel | scalarltjoinsel
>(inet,inet) | network_gt | scalargtsel | scalargtjoinsel
>=(inet,inet) | network_ge | scalargtsel | scalargtjoinsel
<<(inet,inet) | network_sub | - | -
<<=(inet,inet) | network_subeq | - | -
>>(inet,inet) | network_sup | - | -
>>=(inet,inet) | network_supeq | - | -
(10 rows)
regards, tom lane