pub(crate) enum FieldNullInterpretation {
    Distinct,
    NotDistinct,
    NotNull,
}
Expand description

How to interpret missing value (NULL) or assert that value must always be present.

Variants§

§

Distinct

Missing value (NULL) are allowed multiple times in unique index (PostgreSQL NULLS DISTINCT, Java RecordLayer Evaluated.Nullstandin.NULL, RecordMetaDataProto.Field.NullInterpretation.NOT_UNIQUE).

This is the default for PostgreSQL and Java RecordLayer.

§

NotDistinct

Missing value (NULL) cannot be repeated in a unique index (PostgreSQL NULLS NOT DISTINCT, Java RecordLayer Evaluated.Nullstandin.NULL_UNIQUE, RecordMetaDataProto.Field.NullInterpretation.UNIQUE).

This is very restrictive as a column can have only one NULL value.

§

NotNull

Field is not NULL (PostgreSQL NOT NULL).

Note: Here we are following PostgreSQL semantics and not Java RecordLayer semantics. In Java RecordLayer Evaluated.Nullstandin.NOT_NULL and RecordMetaDataProto.Field.NullInterpretation.NOT_NULL means when a field is missing, the Protobuf default value for that field is returned. In our case, all fields have presence information. The field must be present, and we return that value. When NotNull variant is specified, and the field is not present, it is an error.

Trait Implementations§

source§

impl From<FieldNullInterpretation> for FieldNullInterpretationInternalV1

source§

fn from( field_null_interpretation: FieldNullInterpretation ) -> FieldNullInterpretationInternalV1

Converts to this type from the input type.
source§

impl From<FieldNullInterpretationInternalV1> for FieldNullInterpretation

source§

fn from( pb_field_null_interpretation_internal_v1: FieldNullInterpretationInternalV1 ) -> FieldNullInterpretation

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.