Documentation
¶
Index ¶
- Constants
- func GenerateMetadataCommentString(data *CommentData, enrichments map[string]bool, formattedExamples string) string
- func GenerateTableMetadataCommentString(data *TableCommentData, enrichments map[string]bool) string
- func MergeComments(existingComment string, newMetadataComment string, updateExistingMode string) string
- func RegisterDialectHandler(dialect string, handler DialectHandler)
- type ColumnInfo
- type CommentData
- type DB
- func (db *DB) Close() error
- func (db *DB) ExecuteSQLStatements(ctx context.Context, sqlStatements []string) error
- func (db *DB) GenerateCommentSQL(data *CommentData, enrichments map[string]bool) (string, error)
- func (db *DB) GenerateDeleteCommentSQL(ctx context.Context, tableName string, columnName string) (string, error)
- func (db *DB) GenerateDeleteTableCommentSQL(ctx context.Context, tableName string) (string, error)
- func (db *DB) GenerateTableCommentSQL(data *TableCommentData, enrichments map[string]bool) (string, error)
- func (db *DB) GetColumnComment(ctx context.Context, tableName string, columnName string) (string, error)
- func (db *DB) GetColumnMetadata(tableName string, columnName string) (map[string]interface{}, error)
- func (db *DB) GetConfig() config.DatabaseConfig
- func (db *DB) GetForeignKeys(tableName, columnName string) ([]ForeignKeyReference, error)
- func (db *DB) GetTableComment(ctx context.Context, tableName string) (string, error)
- func (db *DB) ListColumns(tableName string) ([]ColumnInfo, error)
- func (db *DB) ListTables() ([]string, error)
- func (db *DB) Ping(ctx context.Context) error
- type DBAdapter
- type DialectHandler
- type ForeignKeyReference
- type TableCommentData
Constants ¶
const ( StartTag = "<gemini>" EndTag = "</gemini>" )
Variables ¶
This section is empty.
Functions ¶
func GenerateMetadataCommentString ¶
func GenerateMetadataCommentString(data *CommentData, enrichments map[string]bool, formattedExamples string) string
generateMetadataCommentString constructs the metadata portion of the column comment. It takes the pre-formatted example string as input.
func GenerateTableMetadataCommentString ¶
func GenerateTableMetadataCommentString(data *TableCommentData, enrichments map[string]bool) string
generateTableMetadataCommentString constructs the metadata portion of the table comment.
func MergeComments ¶
func MergeComments(existingComment string, newMetadataComment string, updateExistingMode string) string
mergeComments combines an existing comment with new metadata, handling tags.
func RegisterDialectHandler ¶
func RegisterDialectHandler(dialect string, handler DialectHandler)
Types ¶
type ColumnInfo ¶
ColumnInfo holds basic information about a database column.
type CommentData ¶
type CommentData struct {
TableName string
ColumnName string
ColumnDataType string
ExampleValues []string
DistinctCount int64
NullCount int64
Description string
ForeignKeys []ForeignKeyReference
}
CommentData holds information needed to generate a column comment.
type DB ¶
type DB struct {
Pool *sql.DB
Handler DialectHandler
Config config.DatabaseConfig
}
DB holds the database connection pool and dialect handler.
func (*DB) ExecuteSQLStatements ¶
func (*DB) GenerateCommentSQL ¶
func (*DB) GenerateDeleteCommentSQL ¶
func (*DB) GenerateDeleteTableCommentSQL ¶
func (*DB) GenerateTableCommentSQL ¶
func (*DB) GetColumnComment ¶
func (*DB) GetColumnMetadata ¶
func (*DB) GetConfig ¶
func (db *DB) GetConfig() config.DatabaseConfig
func (*DB) GetForeignKeys ¶
func (db *DB) GetForeignKeys(tableName, columnName string) ([]ForeignKeyReference, error)
GetForeignKeys retrieves foreign key references for a specific column.
func (*DB) GetTableComment ¶
func (*DB) ListColumns ¶
func (db *DB) ListColumns(tableName string) ([]ColumnInfo, error)
func (*DB) ListTables ¶
type DBAdapter ¶
type DBAdapter interface {
ListTables() ([]string, error)
ListColumns(tableName string) ([]ColumnInfo, error)
GetColumnMetadata(tableName string, columnName string) (map[string]interface{}, error)
GetColumnComment(ctx context.Context, tableName string, columnName string) (string, error)
GetTableComment(ctx context.Context, tableName string) (string, error)
GenerateCommentSQL(data *CommentData, enrichments map[string]bool) (string, error)
GenerateTableCommentSQL(data *TableCommentData, enrichments map[string]bool) (string, error)
GenerateDeleteCommentSQL(ctx context.Context, tableName string, columnName string) (string, error)
GenerateDeleteTableCommentSQL(ctx context.Context, tableName string) (string, error)
ExecuteSQLStatements(ctx context.Context, sqlStatements []string) error
Ping(ctx context.Context) error
Close() error
GetConfig() config.DatabaseConfig
GetForeignKeys(tableName, columnName string) ([]ForeignKeyReference, error)
}
DBAdapter defines the interface for database operations needed by the enricher.
type DialectHandler ¶
type DialectHandler interface {
CreateCloudSQLPool(cfg config.DatabaseConfig) (*sql.DB, error)
CreateStandardPool(cfg config.DatabaseConfig) (*sql.DB, error)
QuoteIdentifier(name string) string
ListTables(db *DB) ([]string, error)
ListColumns(db *DB, tableName string) ([]ColumnInfo, error)
GetForeignKeys(db *DB, tableName string, columnName string) ([]ForeignKeyReference, error)
GetColumnMetadata(db *DB, tableName string, columnName string) (map[string]interface{}, error)
GetColumnComment(ctx context.Context, db *DB, tableName string, columnName string) (string, error)
GetTableComment(ctx context.Context, db *DB, tableName string) (string, error)
GenerateCommentSQL(db *DB, data *CommentData, enrichments map[string]bool) (string, error)
GenerateTableCommentSQL(db *DB, data *TableCommentData, enrichments map[string]bool) (string, error)
GenerateDeleteCommentSQL(ctx context.Context, db *DB, tableName string, columnName string) (string, error)
GenerateDeleteTableCommentSQL(ctx context.Context, db *DB, tableName string) (string, error)
}
DialectHandler interface remains the same
func GetDialectHandler ¶
func GetDialectHandler(dialect string) (DialectHandler, error)
type ForeignKeyReference ¶
type ForeignKeyReference struct {
ReferencedTable string
ReferencedColumn string
ConstraintName string
}
ForeignKeyReference holds information about a foreign key relationship.
type TableCommentData ¶
TableCommentData holds information needed to generate a table comment.