Class StarArgument

java.lang.Object
dev.frostlake.executor.StarArgument

public final class StarArgument extends Object
A star written as a function ARGUMENT — COUNT(*), HASH_AGG(t.*), COUNT(* EXCLUDE (a)), COUNT(* ILIKE 'a%') — and what it stands for: the in-scope columns it expands to, so that the call is then an ordinary multi-argument one (live-verified: a qualified star expands to that relation's columns only, an EXCLUDE drops the named columns, an ILIKE keeps the matching ones, and HASH_AGG(t.*) equals HASH_AGG(t.a, t.b, t.c)).

The three refusals are the account's: a qualifier naming no relation in scope is "Object 'X' does not exist or not authorized.", an EXCLUDE naming no column is "column 'X' does not exist", and one naming a column twice is "duplicate column name 'X'". A star that expands to nothing is left to the caller's arity rule, which spells "not enough arguments for function [COUNT()], expected 1, got 0".

The one star this does NOT expand is the bare, unqualified, unmodified * under COUNT, which counts rows; every other shape — a qualifier, an EXCLUDE, an ILIKE, another aggregate — is the written-out list, and a COUNT over that list counts the rows in which every column is non-NULL.