func()

in internal/database/mysql/mysql.go [350:388]


func (h mysqlHandler) GenerateDeleteCommentSQL(ctx context.Context, db *database.DB, tableName string, columnName string) (string, error) {
	if tableName == "" || columnName == "" {
		return "", fmt.Errorf("table and column names cannot be empty")
	}

	existingComment, err := h.GetColumnComment(ctx, db, tableName, columnName)
	if err != nil {
		return "", err
	}

	startTag := "<gemini>"
	endTag := "</gemini>"
	startIndex := strings.Index(existingComment, startTag)
	endIndex := strings.LastIndex(existingComment, endTag)

	var finalComment string
	if startIndex != -1 && endIndex != -1 && endIndex > startIndex {
		// Gemini tags found, remove content within tags
		prefix := existingComment[:startIndex]
		suffix := existingComment[endIndex+len(endTag):]
		finalComment = strings.TrimSpace(prefix + suffix) // Trim leading/trailing spaces after removing gemini part
	} else {
		// Gemini tags not found, or invalid tags, keep original comment (or remove gemini tags if present but invalid)
		finalComment = existingComment
	}

	quotedComment, err := quotedCommentSQL(finalComment)
	if err != nil {
		return "", err
	}

	return fmt.Sprintf(
		"ALTER TABLE %s MODIFY COLUMN %s %s COMMENT %s;",
		h.QuoteIdentifier(tableName),
		h.QuoteIdentifier(columnName),
		getColumnDataType(ctx, db, tableName, columnName),
		quotedComment,
	), nil
}