Repository: calcite
Updated Branches:
  refs/heads/master f84a3eb33 -> dcf396a5c


http://git-wip-us.apache.org/repos/asf/calcite/blob/dcf396a5/mongodb/src/test/resources/mongo-foodmart-model.json
----------------------------------------------------------------------
diff --git a/mongodb/src/test/resources/mongo-foodmart-model.json 
b/mongodb/src/test/resources/mongo-foodmart-model.json
deleted file mode 100644
index f83ca44..0000000
--- a/mongodb/src/test/resources/mongo-foodmart-model.json
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-{
-  "version": "1.0",
-  "defaultSchema": "foodmart",
-  "schemas": [
-    {
-      "type": "custom",
-      "name": "foodmart_raw",
-      "factory": "org.apache.calcite.adapter.mongodb.MongoSchemaFactory",
-      "operand": {
-        "host": "localhost",
-        "database": "foodmart"
-      }
-    },
-    {
-      "name": "foodmart",
-      "tables": [
-        {
-          "name": "sales_fact_1997",
-          "type": "view",
-          "sql": "select cast(_MAP['product_id'] AS INTEGER) AS 
\"product_id\",\n cast(_MAP['time_id'] AS INTEGER) AS \"time_id\",\n 
cast(_MAP['customer_id'] AS INTEGER) AS \"customer_id\",\n 
cast(_MAP['promotion_id'] AS INTEGER) AS \"promotion_id\",\n 
cast(_MAP['store_id'] AS INTEGER) AS \"store_id\",\n cast(_MAP['store_sales'] 
AS DECIMAL(10,4)) AS \"store_sales\",\n cast(_MAP['store_cost'] AS 
DECIMAL(10,4)) AS \"store_cost\",\n cast(_MAP['unit_sales'] AS DECIMAL(10,4)) 
AS \"unit_sales\"\nfrom \"foodmart_raw\".\"sales_fact_1997\""
-        },
-        {
-          "name": "sales_fact_1998",
-          "type": "view",
-          "sql": "select cast(_MAP['product_id'] AS INTEGER) AS 
\"product_id\",\n cast(_MAP['time_id'] AS INTEGER) AS \"time_id\",\n 
cast(_MAP['customer_id'] AS INTEGER) AS \"customer_id\",\n 
cast(_MAP['promotion_id'] AS INTEGER) AS \"promotion_id\",\n 
cast(_MAP['store_id'] AS INTEGER) AS \"store_id\",\n cast(_MAP['store_sales'] 
AS DECIMAL(10,4)) AS \"store_sales\",\n cast(_MAP['store_cost'] AS 
DECIMAL(10,4)) AS \"store_cost\",\n cast(_MAP['unit_sales'] AS DECIMAL(10,4)) 
AS \"unit_sales\"\nfrom \"foodmart_raw\".\"sales_fact_1998\""
-        },
-        {
-          "name": "sales_fact_dec_1998",
-          "type": "view",
-          "sql": "select cast(_MAP['product_id'] AS INTEGER) AS 
\"product_id\",\n cast(_MAP['time_id'] AS INTEGER) AS \"time_id\",\n 
cast(_MAP['customer_id'] AS INTEGER) AS \"customer_id\",\n 
cast(_MAP['promotion_id'] AS INTEGER) AS \"promotion_id\",\n 
cast(_MAP['store_id'] AS INTEGER) AS \"store_id\",\n cast(_MAP['store_sales'] 
AS DECIMAL(10,4)) AS \"store_sales\",\n cast(_MAP['store_cost'] AS 
DECIMAL(10,4)) AS \"store_cost\",\n cast(_MAP['unit_sales'] AS DECIMAL(10,4)) 
AS \"unit_sales\"\nfrom \"foodmart_raw\".\"sales_fact_dec_1998\""
-        },
-        {
-          "name": "inventory_fact_1997",
-          "type": "view",
-          "sql": "select cast(_MAP['product_id'] AS INTEGER) AS 
\"product_id\",\n cast(_MAP['time_id'] AS INTEGER) AS \"time_id\",\n 
cast(_MAP['warehouse_id'] AS INTEGER) AS \"warehouse_id\",\n 
cast(_MAP['store_id'] AS INTEGER) AS \"store_id\",\n cast(_MAP['units_ordered'] 
AS INTEGER) AS \"units_ordered\",\n cast(_MAP['units_shipped'] AS INTEGER) AS 
\"units_shipped\",\n cast(_MAP['warehouse_sales'] AS DECIMAL(10,4)) AS 
\"warehouse_sales\",\n cast(_MAP['warehouse_cost'] AS DECIMAL(10,4)) AS 
\"warehouse_cost\",\n cast(_MAP['supply_time'] AS SMALLINT) AS 
\"supply_time\",\n cast(_MAP['store_invoice'] AS DECIMAL(10,4)) AS 
\"store_invoice\"\nfrom \"foodmart_raw\".\"inventory_fact_1997\""
-        },
-        {
-          "name": "inventory_fact_1998",
-          "type": "view",
-          "sql": "select cast(_MAP['product_id'] AS INTEGER) AS 
\"product_id\",\n cast(_MAP['time_id'] AS INTEGER) AS \"time_id\",\n 
cast(_MAP['warehouse_id'] AS INTEGER) AS \"warehouse_id\",\n 
cast(_MAP['store_id'] AS INTEGER) AS \"store_id\",\n cast(_MAP['units_ordered'] 
AS INTEGER) AS \"units_ordered\",\n cast(_MAP['units_shipped'] AS INTEGER) AS 
\"units_shipped\",\n cast(_MAP['warehouse_sales'] AS DECIMAL(10,4)) AS 
\"warehouse_sales\",\n cast(_MAP['warehouse_cost'] AS DECIMAL(10,4)) AS 
\"warehouse_cost\",\n cast(_MAP['supply_time'] AS SMALLINT) AS 
\"supply_time\",\n cast(_MAP['store_invoice'] AS DECIMAL(10,4)) AS 
\"store_invoice\"\nfrom \"foodmart_raw\".\"inventory_fact_1998\""
-        },
-        {
-          "name": "agg_pl_01_sales_fact_1997",
-          "type": "view",
-          "sql": "select cast(_MAP['product_id'] AS INTEGER) AS 
\"product_id\",\n cast(_MAP['time_id'] AS INTEGER) AS \"time_id\",\n 
cast(_MAP['customer_id'] AS INTEGER) AS \"customer_id\",\n 
cast(_MAP['store_sales_sum'] AS DECIMAL(10,4)) AS \"store_sales_sum\",\n 
cast(_MAP['store_cost_sum'] AS DECIMAL(10,4)) AS \"store_cost_sum\",\n 
cast(_MAP['unit_sales_sum'] AS DECIMAL(10,4)) AS \"unit_sales_sum\",\n 
cast(_MAP['fact_count'] AS INTEGER) AS \"fact_count\"\nfrom 
\"foodmart_raw\".\"agg_pl_01_sales_fact_1997\""
-        },
-        {
-          "name": "agg_ll_01_sales_fact_1997",
-          "type": "view",
-          "sql": "select cast(_MAP['product_id'] AS INTEGER) AS 
\"product_id\",\n cast(_MAP['time_id'] AS INTEGER) AS \"time_id\",\n 
cast(_MAP['customer_id'] AS INTEGER) AS \"customer_id\",\n 
cast(_MAP['store_sales'] AS DECIMAL(10,4)) AS \"store_sales\",\n 
cast(_MAP['store_cost'] AS DECIMAL(10,4)) AS \"store_cost\",\n 
cast(_MAP['unit_sales'] AS DECIMAL(10,4)) AS \"unit_sales\",\n 
cast(_MAP['fact_count'] AS INTEGER) AS \"fact_count\"\nfrom 
\"foodmart_raw\".\"agg_ll_01_sales_fact_1997\""
-        },
-        {
-          "name": "agg_l_03_sales_fact_1997",
-          "type": "view",
-          "sql": "select cast(_MAP['time_id'] AS INTEGER) AS \"time_id\",\n 
cast(_MAP['customer_id'] AS INTEGER) AS \"customer_id\",\n 
cast(_MAP['store_sales'] AS DECIMAL(10,4)) AS \"store_sales\",\n 
cast(_MAP['store_cost'] AS DECIMAL(10,4)) AS \"store_cost\",\n 
cast(_MAP['unit_sales'] AS DECIMAL(10,4)) AS \"unit_sales\",\n 
cast(_MAP['fact_count'] AS INTEGER) AS \"fact_count\"\nfrom 
\"foodmart_raw\".\"agg_l_03_sales_fact_1997\""
-        },
-        {
-          "name": "agg_l_04_sales_fact_1997",
-          "type": "view",
-          "sql": "select cast(_MAP['time_id'] AS INTEGER) AS \"time_id\",\n 
cast(_MAP['store_sales'] AS DECIMAL(10,4)) AS \"store_sales\",\n 
cast(_MAP['store_cost'] AS DECIMAL(10,4)) AS \"store_cost\",\n 
cast(_MAP['unit_sales'] AS DECIMAL(10,4)) AS \"unit_sales\",\n 
cast(_MAP['customer_count'] AS INTEGER) AS \"customer_count\",\n 
cast(_MAP['fact_count'] AS INTEGER) AS \"fact_count\"\nfrom 
\"foodmart_raw\".\"agg_l_04_sales_fact_1997\""
-        },
-        {
-          "name": "agg_l_05_sales_fact_1997",
-          "type": "view",
-          "sql": "select cast(_MAP['product_id'] AS INTEGER) AS 
\"product_id\",\n cast(_MAP['customer_id'] AS INTEGER) AS \"customer_id\",\n 
cast(_MAP['promotion_id'] AS INTEGER) AS \"promotion_id\",\n 
cast(_MAP['store_id'] AS INTEGER) AS \"store_id\",\n cast(_MAP['store_sales'] 
AS DECIMAL(10,4)) AS \"store_sales\",\n cast(_MAP['store_cost'] AS 
DECIMAL(10,4)) AS \"store_cost\",\n cast(_MAP['unit_sales'] AS DECIMAL(10,4)) 
AS \"unit_sales\",\n cast(_MAP['fact_count'] AS INTEGER) AS 
\"fact_count\"\nfrom \"foodmart_raw\".\"agg_l_05_sales_fact_1997\""
-        },
-        {
-          "name": "agg_c_10_sales_fact_1997",
-          "type": "view",
-          "sql": "select cast(_MAP['month_of_year'] AS SMALLINT) AS 
\"month_of_year\",\n cast(_MAP['quarter'] AS VARCHAR(30)) AS \"quarter\",\n 
cast(_MAP['the_year'] AS SMALLINT) AS \"the_year\",\n cast(_MAP['store_sales'] 
AS DECIMAL(10,4)) AS \"store_sales\",\n cast(_MAP['store_cost'] AS 
DECIMAL(10,4)) AS \"store_cost\",\n cast(_MAP['unit_sales'] AS DECIMAL(10,4)) 
AS \"unit_sales\",\n cast(_MAP['customer_count'] AS INTEGER) AS 
\"customer_count\",\n cast(_MAP['fact_count'] AS INTEGER) AS 
\"fact_count\"\nfrom \"foodmart_raw\".\"agg_c_10_sales_fact_1997\""
-        },
-        {
-          "name": "agg_c_14_sales_fact_1997",
-          "type": "view",
-          "sql": "select cast(_MAP['product_id'] AS INTEGER) AS 
\"product_id\",\n cast(_MAP['customer_id'] AS INTEGER) AS \"customer_id\",\n 
cast(_MAP['store_id'] AS INTEGER) AS \"store_id\",\n cast(_MAP['promotion_id'] 
AS INTEGER) AS \"promotion_id\",\n cast(_MAP['month_of_year'] AS SMALLINT) AS 
\"month_of_year\",\n cast(_MAP['quarter'] AS VARCHAR(30)) AS \"quarter\",\n 
cast(_MAP['the_year'] AS SMALLINT) AS \"the_year\",\n cast(_MAP['store_sales'] 
AS DECIMAL(10,4)) AS \"store_sales\",\n cast(_MAP['store_cost'] AS 
DECIMAL(10,4)) AS \"store_cost\",\n cast(_MAP['unit_sales'] AS DECIMAL(10,4)) 
AS \"unit_sales\",\n cast(_MAP['fact_count'] AS INTEGER) AS 
\"fact_count\"\nfrom \"foodmart_raw\".\"agg_c_14_sales_fact_1997\""
-        },
-        {
-          "name": "agg_lc_100_sales_fact_1997",
-          "type": "view",
-          "sql": "select cast(_MAP['product_id'] AS INTEGER) AS 
\"product_id\",\n cast(_MAP['customer_id'] AS INTEGER) AS \"customer_id\",\n 
cast(_MAP['quarter'] AS VARCHAR(30)) AS \"quarter\",\n cast(_MAP['the_year'] AS 
SMALLINT) AS \"the_year\",\n cast(_MAP['store_sales'] AS DECIMAL(10,4)) AS 
\"store_sales\",\n cast(_MAP['store_cost'] AS DECIMAL(10,4)) AS 
\"store_cost\",\n cast(_MAP['unit_sales'] AS DECIMAL(10,4)) AS 
\"unit_sales\",\n cast(_MAP['fact_count'] AS INTEGER) AS \"fact_count\"\nfrom 
\"foodmart_raw\".\"agg_lc_100_sales_fact_1997\""
-        },
-        {
-          "name": "agg_c_special_sales_fact_1997",
-          "type": "view",
-          "sql": "select cast(_MAP['product_id'] AS INTEGER) AS 
\"product_id\",\n cast(_MAP['promotion_id'] AS INTEGER) AS \"promotion_id\",\n 
cast(_MAP['customer_id'] AS INTEGER) AS \"customer_id\",\n 
cast(_MAP['store_id'] AS INTEGER) AS \"store_id\",\n cast(_MAP['time_month'] AS 
SMALLINT) AS \"time_month\",\n cast(_MAP['time_quarter'] AS VARCHAR(30)) AS 
\"time_quarter\",\n cast(_MAP['time_year'] AS SMALLINT) AS \"time_year\",\n 
cast(_MAP['store_sales_sum'] AS DECIMAL(10,4)) AS \"store_sales_sum\",\n 
cast(_MAP['store_cost_sum'] AS DECIMAL(10,4)) AS \"store_cost_sum\",\n 
cast(_MAP['unit_sales_sum'] AS DECIMAL(10,4)) AS \"unit_sales_sum\",\n 
cast(_MAP['fact_count'] AS INTEGER) AS \"fact_count\"\nfrom 
\"foodmart_raw\".\"agg_c_special_sales_fact_1997\""
-        },
-        {
-          "name": "agg_g_ms_pcat_sales_fact_1997",
-          "type": "view",
-          "sql": "select cast(_MAP['gender'] AS VARCHAR(30)) AS \"gender\",\n 
cast(_MAP['marital_status'] AS VARCHAR(30)) AS \"marital_status\",\n 
cast(_MAP['product_family'] AS VARCHAR(30)) AS \"product_family\",\n 
cast(_MAP['product_department'] AS VARCHAR(30)) AS \"product_department\",\n 
cast(_MAP['product_category'] AS VARCHAR(30)) AS \"product_category\",\n 
cast(_MAP['month_of_year'] AS SMALLINT) AS \"month_of_year\",\n 
cast(_MAP['quarter'] AS VARCHAR(30)) AS \"quarter\",\n cast(_MAP['the_year'] AS 
SMALLINT) AS \"the_year\",\n cast(_MAP['store_sales'] AS DECIMAL(10,4)) AS 
\"store_sales\",\n cast(_MAP['store_cost'] AS DECIMAL(10,4)) AS 
\"store_cost\",\n cast(_MAP['unit_sales'] AS DECIMAL(10,4)) AS 
\"unit_sales\",\n cast(_MAP['customer_count'] AS INTEGER) AS 
\"customer_count\",\n cast(_MAP['fact_count'] AS INTEGER) AS 
\"fact_count\"\nfrom \"foodmart_raw\".\"agg_g_ms_pcat_sales_fact_1997\""
-        },
-        {
-          "name": "agg_lc_06_sales_fact_1997",
-          "type": "view",
-          "sql": "select cast(_MAP['time_id'] AS INTEGER) AS \"time_id\",\n 
cast(_MAP['city'] AS VARCHAR(30)) AS \"city\",\n cast(_MAP['state_province'] AS 
VARCHAR(30)) AS \"state_province\",\n cast(_MAP['country'] AS VARCHAR(30)) AS 
\"country\",\n cast(_MAP['store_sales'] AS DECIMAL(10,4)) AS \"store_sales\",\n 
cast(_MAP['store_cost'] AS DECIMAL(10,4)) AS \"store_cost\",\n 
cast(_MAP['unit_sales'] AS DECIMAL(10,4)) AS \"unit_sales\",\n 
cast(_MAP['fact_count'] AS INTEGER) AS \"fact_count\"\nfrom 
\"foodmart_raw\".\"agg_lc_06_sales_fact_1997\""
-        },
-        {
-          "name": "currency",
-          "type": "view",
-          "sql": "select cast(_MAP['currency_id'] AS INTEGER) AS 
\"currency_id\",\n cast(_MAP['date'] AS DATE) AS \"date\",\n 
cast(_MAP['currency'] AS VARCHAR(30)) AS \"currency\",\n 
cast(_MAP['conversion_ratio'] AS DECIMAL(10,4)) AS \"conversion_ratio\"\nfrom 
\"foodmart_raw\".\"currency\""
-        },
-        {
-          "name": "account",
-          "type": "view",
-          "sql": "select cast(_MAP['account_id'] AS INTEGER) AS 
\"account_id\",\n cast(_MAP['account_parent'] AS INTEGER) AS 
\"account_parent\",\n cast(_MAP['account_description'] AS VARCHAR(30)) AS 
\"account_description\",\n cast(_MAP['account_type'] AS VARCHAR(30)) AS 
\"account_type\",\n cast(_MAP['account_rollup'] AS VARCHAR(30)) AS 
\"account_rollup\",\n cast(_MAP['Custom_Members'] AS VARCHAR(255)) AS 
\"Custom_Members\"\nfrom \"foodmart_raw\".\"account\""
-        },
-        {
-          "name": "category",
-          "type": "view",
-          "sql": "select cast(_MAP['category_id'] AS VARCHAR(30)) AS 
\"category_id\",\n cast(_MAP['category_parent'] AS VARCHAR(30)) AS 
\"category_parent\",\n cast(_MAP['category_description'] AS VARCHAR(30)) AS 
\"category_description\",\n cast(_MAP['category_rollup'] AS VARCHAR(30)) AS 
\"category_rollup\"\nfrom \"foodmart_raw\".\"category\""
-        },
-        {
-          "name": "customer",
-          "type": "view",
-          "sql": "select cast(_MAP['customer_id'] AS INTEGER) AS 
\"customer_id\",\n cast(_MAP['account_num'] AS BIGINT) AS \"account_num\",\n 
cast(_MAP['lname'] AS VARCHAR(30)) AS \"lname\",\n cast(_MAP['fname'] AS 
VARCHAR(30)) AS \"fname\",\n cast(_MAP['mi'] AS VARCHAR(30)) AS \"mi\",\n 
cast(_MAP['address1'] AS VARCHAR(30)) AS \"address1\",\n cast(_MAP['address2'] 
AS VARCHAR(30)) AS \"address2\",\n cast(_MAP['address3'] AS VARCHAR(30)) AS 
\"address3\",\n cast(_MAP['address4'] AS VARCHAR(30)) AS \"address4\",\n 
cast(_MAP['city'] AS VARCHAR(30)) AS \"city\",\n cast(_MAP['state_province'] AS 
VARCHAR(30)) AS \"state_province\",\n cast(_MAP['postal_code'] AS VARCHAR(30)) 
AS \"postal_code\",\n cast(_MAP['country'] AS VARCHAR(30)) AS \"country\",\n 
cast(_MAP['customer_region_id'] AS INTEGER) AS \"customer_region_id\",\n 
cast(_MAP['phone1'] AS VARCHAR(30)) AS \"phone1\",\n cast(_MAP['phone2'] AS 
VARCHAR(30)) AS \"phone2\",\n cast(_MAP['birthdate'] AS DATE) AS 
\"birthdate\",\n cast(_MAP['ma
 rital_status'] AS VARCHAR(30)) AS \"marital_status\",\n 
