blob: b3f24aa450afdc03ed8b24d4c28061ad6908fc4a [file] [log] [blame]
/*
* 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.
*/
#include <fstream>
#include "gpfdist.h"
using std::string;
namespace hawq {
namespace test {
void GPfdist::init_gpfdist() {
auto sql =
"CREATE EXTERNAL WEB TABLE gpfdist_status (x text) "
"execute E'( python %s/bin/lib/gppinggpfdist.py localhost:7070 2>&1 || echo) ' "
"on SEGMENT 0 "
"FORMAT 'text' (delimiter '|');";
auto GPHOME = getenv("GPHOME");
util->execute(hawq::test::stringFormat(sql, GPHOME));
sql =
"CREATE EXTERNAL WEB TABLE gpfdist_start (x text) "
"execute E'((%s/bin/gpfdist -p 7070 -d %s </dev/null >/dev/null 2>&1 &); sleep 2; echo \"starting\"...) ' "
"on SEGMENT 0 "
"FORMAT 'text' (delimiter '|');";
std::string path = util->getTestRootPath() + "/ExternalSource/data";
util->execute(hawq::test::stringFormat(sql, GPHOME, path.c_str()));
util->execute(
"CREATE EXTERNAL WEB TABLE gpfdist_stop (x text) "
"execute E'(pkill gpfdist || killall gpfdist) > /dev/null 2>&1; echo stopping...' "
"on SEGMENT 0 "
"FORMAT 'text' (delimiter '|');");
util->execute("select * from gpfdist_stop;");
util->execute("select * from gpfdist_status;");
util->execute("select * from gpfdist_start;");
util->execute("select * from gpfdist_status;");
}
void GPfdist::finalize_gpfdist() {
util->execute("select * from gpfdist_stop;");
util->execute("select * from gpfdist_status;");
util->execute("drop external table gpfdist_status;");
util->execute("drop external table gpfdist_start;");
util->execute("drop external table gpfdist_stop;");
}
} // namespace test
} // namespace hawq