Skip to content

Commit

Permalink
Fix minor issues (#3423)
Browse files Browse the repository at this point in the history
  • Loading branch information
acquamarin committed May 1, 2024
1 parent 64ce7aa commit 7b22167
Show file tree
Hide file tree
Showing 20 changed files with 126 additions and 172 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ add_subdirectory(third_party)
if(${BUILD_KUZU})
add_definitions(-DKUZU_ROOT_DIRECTORY="${PROJECT_SOURCE_DIR}")
add_definitions(-DKUZU_CMAKE_VERSION="${CMAKE_PROJECT_VERSION}")
add_definitions(-DKUZU_EXTENSION_VERSION="0.2.9")
add_definitions(-DKUZU_EXTENSION_VERSION="0.3.0")

include_directories(src/include)

Expand Down
16 changes: 8 additions & 8 deletions extension/duckdb/src/duckdb_functions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,32 @@ using namespace kuzu::common;
namespace kuzu {
namespace duckdb_extension {

static offset_t DuckDBClearCacheTableFunc(TableFuncInput& input, TableFuncOutput& output) {
static offset_t clearCacheTableFunc(TableFuncInput& input, TableFuncOutput& output) {
auto& dataChunk = output.dataChunk;
auto sharedState = input.sharedState->ptrCast<CallFuncSharedState>();
auto morsel = sharedState->getMorsel();
if (!morsel.hasMoreToOutput()) {
return 0;
}
auto bindData = input.bindData->constPtrCast<DuckDBClearCacheBindData>();
bindData->databaseManager->invalidateCache(DuckDBStorageExtension::dbType);
auto bindData = input.bindData->constPtrCast<ClearCacheBindData>();
bindData->databaseManager->invalidateCache();
dataChunk.getValueVector(0)->setValue<std::string>(0,
"All attached duckdb database caches have been cleared.");
"All attached database caches have been cleared.");
return 1;
}

static std::unique_ptr<TableFuncBindData> DuckDBClearCacheBindFunc(ClientContext* context,
static std::unique_ptr<TableFuncBindData> clearCacheBindFunc(ClientContext* context,
TableFuncBindInput*) {
std::vector<std::string> columnNames;
std::vector<LogicalType> columnTypes;
columnNames.emplace_back("message");
columnTypes.emplace_back(*LogicalType::STRING());
return std::make_unique<DuckDBClearCacheBindData>(context->getDatabaseManager(),
return std::make_unique<ClearCacheBindData>(context->getDatabaseManager(),
std::move(columnTypes), std::move(columnNames), 1 /* maxOffset */);
}

DuckDBClearCacheFunction::DuckDBClearCacheFunction()
: TableFunction{name, DuckDBClearCacheTableFunc, DuckDBClearCacheBindFunc,
ClearCacheFunction::ClearCacheFunction()
: TableFunction{name, clearCacheTableFunc, clearCacheBindFunc,
function::CallFunction::initSharedState, function::CallFunction::initEmptyLocalState,
std::vector<LogicalTypeID>{}} {}

Expand Down
2 changes: 1 addition & 1 deletion extension/duckdb/src/duckdb_storage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ std::unique_ptr<main::AttachedDatabase> attachDuckDB(std::string dbName, std::st

DuckDBStorageExtension::DuckDBStorageExtension(main::Database* database)
: StorageExtension{attachDuckDB} {
auto duckDBClearCacheFunction = std::make_unique<DuckDBClearCacheFunction>();
auto duckDBClearCacheFunction = std::make_unique<ClearCacheFunction>();
extension::ExtensionUtils::registerTableFunction(*database,
std::move(duckDBClearCacheFunction));
}
Expand Down
12 changes: 6 additions & 6 deletions extension/duckdb/src/include/duckdb_functions.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,25 @@
namespace kuzu {
namespace duckdb_extension {

struct DuckDBClearCacheBindData : public function::CallTableFuncBindData {
struct ClearCacheBindData : public function::CallTableFuncBindData {
main::DatabaseManager* databaseManager;

DuckDBClearCacheBindData(main::DatabaseManager* databaseManager,
ClearCacheBindData(main::DatabaseManager* databaseManager,
std::vector<common::LogicalType> returnTypes, std::vector<std::string> returnColumnNames,
common::offset_t maxOffset)
: CallTableFuncBindData{std::move(returnTypes), std::move(returnColumnNames), maxOffset},
databaseManager{databaseManager} {}

std::unique_ptr<TableFuncBindData> copy() const override {
return std::make_unique<DuckDBClearCacheBindData>(databaseManager, columnTypes, columnNames,
return std::make_unique<ClearCacheBindData>(databaseManager, columnTypes, columnNames,
maxOffset);
}
};

struct DuckDBClearCacheFunction final : public function::TableFunction {
static constexpr const char* name = "duckdb_clear_cache";
struct ClearCacheFunction final : public function::TableFunction {
static constexpr const char* name = "clear_attached_db_cache";

DuckDBClearCacheFunction();
ClearCacheFunction();
};

} // namespace duckdb_extension
Expand Down
14 changes: 7 additions & 7 deletions extension/duckdb/test/test_files/duckdb.test
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,12 @@ Attached database successfully.
Attached database successfully.
-STATEMENT CALL SHOW_TABLES() RETURN *;
---- 6
movies|FOREIGN|tinysnb(DUCKDB)|
organisation|FOREIGN|tinysnb(DUCKDB)|
person|FOREIGN|Other1(DUCKDB)|
person|FOREIGN|tinysnb(DUCKDB)|
tableOfTypes1|FOREIGN|tinysnb(DUCKDB)|
tableOfTypes|FOREIGN|tinysnb(DUCKDB)|
movies|ATTACHED|tinysnb(DUCKDB)|
organisation|ATTACHED|tinysnb(DUCKDB)|
person|ATTACHED|Other1(DUCKDB)|
person|ATTACHED|tinysnb(DUCKDB)|
tableOfTypes1|ATTACHED|tinysnb(DUCKDB)|
tableOfTypes|ATTACHED|tinysnb(DUCKDB)|
-STATEMENT LOAD FROM other1.person RETURN *;
---- 4
1
Expand Down Expand Up @@ -88,7 +88,7 @@ Used database successfully.
-STATEMENT LOAD FROM other1.person RETURN count(*);
---- 1
4
-STATEMENT CALL DUCKDB_CLEAR_CACHE() RETURN *;
-STATEMENT CALL CLEAR_ATTACHED_DB_CACHE() RETURN *;
---- ok
-STATEMENT LOAD FROM other1.person RETURN count(*);
---- 1
Expand Down
4 changes: 2 additions & 2 deletions extension/postgres/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ add_library(postgres_extension
../duckdb/src/duckdb_catalog.cpp
../duckdb/src/duckdb_table_catalog_entry.cpp
../duckdb/src/duckdb_type_converter.cpp
../duckdb/src/duckdb_functions.cpp
src/postgres_extension.cpp
src/postgres_storage.cpp
src/postgres_catalog.cpp
src/postgres_functions.cpp)
src/postgres_catalog.cpp)

include_directories(
src/include
Expand Down
15 changes: 0 additions & 15 deletions extension/postgres/src/include/postgres_functions.h

This file was deleted.

57 changes: 0 additions & 57 deletions extension/postgres/src/postgres_functions.cpp

This file was deleted.

8 changes: 3 additions & 5 deletions extension/postgres/src/postgres_storage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@

#include <regex>

#include "catalog/catalog_entry/table_catalog_entry.h"
#include "common/exception/runtime.h"
#include "common/string_utils.h"
#include "duckdb_functions.h"
#include "extension/extension.h"
#include "postgres_catalog.h"
#include "postgres_functions.h"

namespace kuzu {
namespace postgres_extension {
Expand Down Expand Up @@ -35,9 +34,8 @@ std::unique_ptr<main::AttachedDatabase> attachPostgres(std::string dbName, std::

PostgresStorageExtension::PostgresStorageExtension(main::Database* database)
: StorageExtension{attachPostgres} {
auto postgresClearCacheFunction = std::make_unique<PostgresClearCacheFunction>();
extension::ExtensionUtils::registerTableFunction(*database,
std::move(postgresClearCacheFunction));
auto clearCacheFunction = std::make_unique<duckdb_extension::ClearCacheFunction>();
extension::ExtensionUtils::registerTableFunction(*database, std::move(clearCacheFunction));
}

bool PostgresStorageExtension::canHandleDB(std::string dbType_) const {
Expand Down
18 changes: 9 additions & 9 deletions extension/postgres/test/test_files/postgres.test
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Binder exception: No database named tinysnb1 has been attached.
-STATEMENT LOAD FROM pgscan.movies RETURN count(*);
---- 1
3
-STATEMENT CALL POSTGRES_CLEAR_CACHE() RETURN *;
-STATEMENT CALL CLEAR_ATTACHED_DB_CACHE() RETURN *;
---- ok
-STATEMENT LOAD FROM pgscan.movies where length > 2500 RETURN name;
---- 1
Expand All @@ -55,14 +55,14 @@ The 😂😃🧘🏻‍♂️🌍🌦️🍞🚗 movie
# be displayed.
-STATEMENT CALL SHOW_TABLES() RETURN *;
---- 8
movies|FOREIGN|pgscan(POSTGRES)|
movies|FOREIGN|tinysnb(POSTGRES)|
organisation|FOREIGN|pgscan(POSTGRES)|
organisation|FOREIGN|tinysnb(POSTGRES)|
persontest|FOREIGN|pgscan(POSTGRES)|
persontest|FOREIGN|tinysnb(POSTGRES)|
person|FOREIGN|pgscan(POSTGRES)|
person|FOREIGN|tinysnb(POSTGRES)|
movies|ATTACHED|pgscan(POSTGRES)|
movies|ATTACHED|tinysnb(POSTGRES)|
organisation|ATTACHED|pgscan(POSTGRES)|
organisation|ATTACHED|tinysnb(POSTGRES)|
persontest|ATTACHED|pgscan(POSTGRES)|
persontest|ATTACHED|tinysnb(POSTGRES)|
person|ATTACHED|pgscan(POSTGRES)|
person|ATTACHED|tinysnb(POSTGRES)|

-STATEMENT CALL TABLE_INFO('pgscan.person') RETURN *;
---- 14
Expand Down
Loading

0 comments on commit 7b22167

Please sign in to comment.