proto

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 25, 2024 License: Apache-2.0 Imports: 7 Imported by: 20

Documentation

Index

Constants

View Source
const (
	HeaderVersion      = "head-version"    // 客户端版本
	HeaderQueryMode    = "head-query-mode" // 查询模式 0-单执行单元(默认)1-多执行单元并行(不含嵌套子查询) 2-复合查询(包含嵌套子查询)
	HeaderRequestID    = "head-request-id" // 请求唯一id
	HeaderTraceID      = "head-trace-id"   // trace-id
	HeaderTimestamp    = "head-timestamp"  // 请求时间戳(精确到毫秒)
	HeaderTimeout      = "head-timeout"    // 请求超时时间,单位ms
	HeaderCaller       = "head-caller"     // 主调服务的名称 app.server.service
	HeaderAppid        = "head-appid"      // appid
	HeaderAuthRand     = "head-auth-rand"  // 随机生成 0-9999999 的数字,相同 timestamp 不允许出现同样的 ip、auth_rand。为了避免碰撞,0-9999999,单机理论最大支持 100 亿/秒的并发。
	HeaderSign         = "head-sign"       // sign 签名,为 md5(appid+secret+version+request_type+query_mode+request_id+trace_id+timestamp+timeout+caller+compress+ip+auth_rand)
	HeaderIsNil        = "head-is-nil"     // 返回是否为空(针对单执行单元)
	HeaderErrorType    = "head-error-type" // 错误类型
	HeaderErrorCode    = "head-error-code" // 错误码
	HeaderErrorMessage = "head-error-msg"  // 错误消息
	HeaderRspNils      = "head-rsp-nils"   // 是否为空返回,是一个 json 串,内容为:map[string]bool(针对多执行单元并发)
	HeaderRspErrs      = "head-rsp-errs"   // 错误返回,是一个json 串,内容为:map[string]Error(针对多执行单元并发)
)

Variables

View Source
var File_header_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type CompResult

type CompResult struct {
	Error  *Error      `orm:"error,omitempty" json:"error,omitempty"`   // 错误返回
	IsNil  bool        `orm:"is_nil,omitempty" json:"is_nil,omitempty"` // 是否为空
	Detail *Detail     `orm:"detail,omitempty" json:"detail,omitempty"` // 查询细节信息
	Data   interface{} `orm:"data" json:"data"`                         // 返回数据
}

CompResult 混合查询返回结果

type Detail

type Detail struct {
	Total     uint64                 `orm:"total" json:"total"`                               // 总数
	TotalPage uint32                 `orm:"total_page,omitempty" json:"total_page,omitempty"` // 总页数
	Page      int                    `orm:"page,omitempty" json:"page,omitempty"`             // 当前分页
	Size      int                    `orm:"size,omitempty" json:"size,omitempty"`             // 每页大小
	Scroll    *Scroll                `orm:"scroll,omitempty" json:"scroll,omitempty"`         // 滚动翻页信息
	Extras    map[string]interface{} `orm:"extras,omitempty" json:"extras,omitempty"`         // 更多详细信息
}

Detail 其他查询细节信息,例如 分页信息、滚动翻页信息、其他信息等。

type Error

type Error struct {
	Type int32  `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` //错误类型
	Code int32  `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` //错误码
	Msg  string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"`    //错误信息
	// contains filtered or unexported fields
}

func (*Error) Descriptor deprecated

func (*Error) Descriptor() ([]byte, []int)

Deprecated: Use Error.ProtoReflect.Descriptor instead.

func (*Error) GetCode

func (x *Error) GetCode() int32

func (*Error) GetMsg

func (x *Error) GetMsg() string

func (*Error) GetType

func (x *Error) GetType() int32

func (*Error) ProtoMessage

func (*Error) ProtoMessage()

func (*Error) ProtoReflect

func (x *Error) ProtoReflect() protoreflect.Message

func (*Error) Reset

func (x *Error) Reset()

func (*Error) String

func (x *Error) String() string

func (*Error) ToError

func (x *Error) ToError() *errs.Error

type ID

type ID string

func (ID) Float64

func (id ID) Float64() float64

func (ID) Int

func (id ID) Int() int

func (ID) Int64