cast(_MAP['yearly_income'] AS VARCHAR(30)) AS \"yearly_income\",\n 
cast(_MAP['gender'] AS VARCHAR(30)) AS \"gender\",\n 
cast(_MAP['total_children'] AS SMALLINT) AS \"total_children\",\n 
cast(_MAP['num_children_at_home'] AS SMALLINT) AS \"num_children_at_home\",\n 
cast(_MAP['education'] AS VARCHAR(30)) AS \"education\",\n 
cast(_MAP['date_accnt_opened'] AS DATE) AS \"date_accnt_opened\",\n 
cast(_MAP['member_card'] AS VARCHAR(30)) AS \"member_card\",\n 
cast(_MAP['occupation'] AS VARCHAR(30)) AS \"occupation\",\n 
cast(_MAP['houseowner'] AS VARCHAR(30)) AS \"houseowner\",\n 
cast(_MAP['num_cars_owned'] AS INTEGER) AS \"num_cars_owned\",\n 
cast(_MAP['fullname'] AS VARCHAR(60)) AS \"fullname\"\nfrom 
\"foodmart_raw\".\"customer\""
-        },
-        {
-          "name": "days",
-          "type": "view",
-          "sql": "select cast(_MAP['day'] AS INTEGER) AS \"day\",\n 
cast(_MAP['week_day'] AS VARCHAR(30)) AS \"week_day\"\nfrom 
\"foodmart_raw\".\"days\""
-        },
-        {
-          "name": "department",
-          "type": "view",
-          "sql": "select cast(_MAP['department_id'] AS INTEGER) AS 
\"department_id\",\n cast(_MAP['department_description'] AS VARCHAR(30)) AS 
\"department_description\"\nfrom \"foodmart_raw\".\"department\""
-        },
-        {
-          "name": "employee",
-          "type": "view",
-          "sql": "select cast(_MAP['employee_id'] AS INTEGER) AS 
\"employee_id\",\n cast(_MAP['full_name'] AS VARCHAR(30)) AS \"full_name\",\n 
cast(_MAP['first_name'] AS VARCHAR(30)) AS \"first_name\",\n 
cast(_MAP['last_name'] AS VARCHAR(30)) AS \"last_name\",\n 
cast(_MAP['position_id'] AS INTEGER) AS \"position_id\",\n 
cast(_MAP['position_title'] AS VARCHAR(30)) AS \"position_title\",\n 
cast(_MAP['store_id'] AS INTEGER) AS \"store_id\",\n cast(_MAP['department_id'] 
AS INTEGER) AS \"department_id\",\n cast(_MAP['birth_date'] AS DATE) AS 
\"birth_date\",\n cast(_MAP['hire_date'] AS TIMESTAMP) AS \"hire_date\",\n 
cast(_MAP['end_date'] AS TIMESTAMP) AS \"end_date\",\n cast(_MAP['salary'] AS 
DECIMAL(10,4)) AS \"salary\",\n cast(_MAP['supervisor_id'] AS INTEGER) AS 
\"supervisor_id\",\n cast(_MAP['education_level'] AS VARCHAR(30)) AS 
\"education_level\",\n cast(_MAP['marital_status'] AS VARCHAR(30)) AS 
\"marital_status\",\n cast(_MAP['gender'] AS VARCHAR(30)) AS \"gender\",\n 
cast(_MAP['ma
 nagement_role'] AS VARCHAR(30)) AS \"management_role\"\nfrom 
\"foodmart_raw\".\"employee\""
-        },
-        {
-          "name": "employee_closure",
-          "type": "view",
-          "sql": "select cast(_MAP['employee_id'] AS INTEGER) AS 
\"employee_id\",\n cast(_MAP['supervisor_id'] AS INTEGER) AS 
\"supervisor_id\",\n cast(_MAP['distance'] AS INTEGER) AS \"distance\"\nfrom 
\"foodmart_raw\".\"employee_closure\""
-        },
-        {
-          "name": "expense_fact",
-          "type": "view",
-          "sql": "select cast(_MAP['store_id'] AS INTEGER) AS \"store_id\",\n 
cast(_MAP['account_id'] AS INTEGER) AS \"account_id\",\n cast(_MAP['exp_date'] 
AS TIMESTAMP) AS \"exp_date\",\n cast(_MAP['time_id'] AS INTEGER) AS 
\"time_id\",\n cast(_MAP['category_id'] AS VARCHAR(30)) AS \"category_id\",\n 
cast(_MAP['currency_id'] AS INTEGER) AS \"currency_id\",\n cast(_MAP['amount'] 
AS DECIMAL(10,4)) AS \"amount\"\nfrom \"foodmart_raw\".\"expense_fact\""
-        },
-        {
-          "name": "position",
-          "type": "view",
-          "sql": "select cast(_MAP['position_id'] AS INTEGER) AS 
\"position_id\",\n cast(_MAP['position_title'] AS VARCHAR(30)) AS 
\"position_title\",\n cast(_MAP['pay_type'] AS VARCHAR(30)) AS \"pay_type\",\n 
cast(_MAP['min_scale'] AS DECIMAL(10,4)) AS \"min_scale\",\n 
cast(_MAP['max_scale'] AS DECIMAL(10,4)) AS \"max_scale\",\n 
cast(_MAP['management_role'] AS VARCHAR(30)) AS \"management_role\"\nfrom 
\"foodmart_raw\".\"position\""
-        },
-        {
-          "name": "product",
-          "type": "view",
-          "sql": "select cast(_MAP['product_class_id'] AS INTEGER) AS 
\"product_class_id\",\n cast(_MAP['product_id'] AS INTEGER) AS 
\"product_id\",\n cast(_MAP['brand_name'] AS VARCHAR(60)) AS \"brand_name\",\n 
cast(_MAP['product_name'] AS VARCHAR(60)) AS \"product_name\",\n 
cast(_MAP['SKU'] AS BIGINT) AS \"SKU\",\n cast(_MAP['SRP'] AS DECIMAL(10,4)) AS 
\"SRP\",\n cast(_MAP['gross_weight'] AS REAL) AS \"gross_weight\",\n 
cast(_MAP['net_weight'] AS REAL) AS \"net_weight\",\n 
cast(_MAP['recyclable_package'] AS BOOLEAN) AS \"recyclable_package\",\n 
cast(_MAP['low_fat'] AS BOOLEAN) AS \"low_fat\",\n cast(_MAP['units_per_case'] 
AS SMALLINT) AS \"units_per_case\",\n cast(_MAP['cases_per_pallet'] AS 
SMALLINT) AS \"cases_per_pallet\",\n cast(_MAP['shelf_width'] AS REAL) AS 
\"shelf_width\",\n cast(_MAP['shelf_height'] AS REAL) AS \"shelf_height\",\n 
cast(_MAP['shelf_depth'] AS REAL) AS \"shelf_depth\"\nfrom 
\"foodmart_raw\".\"product\""
-        },
-        {
-          "name": "product_class",
-          "type": "view",
-          "sql": "select cast(_MAP['product_class_id'] AS INTEGER) AS 
\"product_class_id\",\n cast(_MAP['product_subcategory'] AS VARCHAR(30)) AS 
\"product_subcategory\",\n cast(_MAP['product_category'] AS VARCHAR(30)) AS 
\"product_category\",\n cast(_MAP['product_department'] AS VARCHAR(30)) AS 
\"product_department\",\n cast(_MAP['product_family'] AS VARCHAR(30)) AS 
\"product_family\"\nfrom \"foodmart_raw\".\"product_class\""
-        },
-        {
-          "name": "promotion",
-          "type": "view",
-          "sql": "select cast(_MAP['promotion_id'] AS INTEGER) AS 
\"promotion_id\",\n cast(_MAP['promotion_district_id'] AS INTEGER) AS 
\"promotion_district_id\",\n cast(_MAP['promotion_name'] AS VARCHAR(30)) AS 
\"promotion_name\",\n cast(_MAP['media_type'] AS VARCHAR(30)) AS 
\"media_type\",\n cast(_MAP['cost'] AS DECIMAL(10,4)) AS \"cost\",\n 
cast(_MAP['start_date'] AS TIMESTAMP) AS \"start_date\",\n 
cast(_MAP['end_date'] AS TIMESTAMP) AS \"end_date\"\nfrom 
\"foodmart_raw\".\"promotion\""
-        },
-        {
-          "name": "region",
-          "type": "view",
-          "sql": "select cast(_MAP['region_id'] AS INTEGER) AS 
\"region_id\",\n cast(_MAP['sales_city'] AS VARCHAR(30)) AS \"sales_city\",\n 
cast(_MAP['sales_state_province'] AS VARCHAR(30)) AS 
\"sales_state_province\",\n cast(_MAP['sales_district'] AS VARCHAR(30)) AS 
\"sales_district\",\n cast(_MAP['sales_region'] AS VARCHAR(30)) AS 
\"sales_region\",\n cast(_MAP['sales_country'] AS VARCHAR(30)) AS 
\"sales_country\",\n cast(_MAP['sales_district_id'] AS INTEGER) AS 
\"sales_district_id\"\nfrom \"foodmart_raw\".\"region\""
-        },
-        {
-          "name": "reserve_employee",
-          "type": "view",
-          "sql": "select cast(_MAP['employee_id'] AS INTEGER) AS 
\"employee_id\",\n cast(_MAP['full_name'] AS VARCHAR(30)) AS \"full_name\",\n 
cast(_MAP['first_name'] AS VARCHAR(30)) AS \"first_name\",\n 
cast(_MAP['last_name'] AS VARCHAR(30)) AS \"last_name\",\n 
cast(_MAP['position_id'] AS INTEGER) AS \"position_id\",\n 
cast(_MAP['position_title'] AS VARCHAR(30)) AS \"position_title\",\n 
cast(_MAP['store_id'] AS INTEGER) AS \"store_id\",\n cast(_MAP['department_id'] 
AS INTEGER) AS \"department_id\",\n cast(_MAP['birth_date'] AS TIMESTAMP) AS 
\"birth_date\",\n cast(_MAP['hire_date'] AS TIMESTAMP) AS \"hire_date\",\n 
cast(_MAP['end_date'] AS TIMESTAMP) AS \"end_date\",\n cast(_MAP['salary'] AS 
DECIMAL(10,4)) AS \"salary\",\n cast(_MAP['supervisor_id'] AS INTEGER) AS 
\"supervisor_id\",\n cast(_MAP['education_level'] AS VARCHAR(30)) AS 
\"education_level\",\n cast(_MAP['marital_status'] AS VARCHAR(30)) AS 
\"marital_status\",\n cast(_MAP['gender'] AS VARCHAR(30)) AS \"gender\"\nfrom 
\"foo
 dmart_raw\".\"reserve_employee\""
