summaryrefslogtreecommitdiff
path: root/src/mongo/db/test_output/pipeline/abt/a_b_t_optimization_test/partial_index.txt
blob: e7f944ff1f37644e19f205d2539d14d890adf679 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
==== VARIATION: optimized partial index: the expression matches the pipeline ====
-- INPUTS:
pipeline: [{$match: {'a': 3, 'b': 2}}]
metadata: 
	number of partitions: 1
	scan definitions: 
		collection: 
			options: 
			distribution and paths: 
				distribution type: Centralized
				distribution paths: 
			indexes: 
				index1: 
					collation spec: 
						ABT path: 
							PathGet [a]
							PathTraverse [1]
							PathIdentity []

						collation op: Ascending
					version: 1
					ordering bits: 0
					is multi-key: 1
					distribution and paths: 
						distribution type: Centralized
						distribution paths: 
					requirements: 
					    {{{scan_0, 'PathGet [b] PathTraverse [1] PathIdentity []', {{{=Const [2]}}}}}}

			collection exists: 1
			CE type: (empty)
optimization phases: 
	ConstEvalPost
	ConstEvalPre
	MemoExplorationPhase
	MemoImplementationPhase
	MemoSubstitutionPhase
	PathFuse
	PathLower

-- OUTPUT:
Root [{scan_0}]
NestedLoopJoin [joinType: Inner, {rid_0}]
|   |   Const [true]
|   Filter []
|   |   BinaryOp [FillEmpty]
|   |   |   Const [false]
|   |   FunctionCall [traverseF]
|   |   |   |   Const [false]
|   |   |   LambdaAbstraction [valCmp_0]
|   |   |   BinaryOp [Eq]
|   |   |   |   Const [2]
|   |   |   Variable [valCmp_0]
|   |   Variable [evalTemp_4]
|   LimitSkip [limit: 1, skip: 0]
|   Seek [ridProjection: rid_0, {'<root>': scan_0, 'b': evalTemp_4}, collection]
IndexScan [{'<rid>': rid_0}, scanDefName: collection, indexDefName: index1, interval: {=Const [3]}]


==== VARIATION: optimized partial index negative: the expression does not match the pipeline ====
-- INPUTS:
pipeline: [{$match: {'a': 3, 'b': 3}}]
metadata: 
	number of partitions: 1
	scan definitions: 
		collection: 
			options: 
			distribution and paths: 
				distribution type: Centralized
				distribution paths: 
			indexes: 
				index1: 
					collation spec: 
						ABT path: 
							PathGet [a]
							PathTraverse [1]
							PathIdentity []

						collation op: Ascending
					version: 1
					ordering bits: 0
					is multi-key: 1
					distribution and paths: 
						distribution type: Centralized
						distribution paths: 
					requirements: 
					    {{{scan_0, 'PathGet [b] PathTraverse [1] PathIdentity []', {{{=Const [2]}}}}}}

			collection exists: 1
			CE type: (empty)
optimization phases: 
	ConstEvalPost
	ConstEvalPre
	MemoExplorationPhase
	MemoImplementationPhase
	MemoSubstitutionPhase
	PathFuse
	PathLower

-- OUTPUT:
Root [{scan_0}]
Filter []
|   BinaryOp [FillEmpty]
|   |   Const [false]
|   FunctionCall [traverseF]
|   |   |   Const [false]
|   |   LambdaAbstraction [valCmp_1]
|   |   BinaryOp [Eq]
|   |   |   Const [3]
|   |   Variable [valCmp_1]
|   Variable [evalTemp_3]
Filter []
|   BinaryOp [FillEmpty]
|   |   Const [false]
|   FunctionCall [traverseF]
|   |   |   Const [false]
|   |   LambdaAbstraction [valCmp_0]
|   |   BinaryOp [Eq]
|   |   |   Const [3]
|   |   Variable [valCmp_0]
|   Variable [evalTemp_2]
PhysicalScan [{'<root>': scan_0, 'a': evalTemp_2, 'b': evalTemp_3}, collection]