==== VARIATION: FIND - $match with range ====
-- INPUTS:
find command: {find: 'collection', '$db': 'test', filter: {a: {$gte: 70}}}
metadata: 
	number of partitions: 1
	scan definitions: 
		collection: 
			options: 
			distribution and paths: 
				distribution type: Centralized
				distribution paths: 
			indexes: 
			collection exists: 1
			CE type: (empty)

-- OUTPUT:
Query parameters:
0: 70
Root [{test}]
Filter []
|   EvalFilter []
|   |   Variable [test]
|   PathGet [a]
|   PathTraverse [1]
|   PathComposeM []
|   |   PathCompare [Lt]
|   |   Const [""]
|   PathCompare [Gte]
|   FunctionCall [getParam]
|   |   Const [1]
|   Const [0]
Scan [test, {test}]


==== VARIATION: PIPELINE - $match with range ====
-- INPUTS:
pipeline: [{$match: {'a': {$gte: 70}}}]
metadata: 
	number of partitions: 1
	scan definitions: 
		collection: 
			options: 
			distribution and paths: 
				distribution type: Centralized
				distribution paths: 
			indexes: 
			collection exists: 1
			CE type: (empty)

-- OUTPUT:
Query parameters:
0: 70
Root [{scan_0}]
Filter []
|   EvalFilter []
|   |   Variable [scan_0]
|   PathGet [a]
|   PathTraverse [1]
|   PathComposeM []
|   |   PathCompare [Lt]
|   |   Const [""]
|   PathCompare [Gte]
|   FunctionCall [getParam]
|   |   Const [1]
|   Const [0]
Scan [collection, {scan_0}]


==== VARIATION: FIND - $match with range conjunction ====
-- INPUTS:
find command: {find: 'collection', '$db': 'test', filter: {a: {$gt: 70, $lt: 90}}}
metadata: 
	number of partitions: 1
	scan definitions: 
		collection: 
			options: 
			distribution and paths: 
				distribution type: Centralized
				distribution paths: 
			indexes: 
			collection exists: 1
			CE type: (empty)

-- OUTPUT:
Query parameters:
0: 90
1: 70
Root [{test}]
Filter []
|   EvalFilter []
|   |   Variable [test]
|   PathGet [a]
|   PathTraverse [1]
|   PathComposeM []
|   |   PathCompare [Gt]
|   |   Const [nan]
|   PathCompare [Lt]
|   FunctionCall [getParam]
|   |   Const [1]
|   Const [0]
Filter []
|   EvalFilter []
|   |   Variable [test]
|   PathGet [a]
|   PathTraverse [1]
|   PathComposeM []
|   |   PathCompare [Lt]
|   |   Const [""]
|   PathCompare [Gt]
|   FunctionCall [getParam]
|   |   Const [1]
|   Const [1]
Scan [test, {test}]


==== VARIATION: PIPELINE - $match with range conjunction ====
-- INPUTS:
pipeline: [{$match: {'a': {$gt: 70, $lt: 90}}}]
metadata: 
	number of partitions: 1
	scan definitions: 
		collection: 
			options: 
			distribution and paths: 
				distribution type: Centralized
				distribution paths: 
			indexes: 
			collection exists: 1
			CE type: (empty)

-- OUTPUT:
Query parameters:
0: 70
1: 90
Root [{scan_0}]
Filter []
|   EvalFilter []
|   |   Variable [scan_0]
|   PathGet [a]
|   PathTraverse [1]
|   PathComposeM []
|   |   PathCompare [Lt]
|   |   Const [""]
|   PathCompare [Gt]
|   FunctionCall [getParam]
|   |   Const [1]
|   Const [0]
Filter []
|   EvalFilter []
|   |   Variable [scan_0]
|   PathGet [a]
|   PathTraverse [1]
|   PathComposeM []
|   |   PathCompare [Gt]
|   |   Const [nan]
|   PathCompare [Lt]
|   FunctionCall [getParam]
|   |   Const [1]
|   Const [1]
Scan [collection, {scan_0}]


