Files
greptimedb/src/query
discord9 1817d0bb76 fix(promql): close metric-name identity privilege and boundary gaps
- count_values never forges the identity: the label it generates is always
  an ordinary column named as asked, with no metric-name role metadata and
  no reuse of the marked column's physical name. A plain aggregate argument
  can no longer inject a sample value into the privileged identity column
  (which the HTTP layer would otherwise emit as __name__ and TQL would
  silently strip). With no marker forged, dropping the name of a
  count_values result cannot collide, so the union-subtree check remains
  the only duplicate-label-set source.
- binary_match_label_mask no longer lets an ordinary on()/ignoring() label
  hit the marked identity by its physical name; only the semantic __name__
  resolves to it, and a real user column sharing the name still matches.
- label_join/label_replace move the marked identity to a free internal
  name before writing an ordinary destination that occupies its physical
  name, so writing a label can no longer silently replace the identity.
- sort_by_label reads a missing or NULL string label as the empty value,
  so a series that lost its name sorts first ascending like Prometheus,
  instead of NULLS LAST.

Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com>
2026-10-12 11:13:07 +08:00
..