mirror of https://github.com/tikv/client-go.git
				
				
				
			
		
			
				
	
	
		
			122 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/bin/bash
 | 
						|
 | 
						|
# Copyright 2024 TiKV Authors
 | 
						|
#
 | 
						|
# Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
# you may not use this file except in compliance with the License.
 | 
						|
# You may obtain a copy of the License at
 | 
						|
#
 | 
						|
#     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
# Unless required by applicable law or agreed to in writing, software
 | 
						|
# distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
# See the License for the specific language governing permissions and
 | 
						|
# limitations under the License.
 | 
						|
 | 
						|
output="cmds_generated.go"
 | 
						|
 | 
						|
cat <<EOF > $output
 | 
						|
// Code generated by gen.sh. DO NOT EDIT.
 | 
						|
 | 
						|
package tikvrpc
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/pingcap/kvproto/pkg/kvrpcpb"
 | 
						|
)
 | 
						|
EOF
 | 
						|
 | 
						|
cmds=(
 | 
						|
  Get
 | 
						|
  Scan
 | 
						|
  Prewrite
 | 
						|
  PessimisticLock
 | 
						|
  PessimisticRollback
 | 
						|
  Commit
 | 
						|
  Cleanup
 | 
						|
  BatchGet
 | 
						|
  BatchRollback
 | 
						|
  ScanLock
 | 
						|
  ResolveLock
 | 
						|
  GC
 | 
						|
  DeleteRange
 | 
						|
  RawGet
 | 
						|
  RawBatchGet
 | 
						|
  RawPut
 | 
						|
  RawBatchPut
 | 
						|
  RawDelete
 | 
						|
  RawBatchDelete
 | 
						|
  RawDeleteRange
 | 
						|
  RawScan
 | 
						|
  RawGetKeyTTL
 | 
						|
  RawCompareAndSwap
 | 
						|
  RawChecksum
 | 
						|
  UnsafeDestroyRange
 | 
						|
  RegisterLockObserver
 | 
						|
  CheckLockObserver
 | 
						|
  RemoveLockObserver
 | 
						|
  PhysicalScanLock
 | 
						|
  Cop
 | 
						|
  BatchCop
 | 
						|
  MvccGetByKey
 | 
						|
  MvccGetByStartTs
 | 
						|
  SplitRegion
 | 
						|
  TxnHeartBeat
 | 
						|
  CheckTxnStatus
 | 
						|
  CheckSecondaryLocks
 | 
						|
  FlashbackToVersion
 | 
						|
  PrepareFlashbackToVersion
 | 
						|
  Flush
 | 
						|
  BufferBatchGet
 | 
						|
)
 | 
						|
 | 
						|
cat <<EOF >> $output
 | 
						|
 | 
						|
func patchCmdCtx(req *Request, cmd CmdType, ctx *kvrpcpb.Context) bool {
 | 
						|
	switch cmd {
 | 
						|
EOF
 | 
						|
 | 
						|
for cmd in "${cmds[@]}"; do
 | 
						|
cat <<EOF >> $output
 | 
						|
	case Cmd${cmd}:
 | 
						|
		if req.rev == 0 {
 | 
						|
			req.${cmd}().Context = ctx
 | 
						|
		} else {
 | 
						|
			cmd := *req.${cmd}()
 | 
						|
			cmd.Context = ctx
 | 
						|
			req.Req = &cmd
 | 
						|
		}
 | 
						|
		req.rev++
 | 
						|
EOF
 | 
						|
done
 | 
						|
 | 
						|
cat <<EOF >> $output
 | 
						|
	default:
 | 
						|
		return false
 | 
						|
	}
 | 
						|
	return true
 | 
						|
}
 | 
						|
EOF
 | 
						|
 | 
						|
cat <<EOF >> $output
 | 
						|
 | 
						|
func isValidReqType(cmd CmdType) bool {
 | 
						|
	switch cmd {
 | 
						|
EOF
 | 
						|
 | 
						|
for cmd in "${cmds[@]}"; do
 | 
						|
cat <<EOF >> $output
 | 
						|
	case Cmd${cmd}:
 | 
						|
		return true
 | 
						|
EOF
 | 
						|
done
 | 
						|
 | 
						|
cat <<EOF >> $output
 | 
						|
	case CmdCopStream, CmdMPPTask, CmdMPPConn, CmdMPPCancel, CmdMPPAlive, CmdEmpty:
 | 
						|
		return true
 | 
						|
	default:
 | 
						|
		return false
 | 
						|
	}
 | 
						|
}
 | 
						|
EOF
 |