[−][src]Struct postgres_parser::nodes::SubscriptingRef
SubscriptingRef: describes a subscripting operation over a container (array, etc).
A SubscriptingRef can describe fetching a single element from a container, fetching a part of container (e.g. array slice), storing a single element into a container, or storing a slice. The "store" cases work with an initial container value and a source value that is inserted into the appropriate part of the container; the result of the operation is an entire new modified container value.
If reflowerindexpr = NIL, then we are fetching or storing a single container element at the subscripts given by refupperindexpr. Otherwise we are fetching or storing a container slice, that is a rectangular subcontainer with lower and upper bounds given by the index expressions. reflowerindexpr must be the same length as refupperindexpr when it is not NIL.
In the slice case, individual expressions in the subscript lists can be NULL, meaning "substitute the array's current lower or upper bound".
Note: the result datatype is the element type when fetching a single element; but it is the array type when doing subarray fetch or either type of store.
Note: for the cases where a container is returned, if refexpr yields a R/W expanded container, then the implementation is allowed to modify that object inplace and return the same object.)
Fields
refcontainertype: Oid
refelemtype: Oid
reftypmod: i32
refcollid: Oid
refupperindexpr: Option<Vec<Node>>
reflowerindexpr: Option<Vec<Node>>
refexpr: Option<Box<Expr>>
refassgnexpr: Option<Box<Expr>>
Trait Implementations
impl Debug for SubscriptingRef
[src]
impl<'de> Deserialize<'de> for SubscriptingRef
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl Eq for SubscriptingRef
[src]
impl PartialEq<SubscriptingRef> for SubscriptingRef
[src]
fn eq(&self, other: &SubscriptingRef) -> bool
[src]
fn ne(&self, other: &SubscriptingRef) -> bool
[src]
impl Serialize for SubscriptingRef
[src]
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl StructuralEq for SubscriptingRef
[src]
impl StructuralPartialEq for SubscriptingRef
[src]
Auto Trait Implementations
impl RefUnwindSafe for SubscriptingRef
impl Send for SubscriptingRef
impl Sync for SubscriptingRef
impl Unpin for SubscriptingRef
impl UnwindSafe for SubscriptingRef
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,