schema_2_encoder

This module provides utilities for mapping AWS Redshift schema models to simplified type representations suitable for LLM consumption.

mcp_ohmy_sql.db.aws_redshift.schema_2_encoder.encode_column_info(column_info: ColumnInfo) str[source]

Encode an AWS Redshift column into LLM-friendly compact format.

Transforms verbose column metadata into a concise string representation optimized for Large Language Model consumption in text-to-SQL tasks.

Format: ${COLUMN_NAME}:${DATA_TYPE}${DISTRIBUTION_KEY}${SORT_KEY}${NOT_NULL}${ENCODING}

Redshift-specific constraints are encoded as:

  • *DK: Distribution Key (for data distribution across nodes)

  • *SK-N: Sort Key with position N (for query optimization)

  • *NN: Not Null constraint

  • *encoding: Compression encoding (lzo, delta, etc.)

Parameters:

column_info – Column metadata with Redshift-specific properties

Returns:

Compact column representation string

Examples:

  • Distribution key: user_id:str*DK*NN*lzo

  • Sort key: create_time:dt*SK-1*NN*delta

  • Regular column: description:str*lzo

mcp_ohmy_sql.db.aws_redshift.schema_2_encoder.encode_table_info(table_info: TableInfo) str[source]

Encode an AWS Redshift table into LLM-friendly compact format.

Format:

Table TableName DistributionStyle Distribution Style (
    encoded_column_info_1,
    encoded_column_info_2,
    ...
)

Redshift-specific features:

  • Distribution Style: Shows how data is distributed (KEY, EVEN, ALL)

  • Distribution Keys: Indicates which columns control data distribution

  • Sort Keys: Shows column ordering for query optimization

  • Compression: Displays encoding for each column

Parameters:

table_info – Table metadata with Redshift-specific properties

Returns:

Compact table representation string

Example:

Table users KEY Distribution Style (
    user_id:str*DK*NN*lzo,
    create_time:dt*SK-1*NN*delta,
    description:str*lzo,
)
mcp_ohmy_sql.db.aws_redshift.schema_2_encoder.encode_schema_info(schema_info: SchemaInfo) str[source]

Encode an AWS Redshift schema into LLM-friendly compact format.

Format:

Schema SchemaName (
    encoded_table_info_1,
    encoded_table_info_2,
    ...,
)

Key benefits for LLM consumption:

  • Redshift Optimization: Highlights distribution and sort keys for query performance understanding

  • Compression Visibility: Shows encoding schemes for storage optimization

  • Token Efficiency: Compact format reduces token usage while preserving Redshift-specific metadata

  • Performance Hints: Distribution and sort key information helps LLMs generate optimized queries

Parameters:

schema_info – Schema metadata containing Redshift tables

Returns:

Compact schema representation string

Example:

Schema public (
    Table users KEY Distribution Style (
        user_id:str*DK*NN*lzo,
        create_time:dt*SK-1*NN*delta,
        description:str*lzo,
    ),
    Table orders EVEN Distribution Style (
        order_id:int*PK*NN*delta,
        user_id:str*NN*FK->users.user_id*lzo,
        order_date:dt*SK-1*NN*delta,
    ),
)
mcp_ohmy_sql.db.aws_redshift.schema_2_encoder.encode_database_info(database_info: DatabaseInfo) str[source]

Encode an AWS Redshift database into LLM-friendly compact format.

Format:

aws_redshift Database DatabaseName (
    Schema SchemaName (
        encoded_table_info_1,
        encoded_table_info_2,
        ...,
    ),
    ...
)

Redshift-specific considerations:

  • Cluster Architecture: Represents the distributed nature of Redshift

  • Performance Metadata: Includes distribution and sort key information critical for query optimization

  • Compression Details: Encoding information for storage efficiency

  • Multi-Schema Support: Handles multiple schemas within a cluster

Parameters:

database_info – Database metadata with Redshift-specific schemas

Returns:

Compact database representation string

Example:

aws_redshift Database mcp_ohmy_sql_dev (
    Schema public (
        Table users KEY Distribution Style (
            user_id:str*DK*NN*lzo,
            create_time:dt*SK-1*NN*delta,
        ),
    ),
    Schema analytics (
        Table daily_metrics EVEN Distribution Style (
            metric_date:dt*SK-1*NN*delta,
            metric_value:dec*NN*delta,
        ),
    ),
)