-        },
-        {
-          "name": "salary",
-          "type": "view",
-          "sql": "select cast(_MAP['pay_date'] AS TIMESTAMP) AS 
\"pay_date\",\n cast(_MAP['employee_id'] AS INTEGER) AS \"employee_id\",\n 
cast(_MAP['department_id'] AS INTEGER) AS \"department_id\",\n 
cast(_MAP['currency_id'] AS INTEGER) AS \"currency_id\",\n 
cast(_MAP['salary_paid'] AS DECIMAL(10,4)) AS \"salary_paid\",\n 
cast(_MAP['overtime_paid'] AS DECIMAL(10,4)) AS \"overtime_paid\",\n 
cast(_MAP['vacation_accrued'] AS REAL) AS \"vacation_accrued\",\n 
cast(_MAP['vacation_used'] AS REAL) AS \"vacation_used\"\nfrom 
\"foodmart_raw\".\"salary\""
-        },
-        {
-          "name": "store",
-          "type": "view",
-          "sql": "select cast(_MAP['store_id'] AS INTEGER) AS \"store_id\",\n 
cast(_MAP['store_type'] AS VARCHAR(30)) AS \"store_type\",\n 
cast(_MAP['region_id'] AS INTEGER) AS \"region_id\",\n cast(_MAP['store_name'] 
AS VARCHAR(30)) AS \"store_name\",\n cast(_MAP['store_number'] AS INTEGER) AS 
\"store_number\",\n cast(_MAP['store_street_address'] AS VARCHAR(30)) AS 
\"store_street_address\",\n cast(_MAP['store_city'] AS VARCHAR(30)) AS 
\"store_city\",\n cast(_MAP['store_state'] AS VARCHAR(30)) AS 
\"store_state\",\n cast(_MAP['store_postal_code'] AS VARCHAR(30)) AS 
\"store_postal_code\",\n cast(_MAP['store_country'] AS VARCHAR(30)) AS 
\"store_country\",\n cast(_MAP['store_manager'] AS VARCHAR(30)) AS 
\"store_manager\",\n cast(_MAP['store_phone'] AS VARCHAR(30)) AS 
\"store_phone\",\n cast(_MAP['store_fax'] AS VARCHAR(30)) AS \"store_fax\",\n 
cast(_MAP['first_opened_date'] AS TIMESTAMP) AS \"first_opened_date\",\n 
cast(_MAP['last_remodel_date'] AS TIMESTAMP) AS \"last_remodel_date\",\n
  cast(_MAP['store_sqft'] AS INTEGER) AS \"store_sqft\",\n 
