pub enum HashSite<'a> {
Native,
NativeIn(&'a str),
Helper(&'a str),
}Expand description
Where the hash itself is spelled.
Variants§
Native
Inline this engine’s own hash spelling, from SidSpelling::hash.
NativeIn(&'a str)
Inline this engine’s own hash spelling, in the schema Razeri installed
it in — SidPrerequisiteHome::Schema.
The schema, a dot, and then SidSpelling::hash exactly as Native
writes it. So a dialect that names a home owes a hash whose opening
text BEGINS with the function’s own name: razeri_xxh64( qualifies to
razeri.razeri_xxh64(, while a spelling that opened with a cast —
CAST(xxHash64( — would put the schema in front of the cast and name
nothing. Every engine that opens with a cast has a server-global
function and names no home, which is why the two facts have never met.
Helper(&'a str)
Call the HELPER_FUNCTION_NAME function by this — possibly
schema-qualified — name. Its body is the HashSite::Native spelling,
so the two sites are the same derivation.
The qualifier is the function’s home, not the caller’s schema. One function is created per deployment unit, so a call from any other schema of that unit has to name the schema that has it. A caller that qualifies with its own schema names a function nothing created.