本文整理匯總了Golang中github.com/youtube/vitess/go/vt/tabletserver/planbuilder.DDLParse函數的典型用法代碼示例。如果您正苦於以下問題:Golang DDLParse函數的具體用法?Golang DDLParse怎麽用?Golang DDLParse使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了DDLParse函數的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: execDDL
func (qre *QueryExecutor) execDDL() (*mproto.QueryResult, error) {
ddlPlan := planbuilder.DDLParse(qre.query)
if ddlPlan.Action == "" {
return nil, NewTabletError(ErrFail, vtrpc.ErrorCode_BAD_INPUT, "DDL is not understood")
}
txid := qre.qe.txPool.Begin(qre.ctx)
defer qre.qe.txPool.SafeCommit(qre.ctx, txid)
// Stolen from Execute
conn := qre.qe.txPool.Get(txid)
defer conn.Recycle()
result, err := qre.execSQL(conn, qre.query, false)
if err != nil {
return nil, err
}
if ddlPlan.TableName != "" && ddlPlan.TableName != ddlPlan.NewName {
// It's a drop or rename.
qre.qe.schemaInfo.DropTable(ddlPlan.TableName)
}
if ddlPlan.NewName != "" {
qre.qe.schemaInfo.CreateOrUpdateTable(qre.ctx, ddlPlan.NewName)
}
return result, nil
}
示例2: execDDL
func (qe *QueryEngine) execDDL(logStats *SQLQueryStats, ddl string) *mproto.QueryResult {
ddlPlan := planbuilder.DDLParse(ddl)
if ddlPlan.Action == "" {
panic(NewTabletError(FAIL, "DDL is not understood"))
}
// Stolen from Begin
conn := getOrPanic(qe.txPool)
txid, err := qe.activeTxPool.SafeBegin(conn)
if err != nil {
conn.Recycle()
panic(err)
}
// Stolen from Commit
defer qe.activeTxPool.SafeCommit(txid)
// Stolen from Execute
conn = qe.activeTxPool.Get(txid)
defer conn.Recycle()
result, err := qe.executeSql(logStats, conn, ddl, false)
if err != nil {
panic(NewTabletErrorSql(FAIL, err))
}
qe.schemaInfo.DropTable(ddlPlan.TableName)
if ddlPlan.Action != sqlparser.AST_DROP { // CREATE, ALTER, RENAME
qe.schemaInfo.CreateTable(ddlPlan.NewName)
}
return result
}
示例3: execDDL
func (qre *QueryExecutor) execDDL() (*sqltypes.Result, error) {
ddlPlan := planbuilder.DDLParse(qre.query)
if ddlPlan.Action == "" {
return nil, NewTabletError(vtrpcpb.ErrorCode_BAD_INPUT, "DDL is not understood")
}
conn, err := qre.qe.txPool.LocalBegin(qre.ctx)
if err != nil {
return nil, err
}
defer qre.qe.txPool.LocalCommit(qre.ctx, conn)
result, err := qre.execSQL(conn, qre.query, false)
if err != nil {
return nil, err
}
if ddlPlan.TableName != "" && ddlPlan.TableName != ddlPlan.NewName {
// It's a drop or rename.
qre.qe.schemaInfo.DropTable(ddlPlan.TableName)
}
if ddlPlan.NewName != "" {
qre.qe.schemaInfo.CreateOrUpdateTable(qre.ctx, ddlPlan.NewName)
}
return result, nil
}
示例4: InvalidateForDDL
// InvalidateForDDL performs schema and rowcache changes for the ddl.
func (qe *QueryEngine) InvalidateForDDL(ddlInvalidate *proto.DDLInvalidate) {
ddlPlan := planbuilder.DDLParse(ddlInvalidate.DDL)
if ddlPlan.Action == "" {
panic(NewTabletError(FAIL, "DDL is not understood"))
}
qe.schemaInfo.DropTable(ddlPlan.TableName)
if ddlPlan.Action != sqlparser.AST_DROP { // CREATE, ALTER, RENAME
qe.schemaInfo.CreateTable(ddlPlan.NewName)
}
}
示例5: handleDDLEvent
func (rci *RowcacheInvalidator) handleDDLEvent(ddl string) {
ddlPlan := planbuilder.DDLParse(ddl)
if ddlPlan.Action == "" {
panic(NewTabletError(ErrFail, vtrpc.ErrorCode_BAD_INPUT, "DDL is not understood"))
}
if ddlPlan.TableName != "" && ddlPlan.TableName != ddlPlan.NewName {
// It's a drop or rename.
rci.qe.schemaInfo.DropTable(ddlPlan.TableName)
}
if ddlPlan.NewName != "" {
rci.qe.schemaInfo.CreateOrUpdateTable(context.Background(), ddlPlan.NewName)
}
}
示例6: handleDDLEvent
func (rci *RowcacheInvalidator) handleDDLEvent(ddl string) {
ddlPlan := planbuilder.DDLParse(ddl)
if ddlPlan.Action == "" {
panic(NewTabletError(FAIL, "DDL is not understood"))
}
if ddlPlan.TableName != "" && ddlPlan.TableName != ddlPlan.NewName {
// It's a drop or rename.
rci.qe.schemaInfo.DropTable(ddlPlan.TableName)
}
if ddlPlan.NewName != "" {
rci.qe.schemaInfo.CreateOrUpdateTable(ddlPlan.NewName)
}
}
示例7: InvalidateForDDL
// InvalidateForDDL performs schema and rowcache changes for the ddl.
func (qe *QueryEngine) InvalidateForDDL(ddl string) {
ddlPlan := planbuilder.DDLParse(ddl)
if ddlPlan.Action == "" {
panic(NewTabletError(FAIL, "DDL is not understood"))
}
if ddlPlan.TableName != "" && ddlPlan.TableName != ddlPlan.NewName {
// It's a drop or rename.
qe.schemaInfo.DropTable(ddlPlan.TableName)
}
if ddlPlan.NewName != "" {
qe.schemaInfo.CreateOrUpdateTable(ddlPlan.NewName)
}
}
示例8: execDDL
func (qre *QueryExecutor) execDDL() *mproto.QueryResult {
ddlPlan := planbuilder.DDLParse(qre.query)
if ddlPlan.Action == "" {
panic(NewTabletError(FAIL, "DDL is not understood"))
}
txid := qre.qe.txPool.Begin()
defer qre.qe.txPool.SafeCommit(txid)
// Stolen from Execute
conn := qre.qe.txPool.Get(txid)
defer conn.Recycle()
result := qre.execSQL(conn, qre.query, false)
if ddlPlan.TableName != "" && ddlPlan.TableName != ddlPlan.NewName {
// It's a drop or rename.
qre.qe.schemaInfo.DropTable(ddlPlan.TableName)
}
if ddlPlan.NewName != "" {
qre.qe.schemaInfo.CreateOrUpdateTable(ddlPlan.NewName)
}
return result
}