github.com/polarismesh/polaris@v1.17.8/store/mysql/tx.go (about) 1 /** 2 * Tencent is pleased to support the open source community by making Polaris available. 3 * 4 * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. 5 * 6 * Licensed under the BSD 3-Clause License (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * https://opensource.org/licenses/BSD-3-Clause 11 * 12 * Unless required by applicable law or agreed to in writing, software distributed 13 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 14 * CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 * specific language governing permissions and limitations under the License. 16 */ 17 18 package sqldb 19 20 import "github.com/polarismesh/polaris/store" 21 22 type Tx struct { 23 delegateTx *BaseTx 24 } 25 26 func NewSqlDBTx(delegateTx *BaseTx) store.Tx { 27 return &Tx{ 28 delegateTx: delegateTx, 29 } 30 } 31 32 func (t *Tx) Commit() error { 33 return t.delegateTx.Commit() 34 } 35 36 func (t *Tx) Rollback() error { 37 return t.delegateTx.Rollback() 38 } 39 40 func (t *Tx) GetDelegateTx() interface{} { 41 return t.delegateTx 42 } 43 44 func (t *Tx) CreateReadView() error { 45 tx := t.delegateTx 46 _, err := tx.Exec("START TRANSACTION WITH CONSISTENT SNAPSHOT") 47 return err 48 }