cast(_MAP['grocery_sqft'] AS INTEGER) AS \"grocery_sqft\",\n 
cast(_MAP['frozen_sqft'] AS INTEGER) AS \"frozen_sqft\",\n 
cast(_MAP['meat_sqft'] AS INTEGER) AS \"meat_sqft\",\n cast(_MAP['coffee_bar'] 
AS BOOLEAN) AS \"coffee_bar\",\n cast(_MAP['video_store'] AS BOOLEAN) AS 
\"video_store\",\n cast(_MAP['salad_bar'] AS BOOLEAN) AS \"salad_bar\",\n 
cast(_MAP['prepared_food'] AS BOOLEAN) AS \"prepared_food\",\n 
cast(_MAP['florist'] AS BOOLEAN) AS \"florist\"\nfrom 
\"foodmart_raw\".\"store\""
-        },
-        {
-          "name": "store_ragged",
-          "type": "view",
-          "sql": "select cast(_MAP['store_id'] AS INTEGER) AS \"store_id\",\n 
cast(_MAP['store_type'] AS VARCHAR(30)) AS \"store_type\",\n 
cast(_MAP['region_id'] AS INTEGER) AS \"region_id\",\n cast(_MAP['store_name'] 
AS VARCHAR(30)) AS \"store_name\",\n cast(_MAP['store_number'] AS INTEGER) AS 
\"store_number\",\n cast(_MAP['store_street_address'] AS VARCHAR(30)) AS 
\"store_street_address\",\n cast(_MAP['store_city'] AS VARCHAR(30)) AS 
\"store_city\",\n cast(_MAP['store_state'] AS VARCHAR(30)) AS 
\"store_state\",\n cast(_MAP['store_postal_code'] AS VARCHAR(30)) AS 
\"store_postal_code\",\n cast(_MAP['store_country'] AS VARCHAR(30)) AS 
\"store_country\",\n cast(_MAP['store_manager'] AS VARCHAR(30)) AS 
\"store_manager\",\n cast(_MAP['store_phone'] AS VARCHAR(30)) AS 
\"store_phone\",\n cast(_MAP['store_fax'] AS VARCHAR(30)) AS \"store_fax\",\n 
cast(_MAP['first_opened_date'] AS TIMESTAMP) AS \"first_opened_date\",\n 
cast(_MAP['last_remodel_date'] AS TIMESTAMP) AS \"last_remodel_date\",\n
  cast(_MAP['store_sqft'] AS INTEGER) AS \"store_sqft\",\n 
