Commit e310d84f authored by Paul Asmuth's avatar Paul Asmuth
Browse files

merge crate backend WIP

parent 2e89f300
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -61,6 +61,8 @@ set(FNORDMETRIC_SOURCES
    ../src/fnordmetric/sql/backends/mysql/mysqltableref.cc
    ../src/fnordmetric/sql/backends/metricservice/metrictableref.cc
    ../src/fnordmetric/sql/backends/metricservice/metrictablerepository.cc
    ../src/fnordmetric/sql/backends/crate/cratebackend.cc
    ../src/fnordmetric/sql/backends/crate/cratetableref.cc
    ../src/fnordmetric/sql/expressions/aggregate.cc
    ../src/fnordmetric/sql/expressions/boolean.cc
    ../src/fnordmetric/sql/expressions/datetime.cc
+1 −1
Original line number Diff line number Diff line
#cmakedefine FNORD_ENABLE_MYSQL
#cmakedefine FNORD_ENABLE_CRATE
#cmakedefine FNORD_ENABLE_CRATXE
+6 −3
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@
#include <fnord-json/jsonrpc.h>
#include <fnord-metricdb/metricservice.h>
#include <fnord-metricdb/httpapiservlet.h>
#include <fnord-metricdb/httpapiservlet.h>
#include <fnord-metricdb/backends/crate/metricrepository.h>
#include "adminui.h"
#include "environment.h"
#include "chartsql/queryendpoint.h"
@@ -80,12 +82,13 @@ static MetricService makeMetricService(
           "the --crate_host flag must be set when using the crate backend");
     }

    auto host = env()->flags()->getString("host");
    auto crate_host = env()->flags()->getString("crate_host");
    fnord::logInfo(
        "fnordmetric",
        "Opening crate backend at $0", host);
        "Opening crate backend at $0", crate_host);

    return new crate_backend::MetricRepository(host);
    return MetricService::newWithBackend(
        new fnord::metric_service::crate_backend::MetricRepository(crate_host));
  }

  RAISEF(kUsageError, "unknown backend type: $0", backend_type);
+2 −2
Original line number Diff line number Diff line
@@ -7,12 +7,12 @@
 * copy of the GNU General Public License along with this program. If not, see
 * <http://www.gnu.org/licenses/>.
 */

#include <fnordmetric/environment.h>
#include <fnordmetric/sql/backends/crate/cratebackend.h>
#include <fnordmetric/sql/backends/crate/cratetableref.h>
#include <fnordmetric/sql/runtime/tablescan.h>
#include <iostream>

namespace fnordmetric {
namespace query {
namespace crate_backend {
@@ -24,7 +24,7 @@ CrateBackend* CrateBackend::singleton() {

bool CrateBackend::openTables(
    const std::vector<std::string>& table_names,
    const util::URI& source_uri,
    const fnord::URI& source_uri,
    std::vector<std::unique_ptr<TableRef>>* target) {
    CrateConnection conn = CrateConnection(source_uri);
    for (const auto& tbl : table_names) {
+4 −2
Original line number Diff line number Diff line
@@ -9,12 +9,14 @@
 */
#ifndef _FNORDMETRIC_CRATEBACKEND_H
#define _FNORDMETRIC_CRATEBACKEND_H
#include <fnord-metricdb/backends/crate/crateconnection.h>
#include <fnordmetric/sql/backends/backend.h>
#include <fnordmetric/sql/backends/crate/crateconnection.h>

#include <mutex>
#include <vector>

using fnord::metric_service::crate_backend::CrateConnection;

namespace fnordmetric {
namespace query {
namespace crate_backend {
@@ -26,7 +28,7 @@ public:

  bool openTables(
      const std::vector<std::string>& table_names,
      const util::URI& source_uri,
      const fnord::URI& source_uri,
      std::vector<std::unique_ptr<TableRef>>* target) override;

protected:
Loading