Enum google_api_proto::google::cloud::bigquery::v2::routine::DeterminismLevel
source · #[repr(i32)]pub enum DeterminismLevel {
Unspecified = 0,
Deterministic = 1,
NotDeterministic = 2,
}
Expand description
JavaScript UDF determinism levels.
If all JavaScript UDFs are DETERMINISTIC, the query result is potentially cachable (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.
Variants§
Unspecified = 0
The determinism of the UDF is unspecified.
Deterministic = 1
The UDF is deterministic, meaning that 2 function calls with the same inputs always produce the same result, even across 2 query runs.
NotDeterministic = 2
The UDF is not deterministic.
Implementations§
source§impl DeterminismLevel
impl DeterminismLevel
sourcepub fn as_str_name(&self) -> &'static str
pub fn as_str_name(&self) -> &'static str
String value of the enum field names used in the ProtoBuf definition.
The values are not transformed in any way and thus are considered stable (if the ProtoBuf definition does not change) and safe for programmatic use.
sourcepub fn from_str_name(value: &str) -> Option<Self>
pub fn from_str_name(value: &str) -> Option<Self>
Creates an enum from field names used in the ProtoBuf definition.
Trait Implementations§
source§impl Clone for DeterminismLevel
impl Clone for DeterminismLevel
source§fn clone(&self) -> DeterminismLevel
fn clone(&self) -> DeterminismLevel
1.0.0 · 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§fn default() -> DeterminismLevel
fn default() -> DeterminismLevel
source§impl From<DeterminismLevel> for i32
impl From<DeterminismLevel> for i32
source§fn from(value: DeterminismLevel) -> i32
fn from(value: DeterminismLevel) -> i32
source§impl Hash for DeterminismLevel
impl Hash for DeterminismLevel
source§impl Ord for DeterminismLevel
impl Ord for DeterminismLevel
source§fn cmp(&self, other: &DeterminismLevel) -> Ordering
fn cmp(&self, other: &DeterminismLevel) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for DeterminismLevel
impl PartialEq for DeterminismLevel
source§fn eq(&self, other: &DeterminismLevel) -> bool
fn eq(&self, other: &DeterminismLevel) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for DeterminismLevel
impl PartialOrd for DeterminismLevel
source§fn partial_cmp(&self, other: &DeterminismLevel) -> Option<Ordering>
fn partial_cmp(&self, other: &DeterminismLevel) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl TryFrom<i32> for DeterminismLevel
impl TryFrom<i32> for DeterminismLevel
§type Error = UnknownEnumValue
type Error = UnknownEnumValue
source§fn try_from(value: i32) -> Result<DeterminismLevel, UnknownEnumValue>
fn try_from(value: i32) -> Result<DeterminismLevel, UnknownEnumValue>
impl Copy for DeterminismLevel
impl Eq 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 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<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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