==== VARIATION: FIND - $match with range conjunction on string data ====
-- INPUTS:
find command: {find: 'collection', '$db': 'test', filter: {a: {$gt: 'a', $lt: 'd'}}}
metadata: 
	number of partitions: 1
	scan definitions: 
		collection: 
			options: 
			distribution and paths: 
				distribution type: Centralized
				distribution paths: 
			indexes: 
			collection exists: 1
			CE type: (empty)

-- OUTPUT:
Query parameters:
0: "d"
1: "a"
Root [{test}]
Filter []
|   EvalFilter []
|   |   Variable [test]
|   PathGet [a]
|   PathTraverse [1]
|   PathComposeM []
|   |   PathCompare [Gte]
|   |   Const [""]
|   PathCompare [Lt]
|   FunctionCall [getParam]
|   |   Const [12]
|   Const [0]
Filter []
|   EvalFilter []
|   |   Variable [test]
|   PathGet [a]
|   PathTraverse [1]
|   PathComposeM []
|   |   PathCompare [Lt]
|   |   Const [{}]
|   PathCompare [Gt]
|   FunctionCall [getParam]
|   |   Const [12]
|   Const [1]
Scan [test, {test}]


==== VARIATION: PIPELINE - $match with range conjunction on string data ====
-- INPUTS:
pipeline: [{$match: {'a': {$gt: 'a', $lt: 'd'}}}]
metadata: 
	number of partitions: 1
	scan definitions: 
		collection: 
			options: 
			distribution and paths: 
				distribution type: Centralized
				distribution paths: 
			indexes: 
			collection exists: 1
			CE type: (empty)

-- OUTPUT:
Query parameters:
0: "a"
1: "d"
Root [{scan_0}]
Filter []
|   EvalFilter []
|   |   Variable [scan_0]
|   PathGet [a]
|   PathTraverse [1]
|   PathComposeM []
|   |   PathCompare [Lt]
|   |   Const [{}]
|   PathCompare [Gt]
|   FunctionCall [getParam]
|   |   Const [12]
|   Const [0]
Filter []
|   EvalFilter []
|   |   Variable [scan_0]
|   PathGet [a]
|   PathTraverse [1]
|   PathComposeM []
|   |   PathCompare [Gte]
|   |   Const [""]
|   PathCompare [Lt]
|   FunctionCall [getParam]
|   |   Const [12]
|   Const [1]
Scan [collection, {scan_0}]


==== VARIATION: FIND - $match with range on double ====
-- INPUTS:
find command: {find: 'collection', '$db': 'test', filter: {a: {$gte: 4.5}}}
metadata: 
	number of partitions: 1
	scan definitions: 
		collection: 
			options: 
			distribution and paths: 
				distribution type: Centralized
				distribution paths: 
			indexes: 
			collection exists: 1
			CE type: (empty)

-- OUTPUT:
Query parameters:
0: 4.5
Root [{test}]
Filter []
|   EvalFilter []
|   |   Variable [test]
|   PathGet [a]
|   PathTraverse [1]
|   PathComposeM []
|   |   PathCompare [Lt]
|   |   Const [""]
|   PathCompare [Gte]
|   FunctionCall [getParam]
|   |   Const [3]
|   Const [0]
Scan [test, {test}]


==== VARIATION: PIPELINE - $match with range on double ====
-- INPUTS:
pipeline: [{$match: {'a': {$gte: 4.5}}}]
metadata: 
	number of partitions: 1
	scan definitions: 
		collection: 
			options: 
			distribution and paths: 
				distribution type: Centralized
				distribution paths: 
			indexes: 
			collection exists: 1
			CE type: (empty)

-- OUTPUT:
Query parameters:
0: 4.5
Root [{scan_0}]
Filter []
|   EvalFilter []
|   |   Variable [scan_0]
|   PathGet [a]
|   PathTraverse [1]
|   PathComposeM []
|   |   PathCompare [Lt]
|   |   Const [""]
|   PathCompare [Gte]
|   FunctionCall [getParam]
|   |   Const [3]
|   Const [0]
Scan [collection, {scan_0}]


