==== VARIATION: $match conjunction ====
-- INPUTS:
pipeline: [{$match: {$and: [{a: 1}, {b: 2}]}}]
metadata: 
	number of partitions: 1
	scan definitions: 
		collection: 
			options: 
			distribution and paths: 
				distribution type: Centralized
				distribution paths: 
			indexes: 
			collection exists: 1
			CE type: -1

-- OUTPUT:
Root [{scan_0}]
Filter []
|   EvalFilter []
|   |   Variable [scan_0]
|   PathGet [a]
|   PathTraverse [1]
|   PathCompare [Eq]
|   Const [1]
Filter []
|   EvalFilter []
|   |   Variable [scan_0]
|   PathGet [b]
|   PathTraverse [1]
|   PathCompare [Eq]
|   Const [2]
Scan [collection, {scan_0}]


==== VARIATION: $match disjunction ====
-- INPUTS:
pipeline: [{$match: {$or: [{a: 1}, {b: 2}]}}]
metadata: 
	number of partitions: 1
	scan definitions: 
		collection: 
			options: 
			distribution and paths: 
				distribution type: Centralized
				distribution paths: 
			indexes: 
			collection exists: 1
			CE type: -1

-- OUTPUT:
Root [{scan_0}]
Filter []
|   EvalFilter []
|   |   Variable [scan_0]
|   PathComposeA []
|   |   PathGet [a]
|   |   PathTraverse [1]
|   |   PathCompare [Eq]
|   |   Const [1]
|   PathGet [b]
|   PathTraverse [1]
|   PathCompare [Eq]
|   Const [2]
Scan [collection, {scan_0}]


==== VARIATION: $match nested conjunction ====
-- INPUTS:
pipeline: [{$match: {$and: [{$and: [{a: 1}, {b: 2}]}, {c: 3}]}}]
metadata: 
	number of partitions: 1
	scan definitions: 
		collection: 
			options: 
			distribution and paths: 
				distribution type: Centralized
				distribution paths: 
			indexes: 
			collection exists: 1
			CE type: -1

-- OUTPUT:
Root [{scan_0}]
Filter []
|   EvalFilter []
|   |   Variable [scan_0]
|   PathGet [a]
|   PathTraverse [1]
|   PathCompare [Eq]
|   Const [1]
Filter []
|   EvalFilter []
|   |   Variable [scan_0]
|   PathGet [b]
|   PathTraverse [1]
|   PathCompare [Eq]
|   Const [2]
Filter []
|   EvalFilter []
|   |   Variable [scan_0]
|   PathGet [c]
|   PathTraverse [1]
|   PathCompare [Eq]
|   Const [3]
Scan [collection, {scan_0}]


