planbuilder

package
v0.16.3 Latest Latest
Warning

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

Go to latest
Published: Nov 29, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package planbuilder allows you to build execution plans that describe how to fulfill a query that may span multiple keyspaces or shards. The main entry points for this package are Build and BuildFromStmt.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Build

func Build(query string, vschema ContextVSchema) (*engine.Plan, error)

Build builds a plan for a query based on the specified vschema. This method is only used from tests

func BuildColName

func BuildColName(rcs []*resultColumn, index int) (*sqlparser.ColName, error)

BuildColName builds a *sqlparser.ColName for the resultColumn specified by the index. The built ColName will correctly reference the resultColumn it was built from.

func BuildFromStmt

func BuildFromStmt(query string, stmt sqlparser.Statement, vschema ContextVSchema, bindVarNeeds sqlparser.BindVarNeeds) (*engine.Plan, error)

BuildFromStmt builds a plan based on the AST provided. TODO(sougou): The query input is trusted as the source of the AST. Maybe this function just returns instructions and engine.Plan can be built by the caller.

func ResultFromNumber

func ResultFromNumber(rcs []*resultColumn, val *sqlparser.SQLVal) (int, error)

ResultFromNumber returns the result column index based on the column order expression.

Types

type ContextVSchema

type ContextVSchema interface {
	FindTable(tablename sqlparser.TableName) (*vindexes.Table, string, topodatapb.TabletType, key.Destination, error)
	FindTablesOrVindex(tablename sqlparser.TableName) ([]*vindexes.Table, vindexes.Vindex, string, topodatapb.TabletType, key.Destination, error)
	DefaultKeyspace() (*vindexes.Keyspace, error)
	TargetString() string
}

ContextVSchema defines the interface for this package to fetch info about tables.

Jump to

Keyboard shortcuts

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