Struct deltalake::datafusion::datasource::listing::ListingTableUrl

source ·
pub struct ListingTableUrl { /* private fields */ }
Expand description

A parsed URL identifying files for a listing table, see ListingTableUrl::parse for more information on the supported expressions

Implementations§

source§

impl ListingTableUrl

source

pub fn parse(s: impl AsRef<str>) -> Result<ListingTableUrl, DataFusionError>

Parse a provided string as a ListingTableUrl

A URL can either refer to a single object, or a collection of objects with a common prefix, with the presence of a trailing / indicating a collection.

For example, file:///foo.txt refers to the file at /foo.txt, whereas file:///foo/ refers to all the files under the directory /foo and its subdirectories.

Similarly s3://BUCKET/blob.csv refers to blob.csv in the S3 bucket BUCKET, wherease s3://BUCKET/foo/ refers to all objects with the prefix foo/ in the S3 bucket BUCKET

§URL Encoding

URL paths are expected to be URL-encoded. That is, the URL for a file named bar%2Efoo would be file:///bar%252Efoo, as per the URL specification.

It should be noted that some tools, such as the AWS CLI, take a different approach and instead interpret the URL path verbatim. For example the object bar%2Efoo would be addressed as s3://BUCKET/bar%252Efoo using ListingTableUrl but s3://BUCKET/bar%2Efoo when using the aws-cli.

§Paths without a Scheme

If no scheme is provided, or the string is an absolute filesystem path as determined by std::path::Path::is_absolute, the string will be interpreted as a path on the local filesystem using the operating system’s standard path delimiter, i.e. \ on Windows, / on Unix.

If the path contains any of '?', '*', '[', it will be considered a glob expression and resolved as described in the section below.

Otherwise, the path will be resolved to an absolute path based on the current working directory, and converted to a file URI.

If the path already exists in the local filesystem this will be used to determine if this ListingTableUrl refers to a collection or a single object, otherwise the presence of a trailing path delimiter will be used to indicate a directory. For the avoidance of ambiguity it is recommended users always include trailing / when intending to refer to a directory.

§Glob File Paths

If no scheme is provided, and the path contains a glob expression, it will be resolved as follows.

The string up to the first path segment containing a glob expression will be extracted, and resolved in the same manner as a normal scheme-less path above.

The remaining string will be interpreted as a glob::Pattern and used as a filter when listing files from object storage

source

pub fn scheme(&self) -> &str

Returns the URL scheme

source

pub fn prefix(&self) -> &Path

Return the URL path not excluding any glob expression

If Self::is_collection, this is the listing prefix Otherwise, this is the path to the object

source

pub fn contains(&self, path: &Path, ignore_subdirectory: bool) -> bool

Returns true if path matches this ListingTableUrl

source

pub fn is_collection(&self) -> bool

Returns true if path refers to a collection of objects

source

pub async fn list_all_files<'a>( &'a self, ctx: &'a SessionState, store: &'a (dyn ObjectStore + 'static), file_extension: &'a str ) -> Result<Pin<Box<dyn Stream<Item = Result<ObjectMeta, DataFusionError>> + Send + 'a>>, DataFusionError>

List all files identified by this ListingTableUrl for the provided file_extension

source

pub fn as_str(&self) -> &str

Returns this ListingTableUrl as a string

source

pub fn object_store(&self) -> ObjectStoreUrl

Return the ObjectStoreUrl for this ListingTableUrl

Trait Implementations§

source§

impl AsRef<Url> for ListingTableUrl

source§

fn as_ref(&self) -> &Url

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsRef<str> for ListingTableUrl

source§

fn as_ref(&self) -> &str

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for ListingTableUrl

source§

fn clone(&self) -> ListingTableUrl

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ListingTableUrl

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for ListingTableUrl

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Hash for ListingTableUrl

source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ListingTableUrl

source§

fn eq(&self, other: &ListingTableUrl) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for ListingTableUrl

source§

impl StructuralPartialEq for ListingTableUrl

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where 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> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where 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 T
where 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.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

source§

impl<T> Ungil for T
where T: Send,