Skip to main content

LoadFileParams

Struct LoadFileParams 

Source
pub struct LoadFileParams {
    pub table: String,
    pub path: String,
    pub mode: Option<String>,
    pub schema: Option<Value>,
    pub json_extract_path: Option<String>,
    pub merge_key: Option<MergeKey>,
    pub database: Option<String>,
    pub persist: Option<bool>,
}
Expand description

Parameters for the load_file workspace tool.

Fields§

§table: String

Target table name.

§path: String

Absolute path to a CSV, Parquet, or Arrow IPC file.

§mode: Option<String>

"replace" (default — drops and recreates the table), "append" (adds rows to an existing table), or "merge" (upserts rows by merge_key; new columns in the incoming file are auto-added via ALTER TABLE ADD COLUMN).

§schema: Option<Value>

Partial schema override keyed by column name: {"col": "BIGINT", ...}. Only the listed columns are overridden; the rest keep their inferred type. Call inspect_file first if you are unsure — it reports min / max / null_count per column using the exact same inference this tool uses, so the override you build from its output is guaranteed to align with the file’s actual columns.

§json_extract_path: Option<String>

Optional dot-separated path to extract a nested data array from the JSON file. Numeric segments index into arrays (e.g., content.0). String values encountered during navigation are automatically parsed as JSON, handling the common pattern where MCP tool responses contain stringified JSON payloads.

§merge_key: Option<MergeKey>

When mode = "merge", the column(s) used to match incoming rows to existing rows for upsert. Pass a single name ("job_id") or a list (["cell", "job_id"]). Required for merge; rejected with a clear error if set for replace or append.

§database: Option<String>

Target database alias. Omit (or pass "local") to write to the ephemeral primary. Pass "persistent" to write to the durable database. Other values target a user-attached writable database.

§persist: Option<bool>

Shorthand for database: "persistent". If both database and persist are set, database wins.

Trait Implementations§

Source§

impl Debug for LoadFileParams

Source§

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

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

impl<'de> Deserialize<'de> for LoadFileParams

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl JsonSchema for LoadFileParams

Source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
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<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