#[non_exhaustive]pub enum DeterminismLevel {
Unspecified,
Deterministic,
NotDeterministic,
UnknownValue(UnknownValue),
}Expand description
JavaScript UDF determinism levels.
If all JavaScript UDFs are DETERMINISTIC, the query result is potentially cacheable (see below). If any JavaScript UDF is NOT_DETERMINISTIC, the query result is not cacheable.
Even if a JavaScript UDF is deterministic, many other factors can prevent usage of cached query results. Example factors include but not limited to: DDL/DML, non-deterministic SQL function calls, update of referenced tables/views/UDFs or imported JavaScript libraries.
SQL UDFs cannot have determinism specified. Their determinism is automatically determined.
§Working with unknown values
This enum is defined as #[non_exhaustive] because Google Cloud may add
additional enum variants at any time. Adding new variants is not considered
a breaking change. Applications should write their code in anticipation of:
- New values appearing in future releases of the client library, and
- New values received dynamically, without application changes.
Please consult the Working with enums section in the user guide for some guidelines.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Unspecified
The determinism of the UDF is unspecified.
Deterministic
The UDF is deterministic, meaning that 2 function calls with the same inputs always produce the same result, even across 2 query runs.
NotDeterministic
The UDF is not deterministic.
UnknownValue(UnknownValue)
If set, the enum was initialized with an unknown value.
Applications can examine the value using DeterminismLevel::value or DeterminismLevel::name.
Implementations§
Trait Implementations§
Source§impl Clone for DeterminismLevel
impl Clone for DeterminismLevel
Source§fn clone(&self) -> DeterminismLevel
fn clone(&self) -> DeterminismLevel
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DeterminismLevel
impl Debug for DeterminismLevel
Source§impl Default for DeterminismLevel
impl Default for DeterminismLevel
Source§impl<'de> Deserialize<'de> for DeterminismLevel
impl<'de> Deserialize<'de> for DeterminismLevel
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl Display for DeterminismLevel
impl Display for DeterminismLevel
Source§impl From<&str> for DeterminismLevel
impl From<&str> for DeterminismLevel
Source§impl From<i32> for DeterminismLevel
impl From<i32> for DeterminismLevel
Source§impl PartialEq for DeterminismLevel
impl PartialEq for DeterminismLevel
Source§impl Serialize for DeterminismLevel
impl Serialize for DeterminismLevel
impl StructuralPartialEq for DeterminismLevel
Auto Trait Implementations§
impl Freeze for DeterminismLevel
impl RefUnwindSafe for DeterminismLevel
impl Send for DeterminismLevel
impl Sync for DeterminismLevel
impl Unpin for DeterminismLevel
impl UnsafeUnpin for DeterminismLevel
impl UnwindSafe for DeterminismLevel
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request