func (id ID) Int64() int64

func (ID) String

func (id ID) String() string

func (ID) Uint

func (id ID) Uint() uint

func (ID) Uint64

func (id ID) Uint64() uint64

type MemberScore

type MemberScore struct {
	Member []string  `orm:"member,omitempty" json:"member,omitempty"`
	Score  []float64 `orm:"score,omitempty" json:"score,omitempty"`
}

MemberScore redis 集合成员及其分数信息。

type ModResult

type ModResult struct {
	ID          ID                     `orm:"id,omitempty" json:"id,omitempty"`                       // id 主键,可能是 mysql 的最后自增id,last_insert_id 或 elastic 的 _id 等,类型可能是 int64、string
	RowAffected int64                  `orm:"rows_affected,omitempty" json:"rows_affected,omitempty"` // 影响行数
	Version     int64                  `orm:"version,omitempty" json:"version,omitempty"`             // 数据版本
	Status      int                    `orm:"status,omitempty" json:"status,omitempty"`               // 返回状态码
	Reason      string                 `orm:"reason,omitempty" json:"reason,omitempty"`               // mod 失败原因
	Extras      map[string]interface{} `orm:"extras,omitempty" json:"extras,omitempty"`               // 更多详细信息
}

ModResult 新增/更新返回信息

type PageResult

type PageResult struct {
	Detail *Detail       `orm:"detail,omitempty" json:"detail,omitempty"` // 查询细节信息
	Data   []interface{} `orm:"data,omitempty" json:"data,omitempty"`     // 分页结果
}

PageResult 当 page > 1 时会返回分页结果

type QueryResp

type QueryResp struct {
	IsNil   bool              `orm:"is_nil,omitempty" json:"is_nil,omitempty"`     // 是否为空,仅针对单查询单元
	RspNils map[string]bool   `orm:"rsp_nils,omitempty" json:"rsp_nils,omitempty"` // 是否为空,针对并行查询
	RspErrs map[string]*Error `orm:"rsp_errs,omitempty" json:"rsp_errs,omitempty"` // 返回错误码,针对并行查询
	RspData interface{}       `orm:"rsp_data,omitempty" json:"rsp_data,omitempty"` // 返回数据
}

QueryResp 返回请求

type RequestHeader

type RequestHeader struct {
	Version     uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`                            // 客户端版本
	RequestType uint32 `protobuf:"varint,2,opt,name=request_type,json=requestType,proto3" json:"request_type,omitempty"` // 请求类型 0-rpc 请求 1-http 请求 2-web 请求
	QueryMode   uint32 `protobuf:"varint,3,opt,name=query_mode,json=queryMode,proto3" json:"query_mode,omitempty"`       // 查询模式 0-单执行单元(默认)1-多执行单元并行(不含嵌套子查询) 2-复合查询(包含嵌套子查询)
	RequestId   uint64 `protobuf:"varint,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`       // 请求唯一id
	TraceId     string `protobuf:"bytes,5,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"`              // trace_id
	Timestamp   uint64 `protobuf:"varint,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"`                        // 请求时间戳(精确到毫秒)
	Timeout     uint32 `protobuf:"varint,7,opt,name=timeout,proto3" json:"timeout,omitempty"`                            // 请求超时时间,单位ms
	Caller      string `protobuf:"bytes,8,opt,name=caller,proto3" json:"caller,omitempty"`                               // 主调服务的名称 app.server.service
	Callee      string `protobuf:"bytes,9,opt,name=callee,proto3" json:"callee,omitempty"`                               // 被调服务的路由名称 app.server.service/func
	Appid       uint64 `protobuf:"varint,10,opt,name=appid,proto3" json:"appid,omitempty"`                               // appid
	Compress    uint32 `protobuf:"varint,11,opt,name=compress,proto3" json:"compress,omitempty"`                         // 是否压缩 1-压缩;0-不压缩(默认)
	Ip          string `protobuf:"bytes,12,opt,name=ip,proto3" json:"ip,omitempty"`                                      // ip地址
	AuthRand    uint32 `protobuf:"varint,13,opt,name=auth_rand,json=authRand,proto3" json:"auth_rand,omitempty"`         // 随机生成 0-99999999 的数字,相同 timestamp 不允许出现同样的 ip、auth_rand。为了避免碰撞,0-99999999,单机理论最大支持 1000 亿/秒的并发。
	Sign        string `protobuf:"bytes,14,opt,name=sign,proto3" json:"sign,omitempty"`                                  // sign 签名,为 md5(appid+secret+version+request_type+query_mode+request_id+trace_id+timestamp+timeout+caller+compress+auth_rand)
	Bak         string `protobuf:"bytes,15,opt,name=bak,proto3" json:"bak,omitempty"`                                    // 备用
	// contains filtered or unexported fields
}

