-- numeric predicates: every operator of a numeric(12, 2) column against constants with more digits than the scale (10.505, 0.005), fewer (7, 10.5), -- trailing zeros (0.10), negative, out of the column's range (1e30), NaN and the infinities, in the aggregate filters of one scan -- shape: notes-path-exists -- expect: agg -- key: - SELECT grp, count(*) FILTER (WHERE n2 = 10.5::numeric) AS eq_a, count(*) FILTER (WHERE n2 <> 10.5::numeric) AS ne_a, count(*) FILTER (WHERE n2 < 10.5::numeric) AS lt_a, count(*) FILTER (WHERE n2 <= 10.5::numeric) AS le_a, count(*) FILTER (WHERE n2 > 10.5::numeric) AS gt_a, count(*) FILTER (WHERE n2 >= 10.5::numeric) AS ge_a, count(*) FILTER (WHERE n2 = 10.505::numeric) AS eq_b, count(*) FILTER (WHERE n2 <> 10.505::numeric) AS ne_b, count(*) FILTER (WHERE n2 < 10.505::numeric) AS lt_b, count(*) FILTER (WHERE n2 <= 10.505::numeric) AS le_b, count(*) FILTER (WHERE n2 > 10.505::numeric) AS gt_b, count(*) FILTER (WHERE n2 >= 10.505::numeric) AS ge_b, count(*) FILTER (WHERE n2 = 0.005::numeric) AS eq_c, count(*) FILTER (WHERE n2 <> 0.005::numeric) AS ne_c, count(*) FILTER (WHERE n2 < 0.005::numeric) AS lt_c, count(*) FILTER (WHERE n2 <= 0.005::numeric) AS le_c, count(*) FILTER (WHERE n2 > 0.005::numeric) AS gt_c, count(*) FILTER (WHERE n2 >= 0.005::numeric) AS ge_c, count(*) FILTER (WHERE n2 = -0.001::numeric) AS eq_d, count(*) FILTER (WHERE n2 <> -0.001::numeric) AS ne_d, count(*) FILTER (WHERE n2 < -0.001::numeric) AS lt_d, count(*) FILTER (WHERE n2 <= -0.001::numeric) AS le_d, count(*) FILTER (WHERE n2 > -0.001::numeric) AS gt_d, count(*) FILTER (WHERE n2 >= -0.001::numeric) AS ge_d, count(*) FILTER (WHERE n2 = 7::numeric) AS eq_e, count(*) FILTER (WHERE n2 <> 7::numeric) AS ne_e, count(*) FILTER (WHERE n2 < 7::numeric) AS lt_e, count(*) FILTER (WHERE n2 <= 7::numeric) AS le_e, count(*) FILTER (WHERE n2 > 7::numeric) AS gt_e, count(*) FILTER (WHERE n2 >= 7::numeric) AS ge_e, count(*) FILTER (WHERE n2 = 0.10::numeric) AS eq_f, count(*) FILTER (WHERE n2 <> 0.10::numeric) AS ne_f, count(*) FILTER (WHERE n2 < 0.10::numeric) AS lt_f, count(*) FILTER (WHERE n2 <= 0.10::numeric) AS le_f, count(*) FILTER (WHERE n2 > 0.10::numeric) AS gt_f, count(*) FILTER (WHERE n2 >= 0.10::numeric) AS ge_f, count(*) FILTER (WHERE n2 = 1e30::numeric) AS eq_g, count(*) FILTER (WHERE n2 <> 1e30::numeric) AS ne_g, count(*) FILTER (WHERE n2 < 1e30::numeric) AS lt_g, count(*) FILTER (WHERE n2 <= 1e30::numeric) AS le_g, count(*) FILTER (WHERE n2 > 1e30::numeric) AS gt_g, count(*) FILTER (WHERE n2 >= 1e30::numeric) AS ge_g, count(*) FILTER (WHERE n2 = -1e30::numeric) AS eq_h, count(*) FILTER (WHERE n2 <> -1e30::numeric) AS ne_h, count(*) FILTER (WHERE n2 < -1e30::numeric) AS lt_h, count(*) FILTER (WHERE n2 <= -1e30::numeric) AS le_h, count(*) FILTER (WHERE n2 > -1e30::numeric) AS gt_h, count(*) FILTER (WHERE n2 >= -1e30::numeric) AS ge_h, count(*) FILTER (WHERE n2 = 'NaN'::numeric) AS eq_i, count(*) FILTER (WHERE n2 <> 'NaN'::numeric) AS ne_i, count(*) FILTER (WHERE n2 < 'NaN'::numeric) AS lt_i, count(*) FILTER (WHERE n2 <= 'NaN'::numeric) AS le_i, count(*) FILTER (WHERE n2 > 'NaN'::numeric) AS gt_i, count(*) FILTER (WHERE n2 >= 'NaN'::numeric) AS ge_i, count(*) FILTER (WHERE n2 = 'Infinity'::numeric) AS eq_j, count(*) FILTER (WHERE n2 <> 'Infinity'::numeric) AS ne_j, count(*) FILTER (WHERE n2 < 'Infinity'::numeric) AS lt_j, count(*) FILTER (WHERE n2 <= 'Infinity'::numeric) AS le_j, count(*) FILTER (WHERE n2 > 'Infinity'::numeric) AS gt_j, count(*) FILTER (WHERE n2 >= 'Infinity'::numeric) AS ge_j, count(*) FILTER (WHERE n2 = '-Infinity'::numeric) AS eq_k, count(*) FILTER (WHERE n2 <> '-Infinity'::numeric) AS ne_k, count(*) FILTER (WHERE n2 < '-Infinity'::numeric) AS lt_k, count(*) FILTER (WHERE n2 <= '-Infinity'::numeric) AS le_k, count(*) FILTER (WHERE n2 > '-Infinity'::numeric) AS gt_k, count(*) FILTER (WHERE n2 >= '-Infinity'::numeric) AS ge_k, count(*) FILTER (WHERE n2 = 9999999999.995::numeric) AS eq_l, count(*) FILTER (WHERE n2 <> 9999999999.995::numeric) AS ne_l, count(*) FILTER (WHERE n2 < 9999999999.995::numeric) AS lt_l, count(*) FILTER (WHERE n2 <= 9999999999.995::numeric) AS le_l, count(*) FILTER (WHERE n2 > 9999999999.995::numeric) AS gt_l, count(*) FILTER (WHERE n2 >= 9999999999.995::numeric) AS ge_l FROM t_num GROUP BY grp ORDER BY grp