/* This file is part of VoltDB.
* Copyright (C) 2008-2017 VoltDB Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with VoltDB. If not, see <http://www.gnu.org/licenses/>.
*/
package org.voltdb;
/**
* Specifies whether the system should be run on the native C++
* backend for VoltDB, or if the system should use a JDBC
* wrapper around HSQLDB or PostgreSQL.
*
* HSQLDB is pure java, making the system very portable, and it
* supports a wide range of SQL. On the other hand, it's not as
* fast and only supports a single partition. It's best used
* for testing.
*
* The PostgreSQL option simply calls a PostgreSQL database via JDBC;
* the PostGIS option is similar, but uses the PostGIS extension to PostgreSQL.
* Again, this is used only for testing, specifically, in the SQLCoverage
* tests, where VoltDB results are compared with PostgreSQL results.
*/
public enum BackendTarget {
NATIVE_EE_JNI("jni", false),
NATIVE_EE_SPY_JNI("jni_spy", false),
NATIVE_EE_IPC("ipc", true),
NATIVE_EE_VALGRIND_IPC("valgrind_ipc", true),
HSQLDB_BACKEND("hsqldb", false),
POSTGRESQL_BACKEND("postgresql", false),
POSTGIS_BACKEND("postgis", false),
NONE("none", false);
private BackendTarget(String display, boolean isIPC) { this.display = display; this.isIPC = isIPC; }
public final String display;
public final boolean isIPC;
}