Documentation ¶
Overview ¶
Package queryservice contains the interface for the service definition of the Query Service.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CallCorrectSplitQuery ¶
func CallCorrectSplitQuery( queryService QueryService, useSplitQueryV2 bool, ctx context.Context, target *querypb.Target, sql string, bindVariables map[string]interface{}, splitColumns []string, splitCount int64, numRowsPerQueryPart int64, algorithm querypb.SplitQueryRequest_Algorithm, ) ([]querytypes.QuerySplit, error)
CallCorrectSplitQuery calls the correct SplitQuery. This trivial logic is encapsulated in a function here so it can be easily tested. TODO(erez): Remove once the migration to SplitQueryV2 is done.
Types ¶
type QueryService ¶
type QueryService interface { // Begin returns the transaction id to use for further operations Begin(ctx context.Context, target *querypb.Target) (int64, error) // Commit commits the current transaction Commit(ctx context.Context, target *querypb.Target, transactionID int64) error // Rollback aborts the current transaction Rollback(ctx context.Context, target *querypb.Target, transactionID int64) error Execute(ctx context.Context, target *querypb.Target, sql string, bindVariables map[string]interface{}, transactionID int64) (*sqltypes.Result, error) StreamExecute(ctx context.Context, target *querypb.Target, sql string, bindVariables map[string]interface{}, sendReply func(*sqltypes.Result) error) error ExecuteBatch(ctx context.Context, target *querypb.Target, queries []querytypes.BoundQuery, asTransaction bool, transactionID int64) ([]sqltypes.Result, error) // SplitQuery is a map reduce helper function // TODO(erez): Remove this and rename the following func to SplitQuery // once we migrate to SplitQuery V2. SplitQuery(ctx context.Context, target *querypb.Target, sql string, bindVariables map[string]interface{}, splitColumn string, splitCount int64) ([]querytypes.QuerySplit, error) // SplitQueryV2 is a MapReduce helper function. // This is version of SplitQuery supports multiple algorithms and multiple split columns. // See the documentation of SplitQueryRequest in 'proto/vtgate.proto' for more information. SplitQueryV2( ctx context.Context, target *querypb.Target, sql string, bindVariables map[string]interface{}, splitColumns []string, splitCount int64, numRowsPerQueryPart int64, algorithm querypb.SplitQueryRequest_Algorithm, ) ([]querytypes.QuerySplit, error) // StreamHealthRegister registers a listener for StreamHealth StreamHealthRegister(chan<- *querypb.StreamHealthResponse) (int, error) // StreamHealthUnregister unregisters a listener for StreamHealth StreamHealthUnregister(int) error // Helper for RPC panic handling: call this in a defer statement // at the beginning of each RPC handling method. HandlePanic(*error) }
QueryService is the interface implemented by the tablet's query service.
Click to show internal directories.
Click to hide internal directories.