| PrimaryScan |
Scan |
Scans a primary index v1 (Pre CB 5.50) |
| PrimaryScan3 |
Scan |
Scans a primary index v2 (CB 5.50+) |
| ParentScan |
Scan |
Used for UNNEST. Treats the parent object as the result of a scan. |
| IndexScan |
Scan |
Scans a secondary index v1 (CB pre 5.0) |
| IndexScan2 |
Scan |
Scans a secondary index v2 (CB 5.0) |
| IndexScan3 |
Scan |
Scans a secondary index v3 (CB 5.50+) |
| KeyScan |
Scan |
Does not perform a scan. Directly treats the provided keys as a scan. |
| ValueScan |
Scan |
Used for the VALUES clause of INSERT and UPSERT statements. Treats the provided values as the result of a scan. |
| DummyScan |
Scan |
Used for SELECTs with no FROM clause. Provides a single empty object as the result of a scan. |
| CountScan |
Scan |
Used when the query has no predicate i.e. SELECT COUNT(*) FROM bucket-name. Treats the bucket size as the result of a scan, without actually performing a full scan of the bucket. |
| IndexCountScan |
Used when the query has predicates and the predicate can be pushed to the indexer. Count is performed by Indexer. (v1 Pre CB 5.0) |
|
| IndexCountScan2 |
Scan |
Used when the query has predicates and the predicate can be pushed to the indexer. Count is performed by Indexer. (v2 CB 5.0) |
| IndexCountDistinctScan2 |
Scan |
Used when the query has predicates and the predicate can be pushed to the indexer. Count of Distinct values is performed by Indexer. (v2 CB 5.0) |
| IntersectScan |
Scan |
A container that scans its child scanners and intersects the results. Used for scanning multiple secondary indexes concurrently for a single query. Intersect of document keys are done |
| OrderedIntersectScan |
Scan |
Same as IntersectScan, First scan in the order is maintained (First Scan Index order is exposed becaue it matches query ORDER BY) |
| UnionScan |
Scan |
OR predicate can use multiple indexes. Each Index perform IndexScan document keys are merged as UNION |
| DistinctScan |
Scan |
Eliminates Duplicate document keys (Indexer can produce duplicate document keys. Array Indexing, Overlap OR clauses) |
| ExpressionScan |
Scan |
Source (FROM clause) is not a key space. It is Expression. Expression Scan will be performed from the in memory data. |
| Fetch |
Fetch |
Obtain documents from the data service based on a key |
| DummyFetch |
Fetch |
No Fetch Operations performed. Act like dummy fetch |
| Join |
Join |
Used for Look-up Join. a JOIN b ON KEYS |
| IndexJoin |
Join |
Used for Index Join. a JOIN b ON KEY b.xxx FOR a |
| NestedLoopJoin |
Join |
ANSI JOIN (a JOIN b ON a.xx = b.yy). The Join is performed nested loop every row of a, index scan/fetch is performed on b |
| HashJoin |
Join |
ANSI JOIN (a JOIN b ON a.xx = b.yy). The Join is performed Hash JOIN, In memory hash table will be constructed on a or b. Then a or b scanned/fetched and look up done in memory hash table |
| Nest |
Join |
Join operation between a parent and a child with a nested array where parent is repeated for each child array item. Same as Join (a NEST b ON KEYS a.xxx) |
| IndexNest |
Join |
Same as Index JOIN (a NEST b ON KEY b.xxx FOR a) |
| NestedLoopNest |
Join |
Same as Nested LOOP JOIN (a NEST b ON a.xx = b.yy) |
| HashNest |
Join |
Same as Hash JOIN (a NEST b ON a.xx = b.yy) |
| Unnest |
Join |
Grouping operation between a parent and a child array where child array is embedded into the parent. |
| Let |
Let + Letting |
Let and Letting variables evaluation |
| InferKeyspace |
Infer |
INFER statement |
| Filter |
Filter |
Apply a filter expression e.g. WHERE X=<value> |
| InitialGroup |
Group |
Initial phase. (Can be executed in parallel with IntermediateGroup) |
| IntermediateGroup |
Group |
Cumulate intermediate results. This phase can be chained. |
| FinalGroup |
Group |
Compute final aggregate results. |
| InitialProject |
Project |
Reduce the stream size to the fields involved in the query processing |
| FinalProject |
Project |
Final Shaping of the result into the JSON for the requested fields |
| IndexCountProject |
Project |
Project the output of IndexCountScan2 IndexCountDistinctScan2 operators |
| Distinct |
Distinct |
Indicates that duplicates are being filtered from the result. |
| UnionAll |
Set Operator |
Combine the results of two queries. For UNION, we perform UNION ALL followed by DISTINCT. |
| IntersectAll |
Set Operator |
Intersect all of the result objects |
| ExceptAll |
Set Operator |
Except all of the result objects ( i.e Present on LEFT side query but not present on right side query) |
| Order |
Order |
Orders the results based on 1 or more keys ASC or DESC |
| Offset |
Paging |
Start returning items from a specified item count |
| Limit |
Paging |
Limit the number of items returned to N |
| SendInsert |
Insert |
When an insert statement is explained |
| SendUpsert |
Upsert |
When an upsert statement is explained |
| SendDelete |
Delete |
When a delete statement is explained |
| Clone |
Update |
Used for UPDATE. Clones data values so that UPDATEs read original values and mutate a clone. |
| Set |
Update |
Used for UPDATE |
| Unset |
Update |
Used for UPDATE |
| SendUpdate |
Update |
When an update statement is explained |
| Merge |
Merge |
Merge Statement |
| Alias |
Framework |
Alias of Keyspace |
| Authorize |
Framework |
Privilege validation (i.e permission RBAC validation on all objects in the query) |
| Parallel |
Framework |
A container that executes multiple copies of its child operator in parallel. Used for all data-parallelism. |
| Sequence |
Framework |
A container that chains its children into a sequence. Used for all execution pipelining. |
| Discard |
Framework |
Discard results |
| Stream |
Framework |
Stream results out. Used for returning results. |
| Collect |
Framework |
Collect results into an array. Used for subqueries. |
| CreatePrimaryIndex |
Index DDL |
When a Create PRIMARY INDEX statement is explained |
| CreateIndex |
Index DDL |
When a CREATE INDEX statement is explained |
| DropIndex |
Index DDL |
When a DROP INDEX statement is explained |
| AlterIndex |
Index DDL |
When a ALTER INDEX statement is explained |
| BuildIndexes |
Index DDL |
When a BUILD INDEX statement is explained |
| GrantRole |
Roles |
GRANT statement |
| RevokeRole |
Roles |
Revoke Statement |
| Explain |
Explain |
EXPLAIN statement |
| Prepare |
Prepare |
Prepare Statement |