Class ExtensionItemFilterProcessor

  • All Implemented Interfaces:
    FilterProcessor<ValueFilter<?,​?>>, RightHandProcessor

    public class ExtensionItemFilterProcessor
    extends ItemValueFilterProcessor<ValueFilter<?,​?>>
    Filter processor for extension items stored in JSONB. This takes care of any supported type, scalar or array, and handles any operation. NOTE about NOT treatment: We use the same not treatment for extensions like for other columns resulting in conditions like: `not (u.ext->>'1510' < ? and u.ext->>'1510' is not null)` One might think that the part after AND can be replaced with u.ext ? '1510' to benefit from the GIN index. But `NOT (u.ext ? '...')` is *not* fully complement to the `u.ext ? '...'` (without NOT). It is only fully complement if additional `AND u.ext is not null` is added in which case the index will not be used either. So instead of adding special treatment code for extensions, we just reuse existing predicateWithNotTreated methods.
    • Field Detail

      • STRING_TYPE

        public static final String STRING_TYPE
      • INT_TYPE

        public static final String INT_TYPE
      • INTEGER_TYPE

        public static final String INTEGER_TYPE
      • SHORT_TYPE

        public static final String SHORT_TYPE
      • LONG_TYPE

        public static final String LONG_TYPE
      • DECIMAL_TYPE

        public static final String DECIMAL_TYPE
      • DOUBLE_TYPE

        public static final String DOUBLE_TYPE
      • FLOAT_TYPE

        public static final String FLOAT_TYPE
      • BOOLEAN_TYPE

        public static final String BOOLEAN_TYPE
      • DATETIME_TYPE

        public static final String DATETIME_TYPE
      • POLY_STRING_TYPE

        public static final String POLY_STRING_TYPE