Skip to main content

ParallelTransportPool

Struct ParallelTransportPool 

Source
pub struct ParallelTransportPool { /* private fields */ }
Expand description

Pool of parallel HTTP transport connections for multi-file import.

This struct manages multiple HTTP connections, each performing the EXA tunneling handshake to obtain unique internal addresses for the IMPORT SQL.

Implementations§

Source§

impl ParallelTransportPool

Source

pub async fn connect( host: &str, port: u16, use_tls: bool, file_count: usize, ) -> Result<Self, ImportError>

Establishes N parallel HTTP connections with EXA handshake.

This method creates file_count HTTP transport connections in parallel, each performing the EXA tunneling handshake to obtain unique internal addresses.

§Arguments
  • host - The Exasol host to connect to
  • port - The port to connect to
  • use_tls - Whether to use TLS encryption
  • file_count - Number of parallel connections to establish
§Returns

A ParallelTransportPool with established connections.

§Errors

Returns ImportError::ParallelConnectionError if any connection fails. Uses fail-fast semantics - aborts all remaining connections on first failure.

Source

pub fn file_entries(&self) -> &[ImportFileEntry]

Returns file entries for SQL query building.

These entries contain the internal addresses and file names needed to construct the multi-FILE IMPORT SQL statement.

Source

pub fn len(&self) -> usize

Returns the number of connections in the pool.

Source

pub fn is_empty(&self) -> bool

Returns true if the pool has no connections.

Source

pub fn into_connections(self) -> Vec<HttpTransportClient>

Consumes pool and returns connections for streaming.

This method takes ownership of the pool and returns the individual connections for use in parallel streaming.

Trait Implementations§

Source§

impl Debug for ParallelTransportPool

Source§

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

Formats the value using the given formatter. Read more

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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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