Skip to main content

NameTransformer

Trait NameTransformer 

Source
pub trait NameTransformer {
    // Required methods
    fn transform_name(&self, name: &UnresolvedItemName) -> UnresolvedItemName;
    fn database_name(&self) -> &str;

    // Provided method
    fn transform_own_name(
        &self,
        name: &UnresolvedItemName,
    ) -> UnresolvedItemName { ... }
}
Expand description

Trait for transforming object names in SQL AST nodes.

Implementations of this trait define how names should be transformed (e.g., fully qualified, flattened, etc.).

Required Methods§

Source

fn transform_name(&self, name: &UnresolvedItemName) -> UnresolvedItemName

Transform a name using the implementing strategy.

Takes an UnresolvedItemName and returns a transformed version according to the strategy. The input may be partially qualified (1, 2, or 3 parts).

Source

fn database_name(&self) -> &str

Get the database name from the transformer’s FQN context.

Provided Methods§

Source

fn transform_own_name(&self, name: &UnresolvedItemName) -> UnresolvedItemName

Transform the object’s own name (the name in the CREATE statement).

By default, delegates to transform_name. Override to apply different rules for the object being created vs. references to other objects. For example, the staging transformer always suffixes the object’s own schema even when it is a replacement object.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§