RequestHeader 请求头

func (*RequestHeader) Descriptor deprecated

func (*RequestHeader) Descriptor() ([]byte, []int)

Deprecated: Use RequestHeader.ProtoReflect.Descriptor instead.

func (*RequestHeader) GetAppid

func (x *RequestHeader) GetAppid() uint64

func (*RequestHeader) GetAuthRand

func (x *RequestHeader) GetAuthRand() uint32

func (*RequestHeader) GetBak

func (x *RequestHeader) GetBak() string

func (*RequestHeader) GetCallee

func (x *RequestHeader) GetCallee() string

func (*RequestHeader) GetCaller

func (x *RequestHeader) GetCaller() string

func (*RequestHeader) GetCompress

func (x *RequestHeader) GetCompress() uint32

func (*RequestHeader) GetIp

func (x *RequestHeader) GetIp() string

func (*RequestHeader) GetQueryMode

func (x *RequestHeader) GetQueryMode() uint32

func (*RequestHeader) GetRequestId

func (x *RequestHeader) GetRequestId() uint64

func (*RequestHeader) GetRequestType

func (x *RequestHeader) GetRequestType() uint32

func (*RequestHeader) GetSign

func (x *RequestHeader) GetSign() string

func (*RequestHeader) GetTimeout

func (x *RequestHeader) GetTimeout() uint32

func (*RequestHeader) GetTimestamp

func (x *RequestHeader) GetTimestamp() uint64

func (*RequestHeader) GetTraceId

func (x *RequestHeader) GetTraceId() string

func (*RequestHeader) GetVersion

func (x *RequestHeader) GetVersion() uint32

func (*RequestHeader) ProtoMessage

func (*RequestHeader) ProtoMessage()

func (*RequestHeader) ProtoReflect

func (x *RequestHeader) ProtoReflect() protoreflect.Message

func (*RequestHeader) Reset

func (x *RequestHeader) Reset()

func (*RequestHeader) String

func (x *RequestHeader) String() string

type ResponseHeader