cast(_MAP['grocery_sqft'] AS INTEGER) AS \"grocery_sqft\",\n 
cast(_MAP['frozen_sqft'] AS INTEGER) AS \"frozen_sqft\",\n 
cast(_MAP['meat_sqft'] AS INTEGER) AS \"meat_sqft\",\n cast(_MAP['coffee_bar'] 
AS BOOLEAN) AS \"coffee_bar\",\n cast(_MAP['video_store'] AS BOOLEAN) AS 
\"video_store\",\n cast(_MAP['salad_bar'] AS BOOLEAN) AS \"salad_bar\",\n 
cast(_MAP['prepared_food'] AS BOOLEAN) AS \"prepared_food\",\n 
cast(_MAP['florist'] AS BOOLEAN) AS \"florist\"\nfrom 
\"foodmart_raw\".\"store_ragged\""
-        },
-        {
-          "name": "time_by_day",
-          "type": "view",
-          "sql": "select cast(_MAP['time_id'] AS INTEGER) AS \"time_id\",\n 
cast(_MAP['the_date'] AS TIMESTAMP) AS \"the_date\",\n cast(_MAP['the_day'] AS 
VARCHAR(30)) AS \"the_day\",\n cast(_MAP['the_month'] AS VARCHAR(30)) AS 
\"the_month\",\n cast(_MAP['the_year'] AS SMALLINT) AS \"the_year\",\n 
cast(_MAP['day_of_month'] AS SMALLINT) AS \"day_of_month\",\n 
cast(_MAP['week_of_year'] AS INTEGER) AS \"week_of_year\",\n 
cast(_MAP['month_of_year'] AS SMALLINT) AS \"month_of_year\",\n 
cast(_MAP['quarter'] AS VARCHAR(30)) AS \"quarter\",\n 
cast(_MAP['fiscal_period'] AS VARCHAR(30)) AS \"fiscal_period\"\nfrom 
\"foodmart_raw\".\"time_by_day\""
-        },
-        {
-          "name": "warehouse",
-          "type": "view",
-          "sql": "select cast(_MAP['warehouse_id'] AS INTEGER) AS 
\"warehouse_id\",\n cast(_MAP['warehouse_class_id'] AS INTEGER) AS 
\"warehouse_class_id\",\n cast(_MAP['stores_id'] AS INTEGER) AS 
\"stores_id\",\n cast(_MAP['warehouse_name'] AS VARCHAR(60)) AS 
\"warehouse_name\",\n cast(_MAP['wa_address1'] AS VARCHAR(30)) AS 
\"wa_address1\",\n cast(_MAP['wa_address2'] AS VARCHAR(30)) AS 
\"wa_address2\",\n cast(_MAP['wa_address3'] AS VARCHAR(30)) AS 
\"wa_address3\",\n cast(_MAP['wa_address4'] AS VARCHAR(30)) AS 
\"wa_address4\",\n cast(_MAP['warehouse_city'] AS VARCHAR(30)) AS 
\"warehouse_city\",\n cast(_MAP['warehouse_state_province'] AS VARCHAR(30)) AS 
\"warehouse_state_province\",\n cast(_MAP['warehouse_postal_code'] AS 
VARCHAR(30)) AS \"warehouse_postal_code\",\n cast(_MAP['warehouse_country'] AS 
VARCHAR(30)) AS \"warehouse_country\",\n cast(_MAP['warehouse_owner_name'] AS 
VARCHAR(30)) AS \"warehouse_owner_name\",\n cast(_MAP['warehouse_phone'] AS 
VARCHAR(30)) AS \"warehouse_phone
 \",\n cast(_MAP['warehouse_fax'] AS VARCHAR(30)) AS \"warehouse_fax\"\nfrom 
\"foodmart_raw\".\"warehouse\""
-        },
-        {
-          "name": "warehouse_class",
-          "type": "view",
-          "sql": "select cast(_MAP['warehouse_class_id'] AS INTEGER) AS 
\"warehouse_class_id\",\n cast(_MAP['description'] AS VARCHAR(30)) AS 
\"description\"\nfrom \"foodmart_raw\".\"warehouse_class\""
-        }
-      ]
-    }
-  ]
-}

http://git-wip-us.apache.org/repos/asf/calcite/blob/dcf396a5/mongodb/src/test/resources/mongo-model.json
----------------------------------------------------------------------
diff --git a/mongodb/src/test/resources/mongo-model.json 
b/mongodb/src/test/resources/mongo-model.json
new file mode 100644
index 0000000..5943df0
--- /dev/null
+++ b/mongodb/src/test/resources/mongo-model.json
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+{
+  "version": "1.0",
+  "defaultSchema": "mongo",
+  "schemas": [
+    {
+      "type": "custom",
+      "name": "mongo_raw",
+      "factory": "org.apache.calcite.adapter.mongodb.MongoSchemaFactory",
+      "operand": {
+        "host": "localhost",
+        "database": "test"
+      }
+    },
+    {
+      "type": "custom",
+      "name": "_foodmart",
+      "factory": "org.apache.calcite.adapter.mongodb.MongoSchemaFactory",
+      "operand": {
+        "host": "localhost",
+        "database": "foodmart"
+      }
+    },
+    {
+      "name": "mongo",
+      "tables": [
+        {
+          "name": "ZIPS",
+          "type": "view",
+          "sql": "select cast(_MAP['city'] AS varchar(20)) AS city,\n 
cast(_MAP['loc'][0] AS float) AS longitude, cast(_MAP['loc'][1] AS float) AS 
latitude, cast(_MAP['pop'] AS integer) AS pop, cast(_MAP['state'] AS 
varchar(2)) AS state, cast(_MAP['_id'] AS varchar(5)) AS id from 
\"mongo_raw\".\"zips\""
+        },
+        {
+          "name": "sales_fact_1997",
+          "type": "view",
+          "sql": "select cast(_MAP['product_id'] AS double) AS \"product_id\" 
from \"_foodmart\".\"sales_fact_1997\""
+        },
+        {
+          "name": "sales_fact_1998",
+          "type": "view",
+          "sql": "select cast(_MAP['product_id'] AS double) AS \"product_id\" 
from \"_foodmart\".\"sales_fact_1998\""
+        },
+        {
+          "name": "store",
+          "type": "view",
+          "sql": "select cast(_MAP['store_id'] AS double) AS \"store_id\", 
cast(_MAP['store_name'] AS varchar(20)) AS \"store_name\" from 
\"mongo_raw\".\"store\""
+        },
+        {
+          "name": "warehouse",
+          "type": "view",
+          "sql": "select cast(_MAP['warehouse_id'] AS double) AS 
\"warehouse_id\", cast(_MAP['warehouse_state_province'] AS varchar(20)) AS 
\"warehouse_state_province\" from \"mongo_raw\".\"warehouse\""
+        }
+      ]
+    }
+  ]
+}

http://git-wip-us.apache.org/repos/asf/calcite/blob/dcf396a5/mongodb/src/test/resources/mongo-zips-model.json
----------------------------------------------------------------------
diff --git a/mongodb/src/test/resources/mongo-zips-model.json 
b/mongodb/src/test/resources/mongo-zips-model.json
deleted file mode 100644
index 669e3b9..0000000
--- a/mongodb/src/test/resources/mongo-zips-model.json
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-{
-  "version": "1.0",
-  "defaultSchema": "mongo",
-  "schemas": [
-    {
-      "type": "custom",
-      "name": "mongo_raw",
-      "factory": "org.apache.calcite.adapter.mongodb.MongoSchemaFactory",
-      "operand": {
-        "host": "localhost",
-        "database": "test"
-      }
-    },
-    {
-      "name": "mongo",
-      "tables": [
-        {
-          "name": "ZIPS",
-          "type": "view",
-          "sql": "select cast(_MAP['city'] AS varchar(20)) AS city,\n 
cast(_MAP['loc'][0] AS float) AS longitude, cast(_MAP['loc'][1] AS float) AS 
latitude, cast(_MAP['pop'] AS integer) AS pop, cast(_MAP['state'] AS 
varchar(2)) AS state, cast(_MAP['_id'] AS varchar(5)) AS id from 
\"mongo_raw\".\"zips\""
-        }
-      ]
-    }
-  ]
-}

