public final class ArgumentTypeKey extends Object
A type the parser recognizes is its EDataType, whatever its spelling, with the standard synonyms
folded (INT, INTEGER and INT4 are one type), and without modifiers: the vendors that
overload by type do not tell overloads apart by length, precision, format or character set (PostgreSQL
ignores typmods in a function's identity; Teradata says such attributes do not make a function unique).
Only attributes that change the type itself are kept: an anchoring %TYPE or %ROWTYPE, and
WITH TIME ZONE. A named type (a user-defined type, or an anchored reference) is its name path, each
component keyed by the analysis IdentifierService, so a quoted "T" and an unquoted t
stay apart where the vendor keeps them apart. An array or list type carries its element type. A type with
no structure the parser exposes is its text as written, compared exactly, as before.
It never decides whether an actual argument is compatible with a formal parameter.
| Modifier and Type | Field and Description |
|---|---|
static ArgumentTypeKey |
EMPTY
A parameter the parser gave no data type.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object o) |
int |
hashCode() |
static ArgumentTypeKey |
of(TTypeName type,
EDbVendor vendor,
IdentifierService service) |
String |
toString() |
public static final ArgumentTypeKey EMPTY
public static ArgumentTypeKey of(TTypeName type, EDbVendor vendor, IdentifierService service)