type ResponseHeader struct {
	Version   uint32            `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`                      // 客户端版本
	QueryMode uint32            `protobuf:"varint,2,opt,name=query_mode,json=queryMode,proto3" json:"query_mode,omitempty"` // 查询模式 0-单执行单元(默认)1-多执行单元并行(不含嵌套子查询) 2-复合查询(包含嵌套子查询)
	RequestId uint64            `protobuf:"varint,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // 请求唯一id
	Compress  uint32            `protobuf:"varint,4,opt,name=compress,proto3" json:"compress,omitempty"`                    // 返回结果是否压缩 1-压缩;0-不压缩(默认)
	Err       *Error            `protobuf:"bytes,5,opt,name=err,proto3" json:"err,omitempty"`                               // 返回错误
	IsNil     bool              `protobuf:"varint,6,opt,name=is_nil,json=isNil,proto3" json:"is_nil,omitempty"`             // 返回是否为空(针对单执行单元)
	RspErrs   map[string]*Error ``                                                                                          // 错误返回(针对多执行单元并发)
	/* 170-byte string literal not displayed */
	RspNils map[string]bool `` // 是否为空返回(针对多执行单元并发)
	/* 171-byte string literal not displayed */
	// contains filtered or unexported fields
}

ResponseHeader 响应头

func (*ResponseHeader) Descriptor deprecated

func (*ResponseHeader) Descriptor() ([]byte, []int)

Deprecated: Use ResponseHeader.ProtoReflect.Descriptor instead.

func (*ResponseHeader) GetCompress

func (x *ResponseHeader) GetCompress() uint32

func (*ResponseHeader) GetErr

func (x *ResponseHeader) GetErr() *Error

func (*ResponseHeader) GetIsNil

func (x *ResponseHeader) GetIsNil() bool

func (*ResponseHeader) GetQueryMode

func (x *ResponseHeader) GetQueryMode() uint32

func (*ResponseHeader) GetRequestId

func (x *ResponseHeader) GetRequestId() uint64

func (*ResponseHeader) GetRspErrs

func (x *ResponseHeader) GetRspErrs() map[string]*Error

func (*ResponseHeader) GetRspNils

func (x *ResponseHeader) GetRspNils() map[string]bool

func (*ResponseHeader) GetVersion

func (x *ResponseHeader) GetVersion() uint32

func (*ResponseHeader) ProtoMessage

func (*ResponseHeader) ProtoMessage()

func (*ResponseHeader) ProtoReflect

func (x *ResponseHeader) ProtoReflect() protoreflect.Message

func (*ResponseHeader) Reset

func (x *ResponseHeader) Reset()

func (*ResponseHeader) String

func (x *ResponseHeader) String() string

type Scroll

type Scroll struct {
	Info string `json:"info,omitempty"` // 滚动查询信息,如时间
	ID   string `json:"id,omitempty"`   // 滚动 id
}

Scroll 滚动查询

type Unit

type Unit struct {
	// query base info
	Name  string   `json:"name,omitempty"`  // name
	Op    string   `json:"op,omitempty"`    // operation
	Shard []string `json:"shard,omitempty"` // 分片、分表、分库

	// 结构化查询共有
	Column []string               `json:"column,omitempty"` // columns
	Where  map[string]interface{} `json:"where,omitempty"`  // query condition
	Order  []string               `json:"order,omitempty"`  // order by
	Page   int                    `json:"page,omitempty"`   // request pages. when page > 0, the request is returned in pagination.
	Size   int                    `json:"size,omitempty"`   // size per page
	From   uint64                 `json:"from,omitempty"`   // offset

	// 数据更新
	Data     map[string]interface{}   `json:"data,omitempty"`      // add/update one data
	Datas    []map[string]interface{} `json:"datas,omitempty"`     // batch add/update data
	DataType map[string]int8          `json:"data_type,omitempty"` // 数据类型(主要用于 clickhouse,对于数据类型有强依赖),请求 json 不区分 int8、int16、int32、int64 等,只有 Number 类型,bytes 也会被当成 string 处理。

	// group by
	Group  []string               `json:"group,omitempty"`  // group by
	Having map[string]interface{} `json:"having,omitempty"` // group by filter condition

	// for databases such as elastic ...
	Type   string  `json:"type,omitempty"`   // type, such as elastic`s type, it can be customized before v7, and unified as _doc after v7
	Scroll *Scroll `json:"scroll,omitempty"` // scroll info

	// for databases such as redis ...
	Prefix string        `json:"prefix,omitempty"` // prefix, It is strongly recommended to bring it to facilitate finer-grained summary statistics, otherwise the statistical granularity can only be cmd ,such as GET、SET、HGET ...
	Key    string        `json:"key,omitempty"`    // key
	Args   []interface{} `json:"args,omitempty"`   // args 参数的数据类型存于 data_type

	// bytes 字节流
	Bytes []byte `json:"bytes,omitempty"`

	// params 与数据库特性相关的附加参数,例如 mysql 的join,redis 的 WITHSCORES,以及 elastic 的 refresh、collapse、runtime_mappings、track_total_hits 等等。
	Params map[string]interface{} `json:"params,omitempty"`

	// 直接送 Query 语句,需要拥有库的 表权限、或 root 权限。具体参数为 args
	Query string `json:"query,omitempty"`

	// Extend 扩展信息,作用于插件
	Extend map[string]interface{} `json:"extend,omitempty"`

	Sub   []*Unit `json:"sub,omitempty"`   // 子查询
	Trans []*Unit `json:"trans,omitempty"` // 事务,该事务下的所有 Unit 必须同时成功或失败(注意:仅适合支持事务的数据库回滚,如果数据库不支持事务,则操作不会回滚)
}

Unit 查询单元

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL