in internal/database/mysql/mysql.go [313:347]
func (h mysqlHandler) GenerateCommentSQL(db *database.DB, data *database.CommentData, enrichments map[string]bool) (string, error) {
if data == nil {
return "", fmt.Errorf("metadata cannot be nil")
}
if data.TableName == "" || data.ColumnName == "" {
return "", fmt.Errorf("table and column names cannot be empty")
}
if data.ColumnDataType == "" {
return "", fmt.Errorf("column datatype cannot be empty for MySQL comment generation")
}
config := database.GetConfig() // Retrieve global config
newMetadataComment := h.generateMetadataComment(data, enrichments)
existingComment, err := h.GetColumnComment(context.Background(), db, data.TableName, data.ColumnName) // Get existing comment
if err != nil {
return "", err
}
finalComment := h.mergeComments(existingComment, newMetadataComment, config.UpdateExistingMode) // Pass updateExistingMode
quotedComment, err := quotedCommentSQL(finalComment)
if err != nil {
return "", err
}
if finalComment == "" {
return "", nil
}
return fmt.Sprintf(
"ALTER TABLE %s MODIFY COLUMN %s %s COMMENT %s;",
h.QuoteIdentifier(data.TableName),
h.QuoteIdentifier(data.ColumnName),
data.ColumnDataType,
quotedComment,
), nil
}