Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
237 changes: 237 additions & 0 deletions doris/ast/ddlnodes.go
Original file line number Diff line number Diff line change
Expand Up @@ -368,3 +368,240 @@ type DropViewStmt struct {
func (n *DropViewStmt) Tag() NodeTag { return T_DropViewStmt }

var _ Node = (*DropViewStmt)(nil)

// ---------------------------------------------------------------------------
// STORAGE VAULT DDL nodes (T5.3)
// ---------------------------------------------------------------------------

// CreateStorageVaultStmt represents:
//
// CREATE STORAGE VAULT [IF NOT EXISTS] name PROPERTIES(...)
type CreateStorageVaultStmt struct {
Name string
IfNotExists bool
Properties []*Property
Loc Loc
}

// Tag implements Node.
func (n *CreateStorageVaultStmt) Tag() NodeTag { return T_CreateStorageVaultStmt }

var _ Node = (*CreateStorageVaultStmt)(nil)

// AlterStorageVaultStmt represents:
//
// ALTER STORAGE VAULT name PROPERTIES(...)
type AlterStorageVaultStmt struct {
Name string
Properties []*Property
Loc Loc
}

// Tag implements Node.
func (n *AlterStorageVaultStmt) Tag() NodeTag { return T_AlterStorageVaultStmt }

var _ Node = (*AlterStorageVaultStmt)(nil)

// DropStorageVaultStmt represents:
//
// DROP STORAGE VAULT [IF EXISTS] name
type DropStorageVaultStmt struct {
Name string
IfExists bool
Loc Loc
}

// Tag implements Node.
func (n *DropStorageVaultStmt) Tag() NodeTag { return T_DropStorageVaultStmt }

var _ Node = (*DropStorageVaultStmt)(nil)

// SetDefaultStorageVaultStmt represents:
//
// SET DEFAULT STORAGE VAULT name
type SetDefaultStorageVaultStmt struct {
Name string
Loc Loc
}

// Tag implements Node.
func (n *SetDefaultStorageVaultStmt) Tag() NodeTag { return T_SetDefaultStorageVaultStmt }

var _ Node = (*SetDefaultStorageVaultStmt)(nil)

// UnsetDefaultStorageVaultStmt represents:
//
// UNSET DEFAULT STORAGE VAULT
type UnsetDefaultStorageVaultStmt struct {
Loc Loc
}

// Tag implements Node.
func (n *UnsetDefaultStorageVaultStmt) Tag() NodeTag { return T_UnsetDefaultStorageVaultStmt }

var _ Node = (*UnsetDefaultStorageVaultStmt)(nil)

// ---------------------------------------------------------------------------
// STORAGE POLICY DDL nodes (T5.3)
// ---------------------------------------------------------------------------

// CreateStoragePolicyStmt represents:
//
// CREATE STORAGE POLICY [IF NOT EXISTS] name PROPERTIES(...)
type CreateStoragePolicyStmt struct {
Name string
IfNotExists bool
Properties []*Property
Loc Loc
}

// Tag implements Node.
func (n *CreateStoragePolicyStmt) Tag() NodeTag { return T_CreateStoragePolicyStmt }

var _ Node = (*CreateStoragePolicyStmt)(nil)

// AlterStoragePolicyStmt represents:
//
// ALTER STORAGE POLICY name PROPERTIES(...)
type AlterStoragePolicyStmt struct {
Name string
Properties []*Property
Loc Loc
}

// Tag implements Node.
func (n *AlterStoragePolicyStmt) Tag() NodeTag { return T_AlterStoragePolicyStmt }

var _ Node = (*AlterStoragePolicyStmt)(nil)

// DropStoragePolicyStmt represents:
//
// DROP STORAGE POLICY [IF EXISTS] name
type DropStoragePolicyStmt struct {
Name string
IfExists bool
Loc Loc
}

// Tag implements Node.
func (n *DropStoragePolicyStmt) Tag() NodeTag { return T_DropStoragePolicyStmt }

var _ Node = (*DropStoragePolicyStmt)(nil)

// ---------------------------------------------------------------------------
// REPOSITORY DDL nodes (T5.3)
// ---------------------------------------------------------------------------

// CreateRepositoryStmt represents:
//
// CREATE [READ ONLY] REPOSITORY name
// WITH {S3 | HDFS | BROKER broker_name}
// ON LOCATION "uri"
// PROPERTIES(...)
type CreateRepositoryStmt struct {
Name string
ReadOnly bool
Type string // "S3", "HDFS", or "BROKER"
BrokerName string // for BROKER form only
Properties []*Property
Loc Loc
}

// Tag implements Node.
func (n *CreateRepositoryStmt) Tag() NodeTag { return T_CreateRepositoryStmt }

var _ Node = (*CreateRepositoryStmt)(nil)

// AlterRepositoryStmt represents:
//
// ALTER REPOSITORY name PROPERTIES(...)
type AlterRepositoryStmt struct {
Name string
Properties []*Property
Loc Loc
}

// Tag implements Node.
func (n *AlterRepositoryStmt) Tag() NodeTag { return T_AlterRepositoryStmt }

var _ Node = (*AlterRepositoryStmt)(nil)

// DropRepositoryStmt represents:
//
// DROP REPOSITORY name
type DropRepositoryStmt struct {
Name string
Loc Loc
}

// Tag implements Node.
func (n *DropRepositoryStmt) Tag() NodeTag { return T_DropRepositoryStmt }

var _ Node = (*DropRepositoryStmt)(nil)

// ---------------------------------------------------------------------------
// STAGE DDL nodes (T5.3)
// ---------------------------------------------------------------------------

// CreateStageStmt represents:
//
// CREATE STAGE [IF NOT EXISTS] name PROPERTIES(...)
type CreateStageStmt struct {
Name string
IfNotExists bool
Properties []*Property
Loc Loc
}

// Tag implements Node.
func (n *CreateStageStmt) Tag() NodeTag { return T_CreateStageStmt }

var _ Node = (*CreateStageStmt)(nil)

// DropStageStmt represents:
//
// DROP STAGE [IF EXISTS] name
type DropStageStmt struct {
Name string
IfExists bool
Loc Loc
}

// Tag implements Node.
func (n *DropStageStmt) Tag() NodeTag { return T_DropStageStmt }

var _ Node = (*DropStageStmt)(nil)

// ---------------------------------------------------------------------------
// FILE DDL nodes (T5.3)
// ---------------------------------------------------------------------------

// CreateFileStmt represents:
//
// CREATE FILE file_name [IN db] PROPERTIES(...)
type CreateFileStmt struct {
Name string
Database string // optional IN db_name
Properties []*Property
Loc Loc
}

// Tag implements Node.
func (n *CreateFileStmt) Tag() NodeTag { return T_CreateFileStmt }

var _ Node = (*CreateFileStmt)(nil)

// DropFileStmt represents:
//
// DROP FILE file_name [FROM db] PROPERTIES(...)
type DropFileStmt struct {
Name string
Database string // optional FROM db_name
Properties []*Property
Loc Loc
}

// Tag implements Node.
func (n *DropFileStmt) Tag() NodeTag { return T_DropFileStmt }

var _ Node = (*DropFileStmt)(nil)
30 changes: 30 additions & 0 deletions doris/ast/loc.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,36 @@ func NodeLoc(n Node) Loc {
return v.Loc
case *MergeClause:
return v.Loc
case *CreateStorageVaultStmt:
return v.Loc
case *AlterStorageVaultStmt:
return v.Loc
case *DropStorageVaultStmt:
return v.Loc
case *SetDefaultStorageVaultStmt:
return v.Loc
case *UnsetDefaultStorageVaultStmt:
return v.Loc
case *CreateStoragePolicyStmt:
return v.Loc
case *AlterStoragePolicyStmt:
return v.Loc
case *DropStoragePolicyStmt:
return v.Loc
case *CreateRepositoryStmt:
return v.Loc
case *AlterRepositoryStmt:
return v.Loc
case *DropRepositoryStmt:
return v.Loc
case *CreateStageStmt:
return v.Loc
case *DropStageStmt:
return v.Loc
case *CreateFileStmt:
return v.Loc
case *DropFileStmt:
return v.Loc
default:
return NoLoc()
}
Expand Down
85 changes: 85 additions & 0 deletions doris/ast/nodetags.go
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,61 @@ const (

// T_MergeClause is the tag for *MergeClause (one WHEN clause inside MERGE).
T_MergeClause

// DDL — STORAGE VAULT nodes (T5.3).

// T_CreateStorageVaultStmt is the tag for *CreateStorageVaultStmt.
T_CreateStorageVaultStmt

// T_AlterStorageVaultStmt is the tag for *AlterStorageVaultStmt.
T_AlterStorageVaultStmt

// T_DropStorageVaultStmt is the tag for *DropStorageVaultStmt.
T_DropStorageVaultStmt

// T_SetDefaultStorageVaultStmt is the tag for *SetDefaultStorageVaultStmt.
T_SetDefaultStorageVaultStmt

// T_UnsetDefaultStorageVaultStmt is the tag for *UnsetDefaultStorageVaultStmt.
T_UnsetDefaultStorageVaultStmt

// DDL — STORAGE POLICY nodes (T5.3).

// T_CreateStoragePolicyStmt is the tag for *CreateStoragePolicyStmt.
T_CreateStoragePolicyStmt

// T_AlterStoragePolicyStmt is the tag for *AlterStoragePolicyStmt.
T_AlterStoragePolicyStmt

// T_DropStoragePolicyStmt is the tag for *DropStoragePolicyStmt.
T_DropStoragePolicyStmt

// DDL — REPOSITORY nodes (T5.3).

// T_CreateRepositoryStmt is the tag for *CreateRepositoryStmt.
T_CreateRepositoryStmt

// T_AlterRepositoryStmt is the tag for *AlterRepositoryStmt.
T_AlterRepositoryStmt

// T_DropRepositoryStmt is the tag for *DropRepositoryStmt.
T_DropRepositoryStmt

// DDL — STAGE nodes (T5.3).

// T_CreateStageStmt is the tag for *CreateStageStmt.
T_CreateStageStmt

// T_DropStageStmt is the tag for *DropStageStmt.
T_DropStageStmt

// DDL — FILE nodes (T5.3).

// T_CreateFileStmt is the tag for *CreateFileStmt.
T_CreateFileStmt

// T_DropFileStmt is the tag for *DropFileStmt.
T_DropFileStmt
)

// String returns a human-readable representation of the tag.
Expand Down Expand Up @@ -327,6 +382,36 @@ func (t NodeTag) String() string {
return "MergeStmt"
case T_MergeClause:
return "MergeClause"
case T_CreateStorageVaultStmt:
return "CreateStorageVaultStmt"
case T_AlterStorageVaultStmt:
return "AlterStorageVaultStmt"
case T_DropStorageVaultStmt:
return "DropStorageVaultStmt"
case T_SetDefaultStorageVaultStmt:
return "SetDefaultStorageVaultStmt"
case T_UnsetDefaultStorageVaultStmt:
return "UnsetDefaultStorageVaultStmt"
case T_CreateStoragePolicyStmt:
return "CreateStoragePolicyStmt"
case T_AlterStoragePolicyStmt:
return "AlterStoragePolicyStmt"
case T_DropStoragePolicyStmt:
return "DropStoragePolicyStmt"
case T_CreateRepositoryStmt:
return "CreateRepositoryStmt"
case T_AlterRepositoryStmt:
return "AlterRepositoryStmt"
case T_DropRepositoryStmt:
return "DropRepositoryStmt"
case T_CreateStageStmt:
return "CreateStageStmt"
case T_DropStageStmt:
return "DropStageStmt"
case T_CreateFileStmt:
return "CreateFileStmt"
case T_DropFileStmt:
return "DropFileStmt"
default:
return "Unknown"
}
Expand Down
Loading
Loading