src/databao_context_engine/plugins/databases/duckdb_introspector.py [70:118]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            "checks": self._sql_checks(),
            "fks": self._sql_foreign_keys(),
            "idx": self._sql_indexes(),
        }

    def _sql_relations(self) -> str:
        return r"""
            SELECT
                table_name,
                CASE table_type
                    WHEN 'BASE TABLE' THEN 'table'
                    WHEN 'VIEW' THEN 'view'
                    WHEN 'MATERIALIZED VIEW' THEN 'materialized_view'
                    ELSE lower(table_type)
                END AS kind,
                NULL::VARCHAR AS description
            FROM 
                information_schema.tables
            WHERE 
                table_schema = {SCHEMA}
            ORDER BY 
                table_name; 
        """

    def _sql_columns(self) -> str:
        return r"""
            SELECT
                c.table_name,
                c.column_name,
                c.ordinal_position AS ordinal_position,
                c.data_type AS data_type,
                CASE 
                    WHEN c.is_nullable = 'YES' THEN TRUE 
                    ELSE FALSE 
                END AS is_nullable,
                c.column_default AS default_expression,
                NULL::VARCHAR AS generated,
                NULL::VARCHAR AS description
            FROM 
                information_schema.columns c
            WHERE 
                c.table_schema = {SCHEMA}
            ORDER BY 
                c.table_name, 
                c.ordinal_position; 
        """

    def _sql_primary_keys(self) -> str:
        return r"""
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



src/databao_context_engine/plugins/databases/mysql_introspector.py [105:162]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            "checks": self._sql_checks(),
            "fks": self._sql_foreign_keys(),
            "idx": self._sql_indexes(),
        }

    def _sql_relations(self) -> str:
        return r"""
            SELECT
                t.TABLE_NAME        AS table_name,
                CASE t.TABLE_TYPE
                    WHEN 'BASE TABLE'  THEN 'table'
                    WHEN 'VIEW'        THEN 'view'
                    ELSE LOWER(t.TABLE_TYPE)
                END                 AS kind,
                CASE t.TABLE_TYPE
                    WHEN 'VIEW' THEN NULL
                    ELSE NULLIF(t.TABLE_COMMENT, '')
                END                 AS description
            FROM 
                INFORMATION_SCHEMA.TABLES t
            WHERE 
                t.TABLE_SCHEMA = {SCHEMA}
            ORDER BY 
                t.TABLE_NAME
        """

    def _sql_columns(self) -> str:
        return r"""
            SELECT
                c.TABLE_NAME                         AS table_name,
                c.COLUMN_NAME                        AS column_name,
                c.ORDINAL_POSITION                   AS ordinal_position,
                c.COLUMN_TYPE                        AS data_type,
                CASE 
                    WHEN c.IS_NULLABLE = 'YES' THEN TRUE 
                    ELSE FALSE 
                END AS is_nullable,
                CASE
                    WHEN c.EXTRA RLIKE '\\b(VIRTUAL|STORED) GENERATED\\b' THEN NULLIF(c.GENERATION_EXPRESSION, '')
                    ELSE c.COLUMN_DEFAULT
                END AS default_expression,
                CASE
                    WHEN c.EXTRA LIKE '%auto_increment%' THEN 'identity'
                    WHEN c.EXTRA RLIKE '\\b(VIRTUAL|STORED) GENERATED\\b' THEN 'computed'
                    ELSE NULL
                END AS "generated",
                NULLIF(c.COLUMN_COMMENT, '')         AS description
            FROM 
                INFORMATION_SCHEMA.COLUMNS c
            WHERE 
                c.TABLE_SCHEMA = {SCHEMA}
            ORDER BY 
                c.TABLE_NAME, 
                c.ORDINAL_POSITION
        """

    def _sql_primary_keys(self) -> str:
        return r"""
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



