Class Random
java.lang.Object
dev.frostlake.functions.BuiltInFunction
dev.frostlake.functions.scalar.math.Random
RANDOM([seed]) — a pseudo-random signed 64-bit integer (not a fraction in [0, 1)). Without a seed
each call is independent; with a seed the value is deterministic, so a constant seed yields the same
value for every row (matching Snowflake). java.util.Random is fully qualified because this class
shadows that name.
The seedless path is genuinely random, as Snowflake's is. It once returned a SplitMix64 scramble of a monotonic counter for test reproducibility; that was removed because nothing depended on it — no test asserts a value (they assert type, range and uniqueness, which real randomness satisfies and the counter satisfied only trivially) and the vendor suite never calls the function. The counter also restarted at zero in a fresh JVM, so it never delivered the WAL-replay exactness it appeared to promise: a replayed statement drew new values either way. Reproducing values across replay is a durability question about the log, not something a function can answer for itself.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionComputes the function's result over its already-evaluated argument values.intThe most arguments a call to this function may pass;Integer.MAX_VALUEmarks a variadic function (seeBuiltInFunction.isVariadic()).intThe fewest arguments a call to this function may pass; fewer is an argument-count error.Methods inherited from class dev.frostlake.functions.BuiltInFunction
approximateRejection, binaryRejection, booleanRejection, evaluate, fileRejection, geoRejection, getName, getReturnType, isVariadic, refusesMissingArgumentsByType, semiStructuredRejection, structuredRejection, temporalRejection, temporalRejection, temporalRejection, textRejection, uuidRejection, vectorRejection
-
Constructor Details
-
Random
public Random()
-
-
Method Details
-
evaluate
Description copied from class:BuiltInFunctionComputes the function's result over its already-evaluated argument values. A SQL NULL argument arrives as Javanull, and returningnullmakes the SQL result NULL.- Specified by:
evaluatein classBuiltInFunction- Parameters:
args- the argument values, in call order- Returns:
- the function's value for these arguments, or
nullfor SQL NULL
-
getMinArgCount
public int getMinArgCount()Description copied from class:BuiltInFunctionThe fewest arguments a call to this function may pass; fewer is an argument-count error.- Specified by:
getMinArgCountin classBuiltInFunction- Returns:
- the minimum accepted argument count
-
getMaxArgCount
public int getMaxArgCount()Description copied from class:BuiltInFunctionThe most arguments a call to this function may pass;Integer.MAX_VALUEmarks a variadic function (seeBuiltInFunction.isVariadic()).- Specified by:
getMaxArgCountin classBuiltInFunction- Returns:
- the maximum accepted argument count
-