Skip to main content

Module normalize

Module normalize 

Source
Expand description

Name normalization for SQL statements using the visitor pattern.

This module provides a flexible framework for transforming object names in SQL statements. It uses a trait-based visitor pattern to support different normalization strategies while sharing the same traversal logic.

§Normalization Strategies

  • Fully Qualifying: Transforms names to database.schema.object format
  • Flattening: Transforms names to database_schema_object format (single identifier)

§Usage

use mz_deploy::project::resolve::normalize::NormalizingVisitor;

// Create a fully qualifying visitor
let visitor = NormalizingVisitor::fully_qualifying(&fqn);

// Or create a flattening visitor
let visitor = NormalizingVisitor::flattening(&fqn);

§Module Structure

  • transformers: Name transformation strategies (FullyQualifying, Flattening, Staging)
  • visitor: The NormalizingVisitor that traverses SQL AST and applies transformations
  • mod_rewriter: AST-based rewriting of database/schema names in mod statements

Modules§

mod_rewriter 🔒
AST-based rewriting of database and schema names in mod statements.
overlay_transformer 🔒
Name transformation for mz-deploy dev overlay compilation.
transformers 🔒
Name transformation strategies for SQL AST normalization.
visitor 🔒
The NormalizingVisitor for traversing SQL AST and applying name transformations.

Functions§

transform_cluster_names_for_staging 🔒
Transform cluster names in index statements for staging environments.