mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-18 12:22:12 +00:00
Add .cmake
This commit is contained in:
parent
b7f3d16c5f
commit
1bf9a9f29f
@ -536,6 +536,7 @@ include (cmake/find/rapidjson.cmake)
|
|||||||
include (cmake/find/fastops.cmake)
|
include (cmake/find/fastops.cmake)
|
||||||
include (cmake/find/odbc.cmake)
|
include (cmake/find/odbc.cmake)
|
||||||
include (cmake/find/nanodbc.cmake)
|
include (cmake/find/nanodbc.cmake)
|
||||||
|
include (cmake/find/sqlite.cmake)
|
||||||
include (cmake/find/rocksdb.cmake)
|
include (cmake/find/rocksdb.cmake)
|
||||||
include (cmake/find/libpqxx.cmake)
|
include (cmake/find/libpqxx.cmake)
|
||||||
include (cmake/find/nuraft.cmake)
|
include (cmake/find/nuraft.cmake)
|
||||||
|
16
cmake/find/sqlite.cmake
Normal file
16
cmake/find/sqlite.cmake
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
option(ENABLE_SQLITE "Enalbe sqlite" ${ENABLE_LIBRARIES})
|
||||||
|
|
||||||
|
if (NOT ENABLE_SQLITE)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/sqlite-amalgamation/sqlite3.c")
|
||||||
|
message (WARNING "submodule contrib/sqlite3-amalgamation is missing. to fix try run: \n git submodule update --init --recursive")
|
||||||
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal sqlite library")
|
||||||
|
set (USE_SQLITE 0)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set (USE_SQLITE 1)
|
||||||
|
set (SQLITE_LIBRARY sqlite)
|
||||||
|
message (STATUS "Using sqlite=${USE_SQLITE}")
|
3
contrib/CMakeLists.txt
vendored
3
contrib/CMakeLists.txt
vendored
@ -329,6 +329,7 @@ endif()
|
|||||||
|
|
||||||
add_subdirectory(fast_float)
|
add_subdirectory(fast_float)
|
||||||
|
|
||||||
|
if (USE_SQLITE)
|
||||||
add_subdirectory(sqlite-cmake)
|
add_subdirectory(sqlite-cmake)
|
||||||
include_directories(sqlite-cmake)
|
endif()
|
||||||
|
|
||||||
|
@ -2,5 +2,5 @@ set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/sqlite-amalgamation")
|
|||||||
|
|
||||||
set(SRCS ${LIBRARY_DIR}/sqlite3.c)
|
set(SRCS ${LIBRARY_DIR}/sqlite3.c)
|
||||||
|
|
||||||
add_library(sqlite STATIC ${SRCS})
|
add_library(sqlite ${SRCS})
|
||||||
target_include_directories(sqlite SYSTEM PUBLIC "${LIBRARY_DIR}")
|
target_include_directories(sqlite SYSTEM PUBLIC "${LIBRARY_DIR}")
|
||||||
|
@ -13,5 +13,6 @@
|
|||||||
#cmakedefine01 USE_LDAP
|
#cmakedefine01 USE_LDAP
|
||||||
#cmakedefine01 USE_ROCKSDB
|
#cmakedefine01 USE_ROCKSDB
|
||||||
#cmakedefine01 USE_LIBPQXX
|
#cmakedefine01 USE_LIBPQXX
|
||||||
|
#cmakedefine01 USE_SQLITE
|
||||||
#cmakedefine01 USE_NURAFT
|
#cmakedefine01 USE_NURAFT
|
||||||
#cmakedefine01 USE_KRB5
|
#cmakedefine01 USE_KRB5
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#include "SQLiteBlockInputStream.h"
|
#include "SQLiteBlockInputStream.h"
|
||||||
|
|
||||||
|
#if USE_SQLITE
|
||||||
|
|
||||||
#include <Columns/ColumnArray.h>
|
#include <Columns/ColumnArray.h>
|
||||||
#include <Columns/ColumnDecimal.h>
|
#include <Columns/ColumnDecimal.h>
|
||||||
#include <Columns/ColumnNullable.h>
|
#include <Columns/ColumnNullable.h>
|
||||||
@ -128,3 +130,5 @@ void SQLiteBlockInputStream::insertValue(
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#if !defined(ARCADIA_BUILD)
|
||||||
|
#include "config_core.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if USE_SQLITE
|
||||||
|
|
||||||
#include <sqlite3.h>
|
#include <sqlite3.h>
|
||||||
|
|
||||||
#include <Core/ExternalResultDescription.h>
|
#include <Core/ExternalResultDescription.h>
|
||||||
@ -41,3 +47,5 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -6,7 +6,6 @@
|
|||||||
#include <Databases/DatabaseMemory.h>
|
#include <Databases/DatabaseMemory.h>
|
||||||
#include <Databases/DatabaseOrdinary.h>
|
#include <Databases/DatabaseOrdinary.h>
|
||||||
#include <Databases/DatabaseReplicated.h>
|
#include <Databases/DatabaseReplicated.h>
|
||||||
#include <Databases/SQLite/DatabaseSQLite.h>
|
|
||||||
#include <Interpreters/Context.h>
|
#include <Interpreters/Context.h>
|
||||||
#include <Parsers/ASTCreateQuery.h>
|
#include <Parsers/ASTCreateQuery.h>
|
||||||
#include <Parsers/ASTFunction.h>
|
#include <Parsers/ASTFunction.h>
|
||||||
@ -43,6 +42,10 @@
|
|||||||
#include <Storages/PostgreSQL/MaterializedPostgreSQLSettings.h>
|
#include <Storages/PostgreSQL/MaterializedPostgreSQLSettings.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if USE_SQLITE
|
||||||
|
#include <Databases/SQLite/DatabaseSQLite.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace fs = std::filesystem;
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
namespace DB
|
namespace DB
|
||||||
@ -225,20 +228,6 @@ DatabasePtr DatabaseFactory::getImpl(const ASTCreateQuery & create, const String
|
|||||||
std::move(database_replicated_settings), context);
|
std::move(database_replicated_settings), context);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (engine_name == "SQLite")
|
|
||||||
{
|
|
||||||
const ASTFunction * engine = engine_define->engine;
|
|
||||||
|
|
||||||
if (!engine->arguments || engine->arguments->children.size() != 1)
|
|
||||||
throw Exception("SQLite database requires 1 argument: database path", ErrorCodes::BAD_ARGUMENTS);
|
|
||||||
|
|
||||||
const auto & arguments = engine->arguments->children;
|
|
||||||
|
|
||||||
String database_path = safeGetLiteralValue<String>(arguments[0], "SQLite");
|
|
||||||
|
|
||||||
return std::make_shared<DatabaseSQLite>(context, engine_define, database_path);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if USE_LIBPQXX
|
#if USE_LIBPQXX
|
||||||
|
|
||||||
else if (engine_name == "PostgreSQL")
|
else if (engine_name == "PostgreSQL")
|
||||||
@ -316,6 +305,22 @@ DatabasePtr DatabaseFactory::getImpl(const ASTCreateQuery & create, const String
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if USE_SQLITE
|
||||||
|
else if (engine_name == "SQLite")
|
||||||
|
{
|
||||||
|
const ASTFunction * engine = engine_define->engine;
|
||||||
|
|
||||||
|
if (!engine->arguments || engine->arguments->children.size() != 1)
|
||||||
|
throw Exception("SQLite database requires 1 argument: database path", ErrorCodes::BAD_ARGUMENTS);
|
||||||
|
|
||||||
|
const auto & arguments = engine->arguments->children;
|
||||||
|
|
||||||
|
String database_path = safeGetLiteralValue<String>(arguments[0], "SQLite");
|
||||||
|
|
||||||
|
return std::make_shared<DatabaseSQLite>(context, engine_define, database_path);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
throw Exception("Unknown database engine: " + engine_name, ErrorCodes::UNKNOWN_DATABASE_ENGINE);
|
throw Exception("Unknown database engine: " + engine_name, ErrorCodes::UNKNOWN_DATABASE_ENGINE);
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#include "DatabaseSQLite.h"
|
#include "DatabaseSQLite.h"
|
||||||
|
|
||||||
|
#if USE_SQLITE
|
||||||
|
|
||||||
#include <DataTypes/DataTypesNumber.h>
|
#include <DataTypes/DataTypesNumber.h>
|
||||||
#include <Databases/SQLite/fetchSQLiteTableStructure.h>
|
#include <Databases/SQLite/fetchSQLiteTableStructure.h>
|
||||||
#include <Interpreters/Context.h>
|
#include <Interpreters/Context.h>
|
||||||
@ -149,3 +151,5 @@ void DatabaseSQLite::shutdown()
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#if !defined(ARCADIA_BUILD)
|
||||||
|
#include "config_core.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if USE_SQLITE
|
||||||
#include <sqlite3.h>
|
#include <sqlite3.h>
|
||||||
|
|
||||||
#include <Databases/DatabasesCommon.h>
|
#include <Databases/DatabasesCommon.h>
|
||||||
@ -38,3 +43,5 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#include <Databases/SQLite/fetchSQLiteTableStructure.h>
|
#include <Databases/SQLite/fetchSQLiteTableStructure.h>
|
||||||
|
|
||||||
|
#if USE_SQLITE
|
||||||
|
|
||||||
#include <Common/quoteString.h>
|
#include <Common/quoteString.h>
|
||||||
#include <DataTypes/DataTypeArray.h>
|
#include <DataTypes/DataTypeArray.h>
|
||||||
#include <DataTypes/DataTypeDate.h>
|
#include <DataTypes/DataTypeDate.h>
|
||||||
@ -86,3 +88,5 @@ std::shared_ptr<NamesAndTypesList> fetchSQLiteTableStructure(sqlite3 * connectio
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#if !defined(ARCADIA_BUILD)
|
||||||
|
#include "config_core.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if USE_SQLITE
|
||||||
#include <sqlite3.h>
|
#include <sqlite3.h>
|
||||||
|
|
||||||
#include <Storages/StorageSQLite.h>
|
#include <Storages/StorageSQLite.h>
|
||||||
@ -9,3 +14,5 @@ namespace DB
|
|||||||
std::shared_ptr<NamesAndTypesList> fetchSQLiteTableStructure(sqlite3 * connection, const String & sqlite_table_name /* , bool use_nulls */);
|
std::shared_ptr<NamesAndTypesList> fetchSQLiteTableStructure(sqlite3 * connection, const String & sqlite_table_name /* , bool use_nulls */);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include "StorageSQLite.h"
|
#include "StorageSQLite.h"
|
||||||
|
|
||||||
|
#if USE_SQLITE
|
||||||
#include <DataStreams/SQLiteBlockInputStream.h>
|
#include <DataStreams/SQLiteBlockInputStream.h>
|
||||||
#include <DataTypes/DataTypeString.h>
|
#include <DataTypes/DataTypeString.h>
|
||||||
#include <Interpreters/Context.h>
|
#include <Interpreters/Context.h>
|
||||||
@ -38,6 +39,8 @@ StorageSQLite::StorageSQLite(
|
|||||||
storage_metadata.setConstraints(constraints_);
|
storage_metadata.setConstraints(constraints_);
|
||||||
setInMemoryMetadata(storage_metadata);
|
setInMemoryMetadata(storage_metadata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Pipe StorageSQLite::read(
|
Pipe StorageSQLite::read(
|
||||||
const Names & column_names,
|
const Names & column_names,
|
||||||
const StorageMetadataPtr & metadata_snapshot,
|
const StorageMetadataPtr & metadata_snapshot,
|
||||||
@ -68,6 +71,7 @@ Pipe StorageSQLite::read(
|
|||||||
std::make_shared<SourceFromInputStream>(std::make_shared<SQLiteBlockInputStream>(db_ptr, query, sample_block, max_block_size)));
|
std::make_shared<SourceFromInputStream>(std::make_shared<SQLiteBlockInputStream>(db_ptr, query, sample_block, max_block_size)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class SQLiteBlockOutputStream : public IBlockOutputStream
|
class SQLiteBlockOutputStream : public IBlockOutputStream
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -131,6 +135,7 @@ private:
|
|||||||
std::string remote_table_name;
|
std::string remote_table_name;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
BlockOutputStreamPtr StorageSQLite::write(const ASTPtr & /* query */, const StorageMetadataPtr & metadata_snapshot, ContextPtr)
|
BlockOutputStreamPtr StorageSQLite::write(const ASTPtr & /* query */, const StorageMetadataPtr & metadata_snapshot, ContextPtr)
|
||||||
{
|
{
|
||||||
return std::make_shared<SQLiteBlockOutputStream>(*this, metadata_snapshot, db_ptr, remote_table_name);
|
return std::make_shared<SQLiteBlockOutputStream>(*this, metadata_snapshot, db_ptr, remote_table_name);
|
||||||
@ -174,3 +179,5 @@ void registerStorageSQLite(StorageFactory & factory)
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#if !defined(ARCADIA_BUILD)
|
||||||
|
#include "config_core.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if USE_SQLITE
|
||||||
#include <sqlite3.h>
|
#include <sqlite3.h>
|
||||||
|
|
||||||
#include <Storages/IStorage.h>
|
#include <Storages/IStorage.h>
|
||||||
@ -42,3 +47,5 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -68,6 +68,10 @@ void registerStorageMaterializedPostgreSQL(StorageFactory & factory);
|
|||||||
void registerStorageExternalDistributed(StorageFactory & factory);
|
void registerStorageExternalDistributed(StorageFactory & factory);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if USE_SQLITE
|
||||||
|
registerStorageSQLite(factory);
|
||||||
|
#endif
|
||||||
|
|
||||||
void registerStorages()
|
void registerStorages()
|
||||||
{
|
{
|
||||||
auto & factory = StorageFactory::instance();
|
auto & factory = StorageFactory::instance();
|
||||||
@ -90,7 +94,6 @@ void registerStorages()
|
|||||||
registerStorageMaterializedView(factory);
|
registerStorageMaterializedView(factory);
|
||||||
registerStorageLiveView(factory);
|
registerStorageLiveView(factory);
|
||||||
registerStorageGenerateRandom(factory);
|
registerStorageGenerateRandom(factory);
|
||||||
registerStorageSQLite(factory);
|
|
||||||
|
|
||||||
#if USE_AWS_S3
|
#if USE_AWS_S3
|
||||||
registerStorageS3(factory);
|
registerStorageS3(factory);
|
||||||
|
Loading…
Reference in New Issue
Block a user