001package gudusoft.gsqlparser.nodes;
002
003/**
004 * AST node for StarRocks CANCEL BACKUP and CANCEL RESTORE statements.
005 *
006 * Syntax:
007 * CANCEL BACKUP FROM <db_name>
008 * CANCEL BACKUP FOR EXTERNAL CATALOG
009 * CANCEL RESTORE FROM <db_name>
010 *
011 * Note: If a RESTORE task is canceled during the COMMIT phase, the restored
012 * data will be corrupted and inaccessible.
013 *
014 * Example:
015 * CANCEL BACKUP FROM example_db;
016 * CANCEL RESTORE FROM example_db;
017 */
018public class TCancelBackupRestoreSqlNode extends TParseTreeNode {
019
020    /**
021     * Type of cancel statement - BACKUP or RESTORE
022     */
023    public enum CancelType {
024        BACKUP,
025        RESTORE
026    }
027
028    // Type of cancel statement
029    private CancelType cancelType;
030
031    // FROM clause - database name (required for RESTORE, optional for BACKUP)
032    private TObjectName databaseName;
033
034    // FOR EXTERNAL CATALOG flag (BACKUP only)
035    private boolean forExternalCatalog;
036
037    // Getters and setters
038    public CancelType getCancelType() {
039        return cancelType;
040    }
041
042    public void setCancelType(CancelType cancelType) {
043        this.cancelType = cancelType;
044    }
045
046    public TObjectName getDatabaseName() {
047        return databaseName;
048    }
049
050    public void setDatabaseName(TObjectName databaseName) {
051        this.databaseName = databaseName;
052    }
053
054    public boolean isForExternalCatalog() {
055        return forExternalCatalog;
056    }
057
058    public void setForExternalCatalog(boolean forExternalCatalog) {
059        this.forExternalCatalog = forExternalCatalog;
060    }
061
062    public void init(Object arg1) {
063        // Default initialization
064    }
065}