pub struct AdbcSnowflakeProperties {Show 17 fields
pub account: String,
pub username: String,
pub password: Option<String>,
pub database: String,
pub schema: String,
pub warehouse: String,
pub table: String,
pub role: Option<String>,
pub host: Option<String>,
pub port: Option<u16>,
pub protocol: Option<String>,
pub auth_type: Option<String>,
pub auth_token: Option<String>,
pub jwt_private_key_path: Option<String>,
pub jwt_private_key_pkcs8_value: Option<String>,
pub jwt_private_key_pkcs8_password: Option<String>,
pub unknown_fields: HashMap<String, String>,
}Expand description
Properties for ADBC Snowflake source connector.
Fields§
§account: StringThe Snowflake account identifier (e.g., “myaccount” or “myaccount.us-east-1”).
username: StringThe username for authentication.
password: Option<String>The password for authentication.
database: StringThe name of the database to use.
schema: StringThe name of the schema to use.
warehouse: StringThe name of the warehouse to use.
table: StringThe table name to load (full table).
role: Option<String>The role to use (optional).
host: Option<String>The host to connect to (optional, defaults to Snowflake cloud).
port: Option<u16>The port to connect to (optional).
protocol: Option<String>The protocol to use (optional, defaults to “https”).
auth_type: Option<String>The authentication type (optional, defaults to “auth_snowflake”).
Possible values: auth_snowflake, auth_oauth, auth_ext_browser, auth_okta, auth_jwt, auth_mfa, auth_pat, auth_wif
auth_token: Option<String>OAuth token for authentication (when using auth_oauth).
jwt_private_key_path: Option<String>JWT private key file path (when using auth_jwt).
jwt_private_key_pkcs8_value: Option<String>§jwt_private_key_pkcs8_password: Option<String>§unknown_fields: HashMap<String, String>Unknown fields for forward compatibility.
Implementations§
Source§impl AdbcSnowflakeProperties
impl AdbcSnowflakeProperties
Sourcepub fn get_arrow_schema(&self) -> ConnectorResult<Schema>
pub fn get_arrow_schema(&self) -> ConnectorResult<Schema>
Get the Arrow schema from the Snowflake table. This is used for schema inference when creating tables.
Important: We use a LIMIT 0 query instead of ADBC’s get_table_schema API
because get_table_schema may return different types than the actual query results.
For example, Snowflake NUMBER columns may be reported as Int64 by get_table_schema
but returned as Decimal128 in actual query results. Using a real query ensures
consistency between schema inference (used by frontend) and data fetching (used by executor).
The column order in the returned schema matches the column order in the Snowflake table.
Source§impl AdbcSnowflakeProperties
impl AdbcSnowflakeProperties
Sourcepub fn build_select_all_query(&self) -> String
pub fn build_select_all_query(&self) -> String
Default full-table select.
Sourcefn build_database_builder(&self) -> ConnectorResult<DatabaseBuilder>
fn build_database_builder(&self) -> ConnectorResult<DatabaseBuilder>
Build a database builder from properties.
Sourcepub fn create_database(&self) -> ConnectorResult<Database>
pub fn create_database(&self) -> ConnectorResult<Database>
Create an ADBC Snowflake database connection. This validates that the driver library is available before attempting connection.
Sourcepub fn create_connection(
&self,
database: &Database,
) -> ConnectorResult<Connection>
pub fn create_connection( &self, database: &Database, ) -> ConnectorResult<Connection>
Create a connection from the database.
Sourcepub fn create_statement(
&self,
connection: &mut Connection,
query: &str,
) -> ConnectorResult<Statement>
pub fn create_statement( &self, connection: &mut Connection, query: &str, ) -> ConnectorResult<Statement>
Create a statement from the connection and set the SQL query.
Sourcepub fn execute_query_with_connection(
&self,
connection: &mut Connection,
query: &str,
) -> ConnectorResult<Vec<RecordBatch>>
pub fn execute_query_with_connection( &self, connection: &mut Connection, query: &str, ) -> ConnectorResult<Vec<RecordBatch>>
Execute a custom query using a provided connection. This is useful for metadata queries needed for split generation while reusing connections.
Sourcepub fn execute_query(&self, query: &str) -> ConnectorResult<Vec<RecordBatch>>
pub fn execute_query(&self, query: &str) -> ConnectorResult<Vec<RecordBatch>>
Execute a custom query and return the results as a vector of Arrow record batches.
This is useful for metadata queries needed for split generation.
Creates a new connection for each query - use execute_query_with_connection for better performance.
Trait Implementations§
Source§impl Clone for AdbcSnowflakeProperties
impl Clone for AdbcSnowflakeProperties
Source§fn clone(&self) -> AdbcSnowflakeProperties
fn clone(&self) -> AdbcSnowflakeProperties
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AdbcSnowflakeProperties
impl Debug for AdbcSnowflakeProperties
Source§impl<'de> Deserialize<'de> for AdbcSnowflakeProperties
impl<'de> Deserialize<'de> for AdbcSnowflakeProperties
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<AdbcSnowflakeProperties> for ConnectorProperties
impl From<AdbcSnowflakeProperties> for ConnectorProperties
Source§fn from(prop: AdbcSnowflakeProperties) -> ConnectorProperties
fn from(prop: AdbcSnowflakeProperties) -> ConnectorProperties
Source§impl SourceProperties for AdbcSnowflakeProperties
impl SourceProperties for AdbcSnowflakeProperties
const SOURCE_NAME: &'static str = ADBC_SNOWFLAKE_CONNECTOR
type Split = AdbcSnowflakeSplit
type SplitEnumerator = AdbcSnowflakeSplitEnumerator
type SplitReader = AdbcSnowflakeSplitReader
Source§fn init_from_pb_source(&mut self, _source: &PbSource)
fn init_from_pb_source(&mut self, _source: &PbSource)
PbSource. Currently only used by CDC.Source§fn init_from_pb_cdc_table_desc(&mut self, _table_desc: &ExternalTableDesc)
fn init_from_pb_cdc_table_desc(&mut self, _table_desc: &ExternalTableDesc)
ExternalTableDesc. Currently only used by CDC.impl WithOptions for AdbcSnowflakeProperties
Auto Trait Implementations§
impl Freeze for AdbcSnowflakeProperties
impl RefUnwindSafe for AdbcSnowflakeProperties
impl Send for AdbcSnowflakeProperties
impl Sync for AdbcSnowflakeProperties
impl Unpin for AdbcSnowflakeProperties
impl UnwindSafe for AdbcSnowflakeProperties
Blanket Implementations§
§impl<T> AsAny for T
impl<T> AsAny for T
§fn any_ref(&self) -> &(dyn Any + Sync + Send + 'static)
fn any_ref(&self) -> &(dyn Any + Sync + Send + 'static)
dyn Any reference to the object: Read more§fn as_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send>
fn as_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send>
Arc<dyn Any> reference to the object: Read more§fn into_any(self: Box<T>) -> Box<dyn Any + Sync + Send>
fn into_any(self: Box<T>) -> Box<dyn Any + Sync + Send>
Box<dyn Any>: Read more§fn type_name(&self) -> &'static str
fn type_name(&self) -> &'static str
std::any::type_name, since Any does not provide it and
Any::type_id is useless as a debugging aid (its Debug is just a mess of hex digits).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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> Downcast for Twhere
T: AsAny + ?Sized,
impl<T> Downcast for Twhere
T: AsAny + ?Sized,
§fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
Any.§fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
Any.§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].Source§impl<M> MetricVecRelabelExt for M
impl<M> MetricVecRelabelExt for M
Source§fn relabel(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
RelabeledMetricVec::with_metric_level.Source§fn relabel_n(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
relabel_num: usize,
) -> RelabeledMetricVec<M>
fn relabel_n( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, relabel_num: usize, ) -> RelabeledMetricVec<M>
RelabeledMetricVec::with_metric_level_relabel_n.Source§fn relabel_debug_1(
self,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel_debug_1( self, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
RelabeledMetricVec::with_metric_level_relabel_n with metric_level set to
MetricLevel::Debug and relabel_num set to 1.§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> Scope for T
impl<T> Scope for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
Source§impl<P> TryFromBTreeMap for Pwhere
P: DeserializeOwned + UnknownFields,
impl<P> TryFromBTreeMap for Pwhere
P: DeserializeOwned + UnknownFields,
Source§fn try_from_btreemap(
props: BTreeMap<String, String>,
deny_unknown_fields: bool,
) -> Result<P, ConnectorError>
fn try_from_btreemap( props: BTreeMap<String, String>, deny_unknown_fields: bool, ) -> Result<P, ConnectorError>
WITH options.