pkg/datasource/sql/undo/parser/branch_undo_log.proto (169 lines of code) (raw):
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.
*/
syntax = "proto3";
package parser;
import "google/protobuf/any.proto";
option go_package=".;parser";
message BranchUndoLog {
string Xid = 1;
uint64 BranchID = 2;
repeated SQLUndoLog Logs = 3;
}
message SQLUndoLog {
SQLType SQLType = 1;
string TableName = 2;
RecordImage BeforeImage = 3;
RecordImage AfterImage = 4;
}
message RecordImage {
int32 index = 1;
string TableName = 2;
SQLType SQLType = 3;
repeated RowImage Rows = 4;
TableMeta TableMeta = 5;
}
message RowImage {
repeated ColumnImage Columns = 1;
}
message ColumnImage {
IndexType KeyType = 1;
string ColumnName = 2;
JDBCType ColumnType = 3;
google.protobuf.Any Value = 4;
}
message TableMeta {
string TableName = 1;
map<string, ColumnMeta> Columns = 2;
map<string, IndexMeta> Indexs = 3;
repeated string ColumnNames = 4;
}
message ColumnMeta {
string Schema = 1;
string Table = 2;
bytes ColumnDef = 3;
bool Autoincrement = 4;
string ColumnName = 5;
string ColumnType = 6;
int32 DatabaseType = 7;
string DatabaseTypeString = 8;
string ColumnKey = 9;
int32 IsNullable = 10;
string Extra = 11;
}
message IndexMeta {
string Schema = 1;
string Table = 2;
string Name = 3;
string ColumnName = 4;
IndexType IType = 5;
repeated ColumnMeta Columns = 6;
}
enum IndexType {
IndexTypeNull = 0;
IndexTypePrimaryKey = 1;
}
enum JDBCType {
JDBCTypeNull = 0;
JDBCTypeBit = -7;
JDBCTypeTinyInt = -6;
JDBCTypeSmallInt = 5;
JDBCTypeInteger = 4;
JDBCTypeBigInt = -5;
JDBCTypeFloat = 6;
JDBCTypeReal = 7;
JDBCTypeDouble = 8;
JDBCTypeNumberic = 2;
JDBCTypeDecimal = 3;
JDBCTypeChar = 1;
JDBCTypeVarchar = 12;
JDBCTypeLongVarchar = -1;
JDBCTypeDate = 91;
JDBCTypeTime = 92;
JDBCTypeTimestamp = 93;
JDBCTypeBinary = -2;
JDBCTypeVarBinary = -3;
JDBCTypeLongVarBinary = -4;
JDBCTypeOther = 1111;
JDBCTypeJavaObject = 2000;
JDBCTypeDistinct = 2001;
JDBCTypeStruct = 2002;
JDBCTypeArray = 2003;
JDBCTypeBlob = 2004;
JDBCTypeClob = 2005;
JDBCTypeRef = 2006;
JDBCTypeDateLink = 70;
JDBCTypeBoolean = 16;
JDBCTypeRowID = -8;
JDBCTypeNchar = -15;
JDBCTypeNvarchar = -9;
JDBCTypeLongNvVarchar = -16;
JDBCTypeNclob = 2011;
JDBCTypeSqlXML = 2009;
JDBCTypeRefCursor = 2012;
JDBCTypeTimeWithTimeZone = 2013;
JDBCTypeTimestampWithTimezone = 2014;
}
enum SQLType {
SQLTypeSelect = 0;
SQLTypeInsert = 1;
SQLTypeUpdate = 2;
SQLTypeDelete = 3;
SQLTypeSelectForUpdate = 4;
SQLTypeReplace = 5;
SQLTypeTruncate = 6;
SQLTypeCreate = 7;
SQLTypeDrop = 8;
SQLTypeLoad = 9;
SQLTypeMerge = 10;
SQLTypeShow = 11;
SQLTypeAlter = 12;
SQLTypeRename = 13;
SQLTypeDump = 14;
SQLTypeDebug = 15;
SQLTypeExplain = 16;
SQLTypeProcedure = 17;
SQLTypeDesc = 18;
SQLLastInsertID = 19;
SQLSelectWithoutTable = 20;
SQLCreateSequence = 21;
SQLShowSequence = 22;
SQLGetSequence = 23;
SQLAlterSequence = 24;
SQLDropSequence = 25;
SQLTddlShow = 26;
SQLTypeSet = 27;
SQLTypeReload = 28;
SQLTypeSelectUnion = 29;
SQLTypeCreateTable = 30;
SQLTypeDropTable = 31;
SQLTypeAlterTable = 32;
SQLTypeSavePoint = 33;
SQLTypeSelectFromUpdate = 34;
SQLTypeMultiDelete = 35;
SQLTypeMultiUpdate = 36;
SQLTypeCreateIndex = 37;
SQLTypeDropIndex = 38;
SQLTypeKill = 39;
SQLTypeLockTables = 40;
SQLTypeUnLockTables = 41;
SQLTypeCheckTable = 42;
SQLTypeSelectFoundRows = 43;
SQLTypeInsertIgnore = 101; // Adjusted the value to match Go's logic
SQLTypeInsertOnDuplicateUpdate = 102;
SQLTypeMulti = 1044; // Adjusted the value to match Go's logic
SQLTypeUnknown = 1045;
}