You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by zu...@apache.org on 2016/08/03 18:54:08 UTC
[1/2] incubator-quickstep git commit: QUICKSTEP-38. Add support for
python3 to utility scripts [Forced Update!]
Repository: incubator-quickstep
Updated Branches:
refs/heads/optimizer-q-id c8ead67a1 -> 8cd5a56c9 (forced update)
QUICKSTEP-38. Add support for python3 to utility scripts
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/d4e714ce
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/d4e714ce
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/d4e714ce
Branch: refs/heads/optimizer-q-id
Commit: d4e714ce32e195c95a4e603db7ec8302865f9418
Parents: a61b99e
Author: Caleb Welton <cw...@apache.org>
Authored: Tue Aug 2 10:44:41 2016 -0700
Committer: Zuyu Zhang <zu...@twitter.com>
Committed: Wed Aug 3 11:48:27 2016 -0700
----------------------------------------------------------------------
cyclic_dependency.py | 28 ++++++++++++++++------------
validate_cmakelists.py | 42 +++++++++++++++++++++++-------------------
2 files changed, 39 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/d4e714ce/cyclic_dependency.py
----------------------------------------------------------------------
diff --git a/cyclic_dependency.py b/cyclic_dependency.py
index 8bf7d80..a5cca25 100755
--- a/cyclic_dependency.py
+++ b/cyclic_dependency.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python
# Script to do analyze the dependencies in Quickstep particularly cycles in the
# dependency graph. This script can be used to find:
@@ -33,6 +33,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+
import itertools
import networkx as nx
from optparse import OptionParser
@@ -110,18 +114,18 @@ def process_cmakelists_file(cmakelists_filename, qs_module_dirs):
# target mapping, and target to node mapping.
def create_graph(deps_in_cmake):
nodes = set()
- for source, dest_set in deps_in_cmake.iteritems():
+ for source, dest_set in iter(deps_in_cmake.items()):
nodes.add(source)
nodes.update(dest_set)
nodes_list = list(nodes)
nodes_map = {}
- for i, n in zip(xrange(len(nodes_list)), nodes_list):
+ for i, n in zip(range(len(nodes_list)), nodes_list):
nodes_map[n] = i
G = nx.DiGraph()
- for source, dest_set in deps_in_cmake.iteritems():
+ for source, dest_set in iter(deps_in_cmake.items()):
source_node = nodes_map[source]
for dest in dest_set:
if source == dest: continue
@@ -137,17 +141,17 @@ def find_strongly_connected_components(G, nodes_list):
if len(n) > 1:
components += 1
# Only output components bigger than 1.
- print [nodes_list[i] for i in n]
+ print([nodes_list[i] for i in n])
return components
# Lists cycles in the graph truncating to 100 cycles.
def find_cycles(G, nodes_list, truncate):
cycles = 0
for n in nx.simple_cycles(G):
- print [nodes_list[i] for i in n]
+ print([nodes_list[i] for i in n])
cycles += 1
if cycles >= truncate:
- print "Many cycles found. Truncating to {0} cycles.".format(truncate)
+ print("Many cycles found. Truncating to {0} cycles.".format(truncate))
break
return cycles
@@ -156,16 +160,16 @@ def find_path(G, nodes_list, nodes_map, source, target):
source_node = nodes_map[source]
target_node = nodes_map[target]
if nx.has_path(G, source_node, target_node):
- print [nodes_list[i] for i in nx.shortest_path(G,
+ print([nodes_list[i] for i in nx.shortest_path(G,
source_node,
- target_node)]
+ target_node)])
else:
- print 'No path.'
+ print('No path.')
def main():
if not os.getcwd().endswith("quickstep"):
- print ("WARNING: you don't appear to be running in the root quickstep "
- "source directory. Don't blame me if something goes wrong.")
+ print("WARNING: you don't appear to be running in the root quickstep "
+ "source directory. Don't blame me if something goes wrong.")
qs_module_dirs = []
for filename in os.listdir("."):
if (os.path.isdir(filename)
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/d4e714ce/validate_cmakelists.py
----------------------------------------------------------------------
diff --git a/validate_cmakelists.py b/validate_cmakelists.py
index 7dd6fc5..cf25d28 100755
--- a/validate_cmakelists.py
+++ b/validate_cmakelists.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python
"""Script to do basic sanity checking for target_link_libraries() commands in
CMakeLists.txt files.
@@ -31,6 +31,10 @@ TODO List / Known Issues & Limitations:
# See the License for the specific language governing permissions and
# limitations under the License.
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+
import os
import sys
@@ -334,8 +338,8 @@ def process_cmakelists_file(cmakelists_filename, qs_module_dirs):
if "CMAKE_VALIDATE_IGNORE_END" in line:
scan_state = previous_state
elif "CMAKE_VALIDATE_IGNORE_BEGIN" in line:
- print "Nested IGNORE_BEGIN directives found in: "\
- + cmakelists_filename + ", exiting"
+ print("Nested IGNORE_BEGIN directives found in: "
+ + cmakelists_filename + ", exiting")
exit(-1)
else:
continue
@@ -397,25 +401,25 @@ def process_cmakelists_file(cmakelists_filename, qs_module_dirs):
stitched_string = ""
scan_state = CMAKE_SCANNING_NONE
# After scanning, report any missing dependencies.
- for target, include_deps in deps_from_includes.iteritems():
+ for target, include_deps in iter(deps_from_includes.items()):
if target in skipped_targets:
pass
elif len(include_deps) != 0:
if target not in deps_in_cmake:
if not (target in include_deps and len(include_deps) == 1):
validation_failed_targets.add(target)
- print "Missing target_link_libraries() for " + target + ":"
+ print("Missing target_link_libraries() for " + target + ":")
for dep in sorted(include_deps):
- print "\t" + dep
+ print("\t" + dep)
else:
missing_deps = (include_deps
- deps_in_cmake[target]
- IGNORED_DEPENDENCIES)
if len(missing_deps) != 0:
validation_failed_targets.add(target)
- print "Missing target_link_libraries() for " + target + ":"
+ print("Missing target_link_libraries() for " + target + ":")
for dep in sorted(missing_deps):
- print "\t" + dep
+ print("\t" + dep)
elif target == module_targetname:
# Special case hack for module all-in-one library
missing_deps = (frozenset(deps_from_includes.keys())
@@ -427,21 +431,21 @@ def process_cmakelists_file(cmakelists_filename, qs_module_dirs):
true_missing_deps.add(dep)
if len(true_missing_deps) != 0:
validation_failed_targets.add(target)
- print "Missing target_link_libraries() for " + target + ":"
+ print("Missing target_link_libraries() for " + target + ":")
for dep in sorted(true_missing_deps):
- print "\t" + dep
+ print("\t" + dep)
# Also report possibly superfluous extra dependencies.
- for target, cmake_deps in deps_in_cmake.iteritems():
+ for target, cmake_deps in iter(deps_in_cmake.items()):
if (target not in skipped_targets) and (target in deps_from_includes):
extra_deps = cmake_deps - deps_from_includes[target]
if target in extra_deps:
extra_deps.remove(target)
if len(extra_deps) != 0 and target != module_targetname:
validation_failed_targets.add(target)
- print ("Possibly superfluous target_link_libraries() for "
+ print("Possibly superfluous target_link_libraries() for "
+ target + ":")
for dep in sorted(extra_deps):
- print "\t" + dep
+ print("\t" + dep)
return (validation_failed_targets, skipped_targets, generated_targets)
def main(cmakelists_to_process):
@@ -461,8 +465,8 @@ def main(cmakelists_to_process):
missing or superfluous dependencies.
"""
if not os.getcwd().endswith("quickstep"):
- print ("WARNING: you don't appear to be running in the root quickstep "
- "source directory. Don't blame me if something goes wrong.")
+ print("WARNING: you don't appear to be running in the root quickstep "
+ "source directory. Don't blame me if something goes wrong.")
qs_module_dirs = []
for filename in os.listdir("."):
if (os.path.isdir(filename)
@@ -493,17 +497,17 @@ def main(cmakelists_to_process):
global_skipped_targets.update(local_skipped_targets)
global_generated_targets.update(local_generated_targets)
if len(global_skipped_targets) != 0:
- print ("WARNING: The following targets had multiple add_library() "
+ print("WARNING: The following targets had multiple add_library() "
+ "commands and were NOT checked by this script (they should "
+ "be manually checked):")
for target in sorted(global_skipped_targets):
- print "\t" + target
+ print("\t" + target)
if len(global_generated_targets) != 0:
- print ("INFO: The add_library() commands for the following targets "
+ print("INFO: The add_library() commands for the following targets "
+ "appear to reference generated sources, so they were not "
+ "checked):")
for target in sorted(global_generated_targets):
- print "\t" + target
+ print("\t" + target)
return len(global_validation_failed_targets)
if __name__ == "__main__":
[2/2] incubator-quickstep git commit: Removed the redundant query id
in the optimizer.
Posted by zu...@apache.org.
Removed the redundant query id in the optimizer.
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/8cd5a56c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/8cd5a56c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/8cd5a56c
Branch: refs/heads/optimizer-q-id
Commit: 8cd5a56c92f2e0e6c2acb2a979a2ae5fb2e54792
Parents: d4e714c
Author: Zuyu Zhang <zu...@twitter.com>
Authored: Mon Aug 1 23:02:37 2016 -0700
Committer: Zuyu Zhang <zu...@twitter.com>
Committed: Wed Aug 3 11:53:46 2016 -0700
----------------------------------------------------------------------
cli/tests/CommandExecutorTestRunner.cpp | 5 ++---
query_optimizer/CMakeLists.txt | 3 ---
query_optimizer/ExecutionGenerator.cpp | 4 +++-
query_optimizer/Optimizer.hpp | 9 ++-------
query_optimizer/OptimizerContext.hpp | 20 ++------------------
query_optimizer/QueryProcessor.cpp | 10 ++--------
query_optimizer/QueryProcessor.hpp | 7 +++++++
.../tests/ExecutionGeneratorTestRunner.cpp | 5 ++---
query_optimizer/tests/OptimizerTest.cpp | 3 +--
.../tests/OptimizerTextTestRunner.cpp | 3 +--
10 files changed, 22 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/8cd5a56c/cli/tests/CommandExecutorTestRunner.cpp
----------------------------------------------------------------------
diff --git a/cli/tests/CommandExecutorTestRunner.cpp b/cli/tests/CommandExecutorTestRunner.cpp
index bd7082f..dc7e43f 100644
--- a/cli/tests/CommandExecutorTestRunner.cpp
+++ b/cli/tests/CommandExecutorTestRunner.cpp
@@ -76,8 +76,7 @@ void CommandExecutorTestRunner::runTestCase(
while (true) {
ParseResult result = sql_parser_.getNextStatement();
- O::OptimizerContext optimizer_context(0 /* query_id */,
- test_database_loader_.catalog_database(),
+ O::OptimizerContext optimizer_context(test_database_loader_.catalog_database(),
test_database_loader_.storage_manager());
if (result.condition != ParseResult::kSuccess) {
@@ -99,7 +98,7 @@ void CommandExecutorTestRunner::runTestCase(
nullptr,
output_stream.file());
} else {
- QueryHandle query_handle(optimizer_context.query_id());
+ QueryHandle query_handle(0 /* query_id */);
O::LogicalGenerator logical_generator(&optimizer_context);
O::PhysicalGenerator physical_generator;
O::ExecutionGenerator execution_generator(&optimizer_context, &query_handle);
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/8cd5a56c/query_optimizer/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/query_optimizer/CMakeLists.txt b/query_optimizer/CMakeLists.txt
index c55881f..04e54d3 100644
--- a/query_optimizer/CMakeLists.txt
+++ b/query_optimizer/CMakeLists.txt
@@ -185,7 +185,6 @@ target_link_libraries(quickstep_queryoptimizer_Optimizer
quickstep_queryoptimizer_PhysicalGenerator
quickstep_utility_Macros)
target_link_libraries(quickstep_queryoptimizer_OptimizerContext
- quickstep_catalog_CatalogTypedefs
quickstep_queryoptimizer_expressions_ExprId
quickstep_utility_Macros)
target_link_libraries(quickstep_queryoptimizer_OptimizerTree
@@ -219,8 +218,6 @@ target_link_libraries(quickstep_queryoptimizer_QueryPlan
quickstep_utility_Macros)
target_link_libraries(quickstep_queryoptimizer_QueryProcessor
quickstep_catalog_Catalog
- quickstep_catalog_CatalogDatabase
- quickstep_catalog_CatalogRelation
quickstep_catalog_Catalog_proto
quickstep_parser_ParseStatement
quickstep_queryoptimizer_Optimizer
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/8cd5a56c/query_optimizer/ExecutionGenerator.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/ExecutionGenerator.cpp b/query_optimizer/ExecutionGenerator.cpp
index fb24489..2ae6a4b 100644
--- a/query_optimizer/ExecutionGenerator.cpp
+++ b/query_optimizer/ExecutionGenerator.cpp
@@ -26,6 +26,8 @@
#include <type_traits>
#include <unordered_map>
+#include "query_optimizer/QueryOptimizerConfig.h" // For QUICKSTEP_DISTRIBUTED.
+
#ifdef QUICKSTEP_DISTRIBUTED
#include <unordered_set>
#endif
@@ -299,7 +301,7 @@ void ExecutionGenerator::generatePlanInternal(
std::string ExecutionGenerator::getNewRelationName() {
std::ostringstream out;
out << OptimizerContext::kInternalTemporaryRelationNamePrefix
- << optimizer_context_->query_id() << "_" << rel_id_;
+ << query_handle_->query_id() << "_" << rel_id_;
++rel_id_;
return out.str();
}
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/8cd5a56c/query_optimizer/Optimizer.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/Optimizer.hpp b/query_optimizer/Optimizer.hpp
index 9177414..18c927d 100644
--- a/query_optimizer/Optimizer.hpp
+++ b/query_optimizer/Optimizer.hpp
@@ -18,8 +18,6 @@
#ifndef QUICKSTEP_QUERY_OPTIMIZER_OPTIMIZER_HPP_
#define QUICKSTEP_QUERY_OPTIMIZER_OPTIMIZER_HPP_
-#include <cstddef>
-
#include "query_optimizer/OptimizerContext.hpp"
#include "utility/Macros.hpp"
@@ -45,15 +43,12 @@ class Optimizer {
/**
* @brief Constructor.
*
- * @param query_id The query id. Used to identify a query and create distinct
- * names for temporary relations.
* @param database The database that the query is executed on.
* @param storage_manager The storage manager for the database.
*/
- Optimizer(const std::size_t query_id,
- CatalogDatabase *database,
+ Optimizer(CatalogDatabase *database,
StorageManager *storage_manager)
- : optimizer_context_(query_id, database, storage_manager) {}
+ : optimizer_context_(database, storage_manager) {}
/**
* @brief Destructor.
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/8cd5a56c/query_optimizer/OptimizerContext.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/OptimizerContext.hpp b/query_optimizer/OptimizerContext.hpp
index abdc7f4..bcab9d0 100644
--- a/query_optimizer/OptimizerContext.hpp
+++ b/query_optimizer/OptimizerContext.hpp
@@ -18,18 +18,12 @@
#ifndef QUICKSTEP_QUERY_OPTIMIZER_OPTIMIZER_CONTEXT_HPP_
#define QUICKSTEP_QUERY_OPTIMIZER_OPTIMIZER_CONTEXT_HPP_
-#include <cstddef>
-#include <cstdlib>
-#include <string>
-
-#include "catalog/CatalogTypedefs.hpp"
#include "query_optimizer/expressions/ExprId.hpp"
#include "utility/Macros.hpp"
namespace quickstep {
class CatalogDatabase;
-class CatalogRelation;
class StorageManager;
namespace optimizer {
@@ -49,16 +43,13 @@ class OptimizerContext {
/**
* @brief Constructor.
*
- * @param query_id The query ID.
* @param catalog_database The catalog database where this query is executed.
* @param storage_manager The storage manager to use for allocating storage
* blocks.
*/
- OptimizerContext(const std::size_t query_id,
- CatalogDatabase *catalog_database,
+ OptimizerContext(CatalogDatabase *catalog_database,
StorageManager *storage_manager)
- : query_id_(query_id),
- current_expr_id_(-1),
+ : current_expr_id_(-1),
catalog_database_(catalog_database),
storage_manager_(storage_manager),
has_nested_queries_(false),
@@ -94,11 +85,6 @@ class OptimizerContext {
StorageManager* storage_manager() { return storage_manager_; }
/**
- * @return Query ID.
- */
- std::size_t query_id() const { return query_id_; }
-
- /**
* @brief Gets the next ExprId.
*
* @return A new ExprId.
@@ -133,8 +119,6 @@ class OptimizerContext {
bool is_catalog_changed() const { return is_catalog_changed_; }
private:
- const std::size_t query_id_;
-
expressions::ExprId current_expr_id_;
CatalogDatabase *catalog_database_;
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/8cd5a56c/query_optimizer/QueryProcessor.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/QueryProcessor.cpp b/query_optimizer/QueryProcessor.cpp
index 6381d3a..8af4408 100644
--- a/query_optimizer/QueryProcessor.cpp
+++ b/query_optimizer/QueryProcessor.cpp
@@ -17,20 +17,15 @@
#include "query_optimizer/QueryProcessor.hpp"
-#include <cstdint>
-#include <cstdlib>
#include <fstream>
#include <memory>
#include <string>
#include "catalog/Catalog.hpp"
#include "catalog/Catalog.pb.h"
-#include "catalog/CatalogDatabase.hpp"
-#include "catalog/CatalogRelation.hpp"
#include "parser/ParseStatement.hpp"
#include "query_optimizer/Optimizer.hpp"
#include "query_optimizer/QueryHandle.hpp"
-#include "storage/StorageManager.hpp"
using std::ifstream;
using std::ofstream;
@@ -41,10 +36,9 @@ QueryHandle* QueryProcessor::generateQueryHandle(const ParseStatement &statement
std::unique_ptr<QueryHandle> query_handle(
new QueryHandle(query_id_, statement.getPriority()));
- optimizer::Optimizer optimizer(query_id_, getDefaultDatabase(), storage_manager_.get());
- optimizer.generateQueryHandle(statement, query_handle.get());
+ optimizer_->generateQueryHandle(statement, query_handle.get());
- if (optimizer.isCatalogChanged() && !catalog_altered_) {
+ if (optimizer_->isCatalogChanged() && !catalog_altered_) {
catalog_altered_ = true;
}
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/8cd5a56c/query_optimizer/QueryProcessor.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/QueryProcessor.hpp b/query_optimizer/QueryProcessor.hpp
index 32739dc..f3844a0 100644
--- a/query_optimizer/QueryProcessor.hpp
+++ b/query_optimizer/QueryProcessor.hpp
@@ -26,6 +26,7 @@
#include <string>
#include "catalog/Catalog.hpp"
+#include "query_optimizer/Optimizer.hpp"
#include "storage/StorageManager.hpp"
#include "utility/Macros.hpp"
@@ -139,6 +140,9 @@ class QueryProcessor {
query_id_(0) {
loadCatalog();
storage_manager_.reset(new StorageManager(storage_path));
+
+ // Construct after Catalog loads and StorageManager initializes.
+ optimizer_.reset(new optimizer::Optimizer(getDefaultDatabase(), storage_manager_.get()));
}
/**
@@ -190,6 +194,9 @@ class QueryProcessor {
std::unique_ptr<Catalog> catalog_;
std::unique_ptr<StorageManager> storage_manager_;
+
+ std::unique_ptr<optimizer::Optimizer> optimizer_;
+
bool catalog_altered_;
std::size_t query_id_;
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/8cd5a56c/query_optimizer/tests/ExecutionGeneratorTestRunner.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/tests/ExecutionGeneratorTestRunner.cpp b/query_optimizer/tests/ExecutionGeneratorTestRunner.cpp
index 563a777..fd1bb86 100644
--- a/query_optimizer/tests/ExecutionGeneratorTestRunner.cpp
+++ b/query_optimizer/tests/ExecutionGeneratorTestRunner.cpp
@@ -73,8 +73,7 @@ void ExecutionGeneratorTestRunner::runTestCase(
while (true) {
ParseResult result = sql_parser_.getNextStatement();
- OptimizerContext optimizer_context(0 /* query_id */,
- test_database_loader_.catalog_database(),
+ OptimizerContext optimizer_context(test_database_loader_.catalog_database(),
test_database_loader_.storage_manager());
if (result.condition != ParseResult::kSuccess) {
@@ -85,7 +84,7 @@ void ExecutionGeneratorTestRunner::runTestCase(
} else {
std::printf("%s\n", result.parsed_statement->toString().c_str());
try {
- QueryHandle query_handle(optimizer_context.query_id());
+ QueryHandle query_handle(0 /* query_id */);
LogicalGenerator logical_generator(&optimizer_context);
PhysicalGenerator physical_generator;
ExecutionGenerator execution_generator(&optimizer_context,
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/8cd5a56c/query_optimizer/tests/OptimizerTest.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/tests/OptimizerTest.cpp b/query_optimizer/tests/OptimizerTest.cpp
index 3734719..57e2d67 100644
--- a/query_optimizer/tests/OptimizerTest.cpp
+++ b/query_optimizer/tests/OptimizerTest.cpp
@@ -59,8 +59,7 @@ OptimizerTest::OptimizerTest()
: catalog_(new Catalog),
catalog_database_(
new CatalogDatabase(catalog_.get(), "TestDatabase" /* name */, 0)),
- optimizer_context_(new OptimizerContext(0 /* query_id */,
- catalog_database_.get(),
+ optimizer_context_(new OptimizerContext(catalog_database_.get(),
nullptr /* storage_manager */)),
physical_generator_(new PhysicalGenerator()) {}
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/8cd5a56c/query_optimizer/tests/OptimizerTextTestRunner.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/tests/OptimizerTextTestRunner.cpp b/query_optimizer/tests/OptimizerTextTestRunner.cpp
index 251b64b..d790c33 100644
--- a/query_optimizer/tests/OptimizerTextTestRunner.cpp
+++ b/query_optimizer/tests/OptimizerTextTestRunner.cpp
@@ -47,8 +47,7 @@ void OptimizerTextTestRunner::runTestCase(const std::string &input,
sql_parser_.feedNextBuffer(new std::string(input));
ParseResult result = sql_parser_.getNextStatement();
- OptimizerContext optimizer_context(0 /* query_id */,
- test_database_loader_.catalog_database(),
+ OptimizerContext optimizer_context(test_database_loader_.catalog_database(),
nullptr /* storage_manager */);
if (result.condition != ParseResult::kSuccess) {
*output = result.error_message;