diff --git a/.github/workflows/MainDistributionPipeline.yml b/.github/workflows/MainDistributionPipeline.yml index ecc7a59..5fe1827 100644 --- a/.github/workflows/MainDistributionPipeline.yml +++ b/.github/workflows/MainDistributionPipeline.yml @@ -14,20 +14,20 @@ concurrency: jobs: duckdb-stable-build: name: Build extension binaries - uses: duckdb/duckdb/.github/workflows/_extension_distribution.yml@a056c8e0a29f2f38d245afeb9e48cc308711aa21 + uses: duckdb/duckdb/.github/workflows/_extension_distribution.yml@0e784765f6f87bd1ce9034afcce1e7f89fcd8777 with: vcpkg_commit: a42af01b72c28a8e1d7b48107b33e4f286a55ef6 - duckdb_version: a056c8e0a2 + duckdb_version: 0e784765f6 extension_name: sqlite_scanner exclude_archs: 'wasm_mvp;wasm_eh;wasm_threads' duckdb-stable-deploy: name: Deploy extension binaries needs: duckdb-stable-build - uses: duckdb/duckdb/.github/workflows/_extension_deploy.yml@a056c8e0a29f2f38d245afeb9e48cc308711aa21 + uses: duckdb/duckdb/.github/workflows/_extension_deploy.yml@0e784765f6f87bd1ce9034afcce1e7f89fcd8777 secrets: inherit with: - duckdb_version: a056c8e0a2 + duckdb_version: 0e784765f6 extension_name: sqlite_scanner exclude_archs: 'wasm_mvp;wasm_eh;wasm_threads' deploy_latest: ${{ startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main' }} diff --git a/Makefile b/Makefile index ce6dabc..b332341 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,7 @@ ifeq ($(GEN),ninja) FORCE_COLOR=-DFORCE_COLORED_OUTPUT=1 endif -BUILD_FLAGS=-DEXTENSION_STATIC_BUILD=1 -DBUILD_EXTENSIONS="tpch" ${OSX_ARCH_FLAG} +BUILD_FLAGS=-DEXTENSION_STATIC_BUILD=1 -DBUILD_EXTENSIONS="tpch" ${OSX_ARCH_FLAG} -DDUCKDB_EXPLICIT_PLATFORM='${DUCKDB_PLATFORM}' CLIENT_FLAGS := diff --git a/duckdb b/duckdb index a056c8e..0e78476 160000 --- a/duckdb +++ b/duckdb @@ -1 +1 @@ -Subproject commit a056c8e0a29f2f38d245afeb9e48cc308711aa21 +Subproject commit 0e784765f6f87bd1ce9034afcce1e7f89fcd8777 diff --git a/src/include/storage/sqlite_schema_entry.hpp b/src/include/storage/sqlite_schema_entry.hpp index 2052584..5bd82b3 100644 --- a/src/include/storage/sqlite_schema_entry.hpp +++ b/src/include/storage/sqlite_schema_entry.hpp @@ -15,7 +15,7 @@ class SQLiteTransaction; class SQLiteSchemaEntry : public SchemaCatalogEntry { public: - SQLiteSchemaEntry(Catalog &catalog); + SQLiteSchemaEntry(Catalog &catalog, CreateSchemaInfo &info); public: optional_ptr CreateTable(CatalogTransaction transaction, BoundCreateTableInfo &info) override; diff --git a/src/include/storage/sqlite_transaction_manager.hpp b/src/include/storage/sqlite_transaction_manager.hpp index 4982eef..8f9cafc 100644 --- a/src/include/storage/sqlite_transaction_manager.hpp +++ b/src/include/storage/sqlite_transaction_manager.hpp @@ -20,7 +20,7 @@ class SQLiteTransactionManager : public TransactionManager { SQLiteTransactionManager(AttachedDatabase &db_p, SQLiteCatalog &sqlite_catalog); Transaction &StartTransaction(ClientContext &context) override; - string CommitTransaction(ClientContext &context, Transaction &transaction) override; + ErrorData CommitTransaction(ClientContext &context, Transaction &transaction) override; void RollbackTransaction(Transaction &transaction) override; void Checkpoint(ClientContext &context, bool force = false) override; diff --git a/src/sqlite_storage.cpp b/src/sqlite_storage.cpp index d65bf18..ad72003 100644 --- a/src/sqlite_storage.cpp +++ b/src/sqlite_storage.cpp @@ -12,8 +12,9 @@ namespace duckdb { -static unique_ptr SQLiteAttach(StorageExtensionInfo *storage_info, AttachedDatabase &db, const string &name, - AttachInfo &info, AccessMode access_mode) { +static unique_ptr SQLiteAttach(StorageExtensionInfo *storage_info, ClientContext &context, + AttachedDatabase &db, const string &name, AttachInfo &info, + AccessMode access_mode) { return make_uniq(db, info.path, access_mode); } diff --git a/src/storage/sqlite_catalog.cpp b/src/storage/sqlite_catalog.cpp index fad530c..c7918cf 100644 --- a/src/storage/sqlite_catalog.cpp +++ b/src/storage/sqlite_catalog.cpp @@ -1,8 +1,10 @@ #include "storage/sqlite_catalog.hpp" +#include "duckdb/parser/parsed_data/create_schema_info.hpp" +#include "duckdb/storage/database_size.hpp" +#include "sqlite_db.hpp" #include "storage/sqlite_schema_entry.hpp" #include "storage/sqlite_transaction.hpp" -#include "sqlite_db.hpp" -#include "duckdb/storage/database_size.hpp" +#include "duckdb/common/exception/transaction_exception.hpp" namespace duckdb { @@ -17,7 +19,8 @@ SQLiteCatalog::~SQLiteCatalog() { } void SQLiteCatalog::Initialize(bool load_builtin) { - main_schema = make_uniq(*this); + CreateSchemaInfo info; + main_schema = make_uniq(*this, info); } optional_ptr SQLiteCatalog::CreateSchema(CatalogTransaction transaction, CreateSchemaInfo &info) { diff --git a/src/storage/sqlite_schema_entry.cpp b/src/storage/sqlite_schema_entry.cpp index 7c4059e..21f38cf 100644 --- a/src/storage/sqlite_schema_entry.cpp +++ b/src/storage/sqlite_schema_entry.cpp @@ -15,7 +15,7 @@ namespace duckdb { -SQLiteSchemaEntry::SQLiteSchemaEntry(Catalog &catalog) : SchemaCatalogEntry(catalog, DEFAULT_SCHEMA, true) { +SQLiteSchemaEntry::SQLiteSchemaEntry(Catalog &catalog, CreateSchemaInfo &info) : SchemaCatalogEntry(catalog, info) { } SQLiteTransaction &GetSQLiteTransaction(CatalogTransaction transaction) { diff --git a/src/storage/sqlite_transaction_manager.cpp b/src/storage/sqlite_transaction_manager.cpp index 7b6e132..d800794 100644 --- a/src/storage/sqlite_transaction_manager.cpp +++ b/src/storage/sqlite_transaction_manager.cpp @@ -16,12 +16,12 @@ Transaction &SQLiteTransactionManager::StartTransaction(ClientContext &context) return result; } -string SQLiteTransactionManager::CommitTransaction(ClientContext &context, Transaction &transaction) { +ErrorData SQLiteTransactionManager::CommitTransaction(ClientContext &context, Transaction &transaction) { auto &sqlite_transaction = transaction.Cast(); sqlite_transaction.Commit(); lock_guard l(transaction_lock); transactions.erase(transaction); - return string(); + return ErrorData(); } void SQLiteTransactionManager::RollbackTransaction(Transaction &transaction) { diff --git a/test/sql/storage/attach_schema_functions.test b/test/sql/storage/attach_schema_functions.test index 6356265..f2b6cb5 100644 --- a/test/sql/storage/attach_schema_functions.test +++ b/test/sql/storage/attach_schema_functions.test @@ -20,13 +20,13 @@ CREATE INDEX i_index ON s.main.integers(j) statement ok CREATE VIEW s.v1 AS SELECT 42 AS a; -query IIIII -SELECT * REPLACE (trim(split(sql, '(')[1]) AS sql) FROM sqlite_master ORDER BY 1, 2 +query IIII +SELECT * EXCLUDE (sql) FROM sqlite_master ORDER BY 1, 2 ---- -index i_index integers 0 CREATE INDEX i_index ON integers -index sqlite_autoindex_integers_1 integers 0 NULL -table integers integers 0 CREATE TABLE integers -view v1 v1 0 CREATE VIEW v1 +index i_index integers 0 +index sqlite_autoindex_integers_1 integers 0 +table integers integers 0 +view v1 v1 0 query IIII SELECT database_name, table_name, has_primary_key, estimated_size FROM duckdb_tables()