You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by ji...@apache.org on 2017/09/18 19:33:09 UTC
[5/6] incubator-quickstep git commit: Update analyze command
Update analyze command
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/01dc5322
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/01dc5322
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/01dc5322
Branch: refs/heads/trace
Commit: 01dc5322acfe97f71e5c7e0b5bc9443c7a51cb91
Parents: 4f4e71f
Author: Jianqiao Zhu <ji...@cs.wisc.edu>
Authored: Tue Sep 12 14:29:52 2017 -0500
Committer: jianqiao <ji...@node-2.jianqiao.quickstep-pg0.wisc.cloudlab.us>
Committed: Mon Sep 18 14:32:45 2017 -0500
----------------------------------------------------------------------
cli/CommandExecutor.cpp | 99 --------------------------------------------
1 file changed, 99 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/01dc5322/cli/CommandExecutor.cpp
----------------------------------------------------------------------
diff --git a/cli/CommandExecutor.cpp b/cli/CommandExecutor.cpp
index 595c41b..fb0dd4c 100644
--- a/cli/CommandExecutor.cpp
+++ b/cli/CommandExecutor.cpp
@@ -370,105 +370,6 @@ void ExecuteAnalyzeRange(const PtrVector<ParseString> &arguments,
query_processor->saveCatalog();
}
-void ExecuteAnalyzeRange(const PtrVector<ParseString> &arguments,
- const tmb::client_id main_thread_client_id,
- const tmb::client_id foreman_client_id,
- MessageBus *bus,
- StorageManager *storage_manager,
- QueryProcessor *query_processor,
- FILE *out) {
- const CatalogDatabase &database = *query_processor->getDefaultDatabase();
-
- std::unique_ptr<SqlParserWrapper> parser_wrapper(new SqlParserWrapper());
- std::vector<std::reference_wrapper<const CatalogRelation>> relations;
- if (arguments.empty()) {
- relations.insert(relations.begin(), database.begin(), database.end());
- } else {
- for (const auto &rel_name : arguments) {
- const CatalogRelation *rel = database.getRelationByName(rel_name.value());
- if (rel == nullptr) {
- THROW_SQL_ERROR_AT(&rel_name) << "Table does not exist";
- } else {
- relations.emplace_back(*rel);
- }
- }
- }
-
- // Analyze each relation in the database.
- for (const CatalogRelation &relation : relations) {
- fprintf(out, "Analyzing %s ... ", relation.getName().c_str());
- fflush(out);
-
- CatalogRelation *mutable_relation =
- query_processor->getDefaultDatabase()->getRelationByIdMutable(relation.getID());
- CatalogRelationStatistics *mutable_stat =
- mutable_relation->getStatisticsMutable();
-
- if (!mutable_stat->isExact()) {
- mutable_stat->clear();
-
- const std::string rel_name = EscapeQuotes(relation.getName(), '"');
-
- for (const CatalogAttribute &attribute : relation) {
- const std::string attr_name = EscapeQuotes(attribute.getName(), '"');
- const Type &attr_type = attribute.getType();
- bool is_min_applicable =
- AggregateFunctionMin::Instance().canApplyToTypes({&attr_type});
- bool is_max_applicable =
- AggregateFunctionMax::Instance().canApplyToTypes({&attr_type});
- if (!is_min_applicable || !is_max_applicable) {
- continue;
- }
-
- std::string query_string = "SELECT MIN(\"";
- query_string.append(attr_name);
- query_string.append("\"), MAX(\"");
- query_string.append(attr_name);
- query_string.append("\") FROM \"");
- query_string.append(rel_name);
- query_string.append("\";");
-
- std::vector<TypedValue> results =
- ExecuteQueryForSingleRow(main_thread_client_id,
- foreman_client_id,
- query_string,
- bus,
- storage_manager,
- query_processor,
- parser_wrapper.get());
- DCHECK_EQ(2u, results.size());
-
- const attribute_id attr_id = attribute.getID();
- mutable_stat->setMinValue(attr_id, results[0]);
- mutable_stat->setMaxValue(attr_id, results[1]);
- }
-
- // Get the number of tuples for the relation.
- std::string query_string = "SELECT COUNT(*) FROM \"";
- query_string.append(rel_name);
- query_string.append("\";");
-
- TypedValue num_tuples =
- ExecuteQueryForSingleResult(main_thread_client_id,
- foreman_client_id,
- query_string,
- bus,
- storage_manager,
- query_processor,
- parser_wrapper.get());
-
- DCHECK_EQ(TypeID::kLong, num_tuples.getTypeID());
- mutable_stat->setNumTuples(num_tuples.getLiteral<std::int64_t>());
-
- mutable_stat->setExactness(true);
- }
- fprintf(out, "done\n");
- fflush(out);
- }
- query_processor->markCatalogAltered();
- query_processor->saveCatalog();
-}
-
} // namespace
void executeCommand(const ParseStatement &statement,