http://git-wip-us.apache.org/repos/asf/calcite/blob/dcf396a5/mongodb/src/test/resources/zips-mini.json
----------------------------------------------------------------------
diff --git a/mongodb/src/test/resources/zips-mini.json 
b/mongodb/src/test/resources/zips-mini.json
new file mode 100644
index 0000000..d70eadc
--- /dev/null
+++ b/mongodb/src/test/resources/zips-mini.json
@@ -0,0 +1,149 @@
+{ "_id" : "01701", "city" : "FRAMINGHAM", "loc" : [ -71.42548600000001, 
42.300665 ], "pop" : 65046, "state" : "MA" }
+{ "_id" : "02154", "city" : "NORTH WALTHAM", "loc" : [ -71.236497, 42.382492 
], "pop" : 57871, "state" : "MA" }
+{ "_id" : "02401", "city" : "BROCKTON", "loc" : [ -71.03434799999999, 
42.081571 ], "pop" : 59498, "state" : "MA" }
+{ "_id" : "02840", "city" : "MIDDLETOWN", "loc" : [ -71.30347999999999, 
41.504502 ], "pop" : 47687, "state" : "RI" }
+{ "_id" : "02860", "city" : "PAWTUCKET", "loc" : [ -71.39071300000001, 
41.872873 ], "pop" : 45442, "state" : "RI" }
+{ "_id" : "02895", "city" : "NORTH SMITHFIELD", "loc" : [ -71.513683, 41.99948 
], "pop" : 53733, "state" : "RI" }
+{ "_id" : "03060", "city" : "NASHUA", "loc" : [ -71.466684, 42.756395 ], "pop" 
: 41438, "state" : "NH" }
+{ "_id" : "03103", "city" : "MANCHESTER", "loc" : [ -71.449325, 42.965563 ], 
"pop" : 36613, "state" : "NH" }
+{ "_id" : "03301", "city" : "CONCORD", "loc" : [ -71.527734, 43.218525 ], 
"pop" : 34035, "state" : "NH" }
+{ "_id" : "04240", "city" : "LEWISTON", "loc" : [ -70.191619, 44.098538 ], 
"pop" : 40173, "state" : "ME" }
+{ "_id" : "04401", "city" : "BANGOR", "loc" : [ -68.791839, 44.824199 ], "pop" 
: 40434, "state" : "ME" }
+{ "_id" : "05301", "city" : "BRATTLEBORO", "loc" : [ -72.593322, 42.857353 ], 
"pop" : 17522, "state" : "VT" }
+{ "_id" : "05401", "city" : "BURLINGTON", "loc" : [ -73.219875, 44.484023 ], 
"pop" : 39127, "state" : "VT" }
+{ "_id" : "05701", "city" : "RUTLAND", "loc" : [ -72.97077299999999, 43.614131 
], "pop" : 22576, "state" : "VT" }
+{ "_id" : "06010", "city" : "BRISTOL", "loc" : [ -72.930193, 41.682293 ], 
"pop" : 60670, "state" : "CT" }
+{ "_id" : "06450", "city" : "MERIDEN", "loc" : [ -72.799734, 41.533396 ], 
"pop" : 59441, "state" : "CT" }
+{ "_id" : "06902", "city" : "STAMFORD", "loc" : [ -73.53742800000001, 
41.052552 ], "pop" : 54605, "state" : "CT" }
+{ "_id" : "07002", "city" : "BAYONNE", "loc" : [ -74.119169, 40.666399 ], 
"pop" : 61444, "state" : "NJ" }
+{ "_id" : "07087", "city" : "WEEHAWKEN", "loc" : [ -74.030558, 40.768153 ], 
"pop" : 69646, "state" : "NJ" }
+{ "_id" : "07111", "city" : "IRVINGTON", "loc" : [ -74.23127100000001, 40.7261 
], "pop" : 60986, "state" : "NJ" }
+{ "_id" : "10021", "city" : "NEW YORK", "loc" : [ -73.958805, 40.768476 ], 
"pop" : 106564, "state" : "NY" }
+{ "_id" : "11226", "city" : "BROOKLYN", "loc" : [ -73.956985, 40.646694 ], 
"pop" : 111396, "state" : "NY" }
+{ "_id" : "11373", "city" : "JACKSON HEIGHTS", "loc" : [ -73.878551, 40.740388 
], "pop" : 88241, "state" : "NY" }
+{ "_id" : "17042", "city" : "CLEONA", "loc" : [ -76.425895, 40.335912 ], "pop" 
: 61993, "state" : "PA" }
+{ "_id" : "18042", "city" : "FORKS TOWNSHIP", "loc" : [ -75.23582, 40.6867 ], 
"pop" : 65784, "state" : "PA" }
+{ "_id" : "19143", "city" : "PHILADELPHIA", "loc" : [ -75.228819, 39.944815 ], 
"pop" : 80454, "state" : "PA" }
+{ "_id" : "19711", "city" : "NEWARK", "loc" : [ -75.737534, 39.701129 ], "pop" 
: 50573, "state" : "DE" }
+{ "_id" : "19720", "city" : "MANOR", "loc" : [ -75.589938, 39.67703 ], "pop" : 
46906, "state" : "DE" }
+{ "_id" : "19901", "city" : "DOVER", "loc" : [ -75.535983, 39.156639 ], "pop" 
: 46005, "state" : "DE" }
+{ "_id" : "20011", "city" : "WASHINGTON", "loc" : [ -77.020251, 38.951786 ], 
"pop" : 62924, "state" : "DC" }
+{ "_id" : "20301", "city" : "PENTAGON", "loc" : [ -77.038196, 38.891019 ], 
"pop" : 21, "state" : "DC" }
+{ "_id" : "21061", "city" : "GLEN BURNIE", "loc" : [ -76.61886199999999, 
39.158968 ], "pop" : 75692, "state" : "MD" }
+{ "_id" : "21207", "city" : "GWYNN OAK", "loc" : [ -76.734064, 39.329628 ], 
"pop" : 76002, "state" : "MD" }
+{ "_id" : "21215", "city" : "BALTIMORE", "loc" : [ -76.67939699999999, 
39.344572 ], "pop" : 74402, "state" : "MD" }
+{ "_id" : "22901", "city" : "CHARLOTTESVILLE", "loc" : [ -78.490869, 38.054752 
], "pop" : 62708, "state" : "VA" }
+{ "_id" : "23464", "city" : "VIRGINIA BEACH", "loc" : [ -76.175909, 36.797772 
], "pop" : 67276, "state" : "VA" }
+{ "_id" : "23602", "city" : "NEWPORT NEWS", "loc" : [ -76.53212499999999, 
37.131684 ], "pop" : 68525, "state" : "VA" }
+{ "_id" : "25801", "city" : "BECKLEY", "loc" : [ -81.206084, 37.793214 ], 
"pop" : 45196, "state" : "WV" }
+{ "_id" : "26003", "city" : "ELM GROVE", "loc" : [ -80.685126, 40.072736 ], 
"pop" : 49136, "state" : "WV" }
+{ "_id" : "26505", "city" : "STAR CITY", "loc" : [ -79.95422499999999, 
39.633858 ], "pop" : 70185, "state" : "WV" }
+{ "_id" : "27292", "city" : "LEXINGTON", "loc" : [ -80.262049, 35.82306 ], 
"pop" : 69179, "state" : "NC" }
+{ "_id" : "28677", "city" : "STATESVILLE", "loc" : [ -80.894009, 35.799022 ], 
"pop" : 52895, "state" : "NC" }
+{ "_id" : "29150", "city" : "OSWEGO", "loc" : [ -80.32100800000001, 33.928199 
], "pop" : 46394, "state" : "SC" }
+{ "_id" : "29501", "city" : "FLORENCE", "loc" : [ -79.772786, 34.18375 ], 
"pop" : 66990, "state" : "SC" }
+{ "_id" : "29801", "city" : "AIKEN", "loc" : [ -81.71942900000001, 33.553024 
], "pop" : 51233, "state" : "SC" }
+{ "_id" : "30032", "city" : "DECATUR", "loc" : [ -84.263165, 33.740825 ], 
"pop" : 56056, "state" : "GA" }
+{ "_id" : "30906", "city" : "PEACH ORCHARD", "loc" : [ -82.038358, 33.402024 
], "pop" : 58646, "state" : "GA" }
+{ "_id" : "32216", "city" : "JACKSONVILLE", "loc" : [ -81.547387, 30.293907 ], 
"pop" : 58867, "state" : "FL" }
+{ "_id" : "33012", "city" : "HIALEAH", "loc" : [ -80.30589999999999, 25.865395 
], "pop" : 73194, "state" : "FL" }
+{ "_id" : "33311", "city" : "FORT LAUDERDALE", "loc" : [ -80.172786, 26.142104 
], "pop" : 65378, "state" : "FL" }
+{ "_id" : "35215", "city" : "CENTER POINT", "loc" : [ -86.693197, 33.635447 ], 
"pop" : 43862, "state" : "AL" }
+{ "_id" : "35401", "city" : "TUSCALOOSA", "loc" : [ -87.56266599999999, 
33.196891 ], "pop" : 42124, "state" : "AL" }
+{ "_id" : "35901", "city" : "SOUTHSIDE", "loc" : [ -86.010279, 33.997248 ], 
"pop" : 44165, "state" : "AL" }
+{ "_id" : "37042", "city" : "CLARKSVILLE", "loc" : [ -87.418621, 36.585315 ], 
"pop" : 43296, "state" : "TN" }
+{ "_id" : "37211", "city" : "NASHVILLE", "loc" : [ -86.72403799999999, 
36.072486 ], "pop" : 51478, "state" : "TN" }
+{ "_id" : "38109", "city" : "MEMPHIS", "loc" : [ -90.073238, 35.042538 ], 
"pop" : 60508, "state" : "TN" }
+{ "_id" : "39180", "city" : "VICKSBURG", "loc" : [ -90.85065, 32.325824 ], 
"pop" : 46968, "state" : "MS" }
+{ "_id" : "39401", "city" : "HATTIESBURG", "loc" : [ -89.306471, 31.314553 ], 
"pop" : 41866, "state" : "MS" }
+{ "_id" : "39440", "city" : "LAUREL", "loc" : [ -89.13115500000001, 31.705444 
], "pop" : 45040, "state" : "MS" }
+{ "_id" : "40214", "city" : "LOUISVILLE", "loc" : [ -85.77802699999999, 
38.159318 ], "pop" : 42198, "state" : "KY" }
+{ "_id" : "40216", "city" : "SHIVELY", "loc" : [ -85.831771, 38.186138 ], 
"pop" : 41719, "state" : "KY" }
+{ "_id" : "40601", "city" : "HATTON", "loc" : [ -84.88061, 38.192831 ], "pop" 
: 46563, "state" : "KY" }
+{ "_id" : "44035", "city" : "ELYRIA", "loc" : [ -82.10508799999999, 41.372353 
], "pop" : 66674, "state" : "OH" }
+{ "_id" : "44060", "city" : "MENTOR", "loc" : [ -81.342133, 41.689468 ], "pop" 
: 60109, "state" : "OH" }
+{ "_id" : "44107", "city" : "EDGEWATER", "loc" : [ -81.79714300000001, 
41.482654 ], "pop" : 59702, "state" : "OH" }
+{ "_id" : "46360", "city" : "MICHIGAN CITY", "loc" : [ -86.869899, 41.698031 
], "pop" : 55392, "state" : "IN" }
+{ "_id" : "47130", "city" : "JEFFERSONVILLE", "loc" : [ -85.735885, 38.307767 
], "pop" : 56543, "state" : "IN" }
+{ "_id" : "47906", "city" : "WEST LAFAYETTE", "loc" : [ -86.923661, 40.444025 
], "pop" : 54702, "state" : "IN" }
+{ "_id" : "48180", "city" : "TAYLOR", "loc" : [ -83.267269, 42.231738 ], "pop" 
: 70811, "state" : "MI" }
+{ "_id" : "48185", "city" : "WESTLAND", "loc" : [ -83.374908, 42.318882 ], 
"pop" : 84712, "state" : "MI" }
+{ "_id" : "48227", "city" : "DETROIT", "loc" : [ -83.193732, 42.388303 ], 
"pop" : 68390, "state" : "MI" }
+{ "_id" : "50010", "city" : "AMES", "loc" : [ -93.639398, 42.029859 ], "pop" : 
52105, "state" : "IA" }
+{ "_id" : "50317", "city" : "PLEASANT HILL", "loc" : [ -93.549446, 41.612499 
], "pop" : 39883, "state" : "IA" }
+{ "_id" : "52001", "city" : "DUBUQUE", "loc" : [ -90.68191400000001, 42.514977 
], "pop" : 41934, "state" : "IA" }
+{ "_id" : "53209", "city" : "MILWAUKEE", "loc" : [ -87.947834, 43.118765 ], 
"pop" : 51008, "state" : "WI" }
+{ "_id" : "54401", "city" : "WAUSAU", "loc" : [ -89.633955, 44.963433 ], "pop" 
: 51083, "state" : "WI" }
+{ "_id" : "54901", "city" : "OSHKOSH", "loc" : [ -88.54363499999999, 44.021962 
], "pop" : 57187, "state" : "WI" }
+{ "_id" : "55106", "city" : "SAINT PAUL", "loc" : [ -93.048817, 44.968384 ], 
"pop" : 47905, "state" : "MN" }
+{ "_id" : "55112", "city" : "NEW BRIGHTON", "loc" : [ -93.199691, 45.074129 ], 
"pop" : 44128, "state" : "MN" }
+{ "_id" : "55337", "city" : "BURNSVILLE", "loc" : [ -93.275283, 44.76086 ], 
"pop" : 51421, "state" : "MN" }
+{ "_id" : "57103", "city" : "SIOUX FALLS", "loc" : [ -96.686415, 43.537386 ], 
"pop" : 32508, "state" : "SD" }
+{ "_id" : "57401", "city" : "ABERDEEN", "loc" : [ -98.485642, 45.466109 ], 
"pop" : 28786, "state" : "SD" }
+{ "_id" : "57701", "city" : "ROCKERVILLE", "loc" : [ -103.200259, 44.077041 ], 
"pop" : 45328, "state" : "SD" }
+{ "_id" : "58103", "city" : "FARGO", "loc" : [ -96.812252, 46.856406 ], "pop" 
: 38483, "state" : "ND" }
+{ "_id" : "58501", "city" : "BISMARCK", "loc" : [ -100.774755, 46.823448 ], 
"pop" : 36602, "state" : "ND" }
+{ "_id" : "58701", "city" : "MINOT", "loc" : [ -101.298476, 48.22914 ], "pop" 
: 42195, "state" : "ND" }
+{ "_id" : "59102", "city" : "BILLINGS", "loc" : [ -108.572662, 45.781265 ], 
"pop" : 40121, "state" : "MT" }
+{ "_id" : "59601", "city" : "HELENA", "loc" : [ -112.021283, 46.613066 ], 
"pop" : 40102, "state" : "MT" }
+{ "_id" : "59801", "city" : "MISSOULA", "loc" : [ -114.025207, 46.856274 ], 
"pop" : 33811, "state" : "MT" }
+{ "_id" : "60623", "city" : "CHICAGO", "loc" : [ -87.7157, 41.849015 ], "pop" 
: 112047, "state" : "IL" }
+{ "_id" : "60634", "city" : "NORRIDGE", "loc" : [ -87.796054, 41.945213 ], 
"pop" : 69160, "state" : "IL" }
+{ "_id" : "60650", "city" : "CICERO", "loc" : [ -87.76008, 41.84776 ], "pop" : 
67670, "state" : "IL" }
+{ "_id" : "63031", "city" : "FLORISSANT", "loc" : [ -90.340097, 38.806865 ], 
"pop" : 52659, "state" : "MO" }
+{ "_id" : "63116", "city" : "SAINT LOUIS", "loc" : [ -90.26254299999999, 
38.581356 ], "pop" : 49014, "state" : "MO" }
+{ "_id" : "63136", "city" : "JENNINGS", "loc" : [ -90.260189, 38.738878 ], 
"pop" : 54994, "state" : "MO" }
+{ "_id" : "66502", "city" : "MANHATTAN", "loc" : [ -96.585776, 39.193757 ], 
"pop" : 50178, "state" : "KS" }
+{ "_id" : "67212", "city" : "WICHITA", "loc" : [ -97.438344, 37.700683 ], 
"pop" : 41349, "state" : "KS" }
+{ "_id" : "67401", "city" : "BAVARIA", "loc" : [ -97.60878700000001, 38.823802 
], "pop" : 45208, "state" : "KS" }
+{ "_id" : "68104", "city" : "OMAHA", "loc" : [ -95.999888, 41.29186 ], "pop" : 
35325, "state" : "NE" }
+{ "_id" : "68502", "city" : "LINCOLN", "loc" : [ -96.693763, 40.789282 ], 
"pop" : 27576, "state" : "NE" }
+{ "_id" : "68847", "city" : "KEARNEY", "loc" : [ -99.077883, 40.713608 ], 
"pop" : 28674, "state" : "NE" }
+{ "_id" : "70072", "city" : "MARRERO", "loc" : [ -90.110462, 29.859756 ], 
"pop" : 58905, "state" : "LA" }
+{ "_id" : "70117", "city" : "NEW ORLEANS", "loc" : [ -90.03124, 29.970298 ], 
"pop" : 56494, "state" : "LA" }
+{ "_id" : "70560", "city" : "NEW IBERIA", "loc" : [ -91.819959, 30.001027 ], 
"pop" : 56105, "state" : "LA" }
+{ "_id" : "72032", "city" : "CONWAY", "loc" : [ -92.423574, 35.084199 ], "pop" 
: 43236, "state" : "AR" }
+{ "_id" : "72076", "city" : "GRAVEL RIDGE", "loc" : [ -92.13043500000001, 
34.881985 ], "pop" : 37428, "state" : "AR" }
+{ "_id" : "72401", "city" : "JONESBORO", "loc" : [ -90.69652600000001, 
35.833016 ], "pop" : 53532, "state" : "AR" }
+{ "_id" : "73034", "city" : "EDMOND", "loc" : [ -97.47983499999999, 35.666483 
], "pop" : 43814, "state" : "OK" }
+{ "_id" : "73505", "city" : "LAWTON", "loc" : [ -98.455234, 34.617939 ], "pop" 
: 45542, "state" : "OK" }
+{ "_id" : "74801", "city" : "SHAWNEE", "loc" : [ -96.931321, 35.34907 ], "pop" 
: 40076, "state" : "OK" }
+{ "_id" : "78207", "city" : "SAN ANTONIO", "loc" : [ -98.52596699999999, 
29.422855 ], "pop" : 58355, "state" : "TX" }
+{ "_id" : "78521", "city" : "BROWNSVILLE", "loc" : [ -97.461236, 25.922103 ], 
"pop" : 79463, "state" : "TX" }
+{ "_id" : "78572", "city" : "ALTON", "loc" : [ -98.342647, 26.24153 ], "pop" : 
67604, "state" : "TX" }
+{ "_id" : "80123", "city" : "BOW MAR", "loc" : [ -105.07766, 39.596854 ], 
"pop" : 59418, "state" : "CO" }
+{ "_id" : "80221", "city" : "FEDERAL HEIGHTS", "loc" : [ -105.007985, 
39.840562 ], "pop" : 54069, "state" : "CO" }
+{ "_id" : "80631", "city" : "GARDEN CITY", "loc" : [ -104.704756, 40.413968 ], 
"pop" : 53905, "state" : "CO" }
+{ "_id" : "82001", "city" : "CHEYENNE", "loc" : [ -104.796234, 41.143719 ], 
"pop" : 33107, "state" : "WY" }
+{ "_id" : "82070", "city" : "LARAMIE", "loc" : [ -105.581146, 41.312907 ], 
"pop" : 29327, "state" : "WY" }
+{ "_id" : "82716", "city" : "GILLETTE", "loc" : [ -105.497442, 44.282009 ], 
"pop" : 25968, "state" : "WY" }
+{ "_id" : "83301", "city" : "TWIN FALLS", "loc" : [ -114.469265, 42.556495 ], 
"pop" : 34539, "state" : "ID" }
+{ "_id" : "83704", "city" : "BOISE", "loc" : [ -116.295099, 43.633001 ], "pop" 
: 40912, "state" : "ID" }
+{ "_id" : "83814", "city" : "COEUR D ALENE", "loc" : [ -116.784976, 47.692841 
], "pop" : 33589, "state" : "ID" }
+{ "_id" : "84118", "city" : "KEARNS", "loc" : [ -111.98521, 40.652759 ], "pop" 
: 55999, "state" : "UT" }
+{ "_id" : "84120", "city" : "WEST VALLEY CITY", "loc" : [ -112.009783, 
40.68708 ], "pop" : 52854, "state" : "UT" }
+{ "_id" : "84604", "city" : "PROVO", "loc" : [ -111.654906, 40.260681 ], "pop" 
: 43841, "state" : "UT" }
+{ "_id" : "85023", "city" : "PHOENIX", "loc" : [ -112.111838, 33.632383 ], 
"pop" : 54668, "state" : "AZ" }
+{ "_id" : "85204", "city" : "MESA", "loc" : [ -111.789554, 33.399168 ], "pop" 
: 55180, "state" : "AZ" }
+{ "_id" : "85364", "city" : "YUMA", "loc" : [ -114.642362, 32.701507 ], "pop" 
: 57131, "state" : "AZ" }
+{ "_id" : "87501", "city" : "POJOAQUE VALLEY", "loc" : [ -105.974818, 
35.702472 ], "pop" : 51715, "state" : "NM" }
+{ "_id" : "88001", "city" : "LAS CRUCES", "loc" : [ -106.746034, 32.321641 ], 
"pop" : 57502, "state" : "NM" }
+{ "_id" : "88201", "city" : "ROSWELL", "loc" : [ -104.525857, 33.388504 ], 
"pop" : 53644, "state" : "NM" }
+{ "_id" : "89031", "city" : "NORTH LAS VEGAS", "loc" : [ -115.124832, 
36.206228 ], "pop" : 48113, "state" : "NV" }
+{ "_id" : "89115", "city" : "LAS VEGAS", "loc" : [ -115.067062, 36.215818 ], 
"pop" : 51532, "state" : "NV" }
+{ "_id" : "89502", "city" : "RENO", "loc" : [ -119.776395, 39.497239 ], "pop" 
: 38332, "state" : "NV" }
+{ "_id" : "90011", "city" : "LOS ANGELES", "loc" : [ -118.258189, 34.007856 ], 
"pop" : 96074, "state" : "CA" }
+{ "_id" : "90201", "city" : "BELL GARDENS", "loc" : [ -118.17205, 33.969177 ], 
"pop" : 99568, "state" : "CA" }
+{ "_id" : "90650", "city" : "NORWALK", "loc" : [ -118.081767, 33.90564 ], 
"pop" : 94188, "state" : "CA" }
+{ "_id" : "96734", "city" : "KAILUA", "loc" : [ -157.744781, 21.406262 ], 
"pop" : 53403, "state" : "HI" }
+{ "_id" : "96744", "city" : "KANEOHE", "loc" : [ -157.811543, 21.422819 ], 
"pop" : 55236, "state" : "HI" }
+{ "_id" : "96818", "city" : "HONOLULU", "loc" : [ -157.926925, 21.353173 ], 
"pop" : 62915, "state" : "HI" }
+{ "_id" : "97005", "city" : "BEAVERTON", "loc" : [ -122.805395, 45.475035 ], 
"pop" : 46660, "state" : "OR" }
+{ "_id" : "97206", "city" : "PORTLAND", "loc" : [ -122.59727, 45.483995 ], 
"pop" : 43134, "state" : "OR" }
+{ "_id" : "97301", "city" : "SALEM", "loc" : [ -122.979692, 44.926039 ], "pop" 
: 48007, "state" : "OR" }
+{ "_id" : "98031", "city" : "KENT", "loc" : [ -122.193184, 47.388004 ], "pop" 
: 50515, "state" : "WA" }
+{ "_id" : "98059", "city" : "RENTON", "loc" : [ -122.151178, 47.467383 ], 
"pop" : 48197, "state" : "WA" }
+{ "_id" : "98310", "city" : "BREMERTON", "loc" : [ -122.629913, 47.601916 ], 
"pop" : 49057, "state" : "WA" }
+{ "_id" : "99504", "city" : "ANCHORAGE", "loc" : [ -149.74467, 61.203696 ], 
"pop" : 32383, "state" : "AK" }
+{ "_id" : "99709", "city" : "FAIRBANKS", "loc" : [ -147.846917, 64.85437 ], 
"pop" : 23238, "state" : "AK" }
+{ "_id" : "99801", "city" : "JUNEAU", "loc" : [ -134.529429, 58.362767 ], 
"pop" : 24947, "state" : "AK" }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/calcite/blob/dcf396a5/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 2742011..ee166ab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,6 +78,7 @@ limitations under the License.
     <git-commit-id-plugin.version>2.1.9</git-commit-id-plugin.version>
     <geode.version>1.3.0</geode.version>
     <fongo.version>2.1.1</fongo.version>
+    <foodmart-data-json.version>0.4</foodmart-data-json.version>
 
     <!-- We support (and test against) Guava versions between
          19.0 and 23.0. Default is 19.0 due to Cassandra adapter. -->
@@ -466,6 +467,11 @@ limitations under the License.
         <version>${fongo.version}</version>
       </dependency>
       <dependency>
+        <groupId>net.hydromatic</groupId>
+        <artifactId>foodmart-data-json</artifactId>
+        <version>${foodmart-data-json.version}</version>
+      </dependency>
+      <dependency>
         <groupId>org.openjdk.jmh</groupId>
         <artifactId>jmh-core</artifactId>
         <version>${jmh.version}</version>
@@ -840,6 +846,9 @@ limitations under the License.
                 <threadCount>6</threadCount>
                 <parallel>both</parallel>
                 <argLine>-Xmx1024m</argLine>
+                <systemPropertyVariables>
+                  <calcite.integrationTest>true</calcite.integrationTest>
+                </systemPropertyVariables>
               </configuration>
             </execution>
             <execution>

Reply via email to