Documentation ¶
Index ¶
- Constants
- Variables
- func ApplyMutations(ctx context.Context, m *protos.Mutations) (*protos.TxnContext, error)
- func AssignUids(ctx context.Context, nquads []*protos.NQuad) (map[string]uint64, error)
- func ConvertUidsToHex(m map[string]uint64) (res map[string]string)
- func GetAllPredicates(subGraphs []*SubGraph) (predicates []string)
- func ProcessGraph(ctx context.Context, sg, parent *SubGraph, rch chan error)
- func Recurse(ctx context.Context, sg *SubGraph) error
- func StripBlankNode(mp map[string]uint64) map[string]uint64
- func ToInternal(gmu *gql.Mutation, newUids map[string]uint64) (edges []*protos.DirectedEdge, err error)
- func ToJson(l *Latency, sgl []*SubGraph) ([]byte, error)
- type ExecuteResult
- type Extensions
- type Function
- type InternalError
- type InvalidRequestError
- type Item
- type Latency
- type QueryRequest
- type SubGraph
Constants ¶
const (
FacetDelimeter = "|"
)
Variables ¶
var ( ErrEmptyVal = errors.New("query: harmless error, e.g. task.Val is nil") ErrWrongAgg = errors.New("Wrong level for var aggregation.") )
var ErrFacet = x.Errorf("Skip the edge")
var ErrStop = x.Errorf("STOP")
var ErrTooBig = x.Errorf("Query exceeded memory limit. Please modify the query")
var MutationNotAllowedErr = x.Errorf("Mutations are forbidden on this server.")
Functions ¶
func ApplyMutations ¶ added in v0.8.2
func AssignUids ¶ added in v0.8.2
func ConvertUidsToHex ¶ added in v0.8.2
convert the new UIDs to hex string.
func GetAllPredicates ¶ added in v0.8.2
func ProcessGraph ¶
ProcessGraph processes the SubGraph instance accumulating result for the query from different instances. Note: taskQuery is nil for root node.
func ToInternal ¶ added in v0.8.2
Types ¶
type ExecuteResult ¶ added in v0.8.2
type ExecuteResult struct { Subgraphs []*SubGraph SchemaNode []*protos.SchemaNode }
TODO: This looks unnecessary.
type Extensions ¶ added in v0.8.2
type Extensions struct { Latency *protos.Latency `json:"server_latency,omitempty"` Txn *protos.TxnContext `json:"txn,omitempty"` }
type Function ¶ added in v0.8.2
type Function struct { Name string // Specifies the name of the function. Args []gql.Arg // Contains the arguments of the function. IsCount bool // gt(count(friends),0) IsValueVar bool // eq(val(s), 10) }
Function holds the information about gql functions.
type InternalError ¶ added in v0.8.2
type InternalError struct {
// contains filtered or unexported fields
}
func (*InternalError) Error ¶ added in v0.8.2
func (e *InternalError) Error() string
type InvalidRequestError ¶ added in v0.8.2
type InvalidRequestError struct {
// contains filtered or unexported fields
}
func (*InvalidRequestError) Error ¶ added in v0.8.2
func (e *InvalidRequestError) Error() string
type Latency ¶
type Latency struct { Start time.Time `json:"-"` Parsing time.Duration `json:"query_parsing"` Processing time.Duration `json:"processing"` Json time.Duration `json:"json_conversion"` }
Latency is used to keep track of the latency involved in parsing and processing the query. It also contains information about the time it took to convert the result into a format(JSON/Protocol Buffer) that the client expects.
type QueryRequest ¶ added in v0.8.2
type QueryRequest struct { ReadTs uint64 Latency *Latency GqlQuery *gql.Result Subgraphs []*SubGraph LinRead *protos.LinRead // contains filtered or unexported fields }
QueryRequest wraps the state that is used when executing query. Initially Latency and GqlQuery needs to be set. Subgraphs, Vars and schemaUpdate are filled when processing query.
func (*QueryRequest) Process ¶ added in v0.9.0
func (qr *QueryRequest) Process(ctx context.Context) (er ExecuteResult, err error)
func (*QueryRequest) ProcessQuery ¶ added in v0.8.2
func (req *QueryRequest) ProcessQuery(ctx context.Context) (err error)
ProcessQuery processes query part of the request (without mutations). Fills Subgraphs and Vars. It optionally also returns a map of the allocated uids in case of an upsert request.
type SubGraph ¶
type SubGraph struct { ReadTs uint64 LinRead *protos.LinRead Attr string Params params ExpandPreds []*protos.ValueList GroupbyRes *groupResults // SrcUIDs is a list of unique source UIDs. They are always copies of destUIDs // of parent nodes in GraphQL structure. SrcUIDs *protos.List SrcFunc *Function FilterOp string Filters []*SubGraph MathExp *mathTree Children []*SubGraph // destUIDs is a list of destination UIDs, after applying filters, pagination. DestUIDs *protos.List // contains filtered or unexported fields }
SubGraph is the way to represent data internally. It contains both the query and the response. Once generated, this can then be encoded to other client convenient formats, like GraphQL / JSON.
func KShortestPath ¶ added in v0.8.2
func ShortestPath ¶ added in v0.7.3
func ToSubGraph ¶
ToSubGraph converts the GraphQuery into the internal SubGraph instance type.
func (*SubGraph) ApplyIneqFunc ¶ added in v0.8.2
func (*SubGraph) DebugPrint ¶ added in v0.7.0
DebugPrint prints out the SubGraph tree in a nice format for debugging purposes.