razeri-plugin-contract 0.21.0

The dialect contract Razeri plugins are written against — rendering traits, data types, platform identity
Documentation
// Copyright (C) 2026 Gabriel Shea
// Licensed under either of the Apache License, Version 2.0 or the MIT
// license, at your option.

//! **Which bulk-load statement an engine speaks**, among the ones Razeri
//! writes.
//!
//! Razeri's bulk-load builder writes a load statement in a handful of
//! engines' own grammars. Which one a platform gets is the dialect's answer
//! ([`SqlRenderer::bulk_load_form`](crate::SqlRenderer::bulk_load_form)), so
//! an engine that speaks a grammar Razeri already writes — a PostgreSQL-wire
//! engine and `COPY` — gets it with no change to Razeri, and a platform
//! Razeri has never been compiled against is never recognised by its name.

/// **One bulk-load grammar Razeri writes.**
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub enum BulkLoadForm {
    /// `COPY <table> FROM …` — `PostgreSQL` and Citus.
    PostgresCopy,
    /// `BULK INSERT <table> FROM …` — SQL Server.
    BulkInsert,
    /// `COPY INTO <table> FROM @stage …` — Snowflake.
    SnowflakeCopyInto,
    /// `INSERT INTO <table> SELECT * FROM file(…)` and its kin — `ClickHouse`.
    ClickHouseInsert,
    /// `COPY <table> FROM '<path>' (…)` — `DuckDB`.
    DuckDbCopy,
    /// `COPY INTO <table> FROM '<path>' FILEFORMAT = …` — Databricks.
    DatabricksCopyInto,
    /// `LOAD DATA INFILE '<path>' INTO TABLE <table>` — `MySQL` and `MariaDB`.
    LoadDataInfile,
}