duckdb 0.7.2-dev1734.0 → 0.7.2-dev1867.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/duckdb/src/catalog/catalog.cpp +27 -27
- package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +6 -6
- package/src/duckdb/src/catalog/catalog_set.cpp +27 -25
- package/src/duckdb/src/catalog/default/default_functions.cpp +4 -4
- package/src/duckdb/src/catalog/default/default_types.cpp +4 -4
- package/src/duckdb/src/catalog/default/default_views.cpp +4 -4
- package/src/duckdb/src/catalog/dependency_list.cpp +7 -6
- package/src/duckdb/src/catalog/dependency_manager.cpp +44 -38
- package/src/duckdb/src/common/serializer/buffered_file_reader.cpp +11 -6
- package/src/duckdb/src/common/types/batched_data_collection.cpp +2 -1
- package/src/duckdb/src/common/types/column_data_allocator.cpp +1 -0
- package/src/duckdb/src/common/types/vector.cpp +2 -2
- package/src/duckdb/src/common/types.cpp +2 -2
- package/src/duckdb/src/common/vector_operations/vector_copy.cpp +14 -11
- package/src/duckdb/src/execution/operator/aggregate/distinct_aggregate_data.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +51 -50
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +14 -13
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +20 -20
- package/src/duckdb/src/execution/operator/schema/physical_create_table.cpp +2 -2
- package/src/duckdb/src/execution/physical_plan/plan_create_index.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +3 -3
- package/src/duckdb/src/execution/physical_plan/plan_delete.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_insert.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_update.cpp +1 -1
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +3 -3
- package/src/duckdb/src/function/cast/cast_function_set.cpp +2 -1
- package/src/duckdb/src/function/scalar/math/numeric.cpp +57 -0
- package/src/duckdb/src/function/scalar/math_functions.cpp +1 -0
- package/src/duckdb/src/function/scalar/sequence/nextval.cpp +29 -29
- package/src/duckdb/src/function/scalar/string/damerau_levenshtein.cpp +106 -0
- package/src/duckdb/src/function/scalar/string/hex.cpp +261 -78
- package/src/duckdb/src/function/scalar/string/regexp.cpp +145 -28
- package/src/duckdb/src/function/scalar/string_functions.cpp +1 -0
- package/src/duckdb/src/function/table/checkpoint.cpp +4 -4
- package/src/duckdb/src/function/table/system/duckdb_columns.cpp +24 -24
- package/src/duckdb/src/function/table/system/duckdb_constraints.cpp +7 -6
- package/src/duckdb/src/function/table/system/duckdb_databases.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_dependencies.cpp +11 -11
- package/src/duckdb/src/function/table/system/pragma_database_size.cpp +1 -1
- package/src/duckdb/src/function/table/system/pragma_table_info.cpp +17 -18
- package/src/duckdb/src/function/table/table_scan.cpp +8 -11
- package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +9 -9
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry_map.hpp +38 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_transaction.hpp +4 -3
- package/src/duckdb/src/include/duckdb/catalog/default/default_functions.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/default/default_types.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/default/default_views.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/dependency.hpp +4 -5
- package/src/duckdb/src/include/duckdb/catalog/dependency_list.hpp +4 -5
- package/src/duckdb/src/include/duckdb/catalog/dependency_manager.hpp +10 -9
- package/src/duckdb/src/include/duckdb/common/allocator.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/bit_utils.hpp +147 -0
- package/src/duckdb/src/include/duckdb/common/field_writer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/helper.hpp +9 -0
- package/src/duckdb/src/include/duckdb/common/hugeint.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/optional_ptr.hpp +29 -6
- package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_reader.hpp +6 -5
- package/src/duckdb/src/include/duckdb/common/serializer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/string_util.hpp +7 -0
- package/src/duckdb/src/include/duckdb/common/types/row_data_collection.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/types.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_insert.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_insert.hpp +5 -5
- package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_table.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +3 -2
- package/src/duckdb/src/include/duckdb/function/scalar/math_functions.hpp +4 -0
- package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +4 -0
- package/src/duckdb/src/include/duckdb/main/database_manager.hpp +4 -3
- package/src/duckdb/src/include/duckdb/main/query_result.hpp +3 -2
- package/src/duckdb/src/include/duckdb/optimizer/filter_combiner.hpp +7 -7
- package/src/duckdb/src/include/duckdb/optimizer/matcher/expression_matcher.hpp +11 -11
- package/src/duckdb/src/include/duckdb/optimizer/matcher/set_matcher.hpp +8 -8
- package/src/duckdb/src/include/duckdb/optimizer/rule/arithmetic_simplification.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/rule/case_simplification.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/rule/comparison_simplification.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/rule/conjunction_simplification.hpp +2 -2
- package/src/duckdb/src/include/duckdb/optimizer/rule/constant_folding.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/rule/date_part_simplification.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/rule/distributivity.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/rule/empty_needle_removal.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/rule/enum_comparison.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/rule/equal_or_null_simplification.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/rule/in_clause_simplification.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/rule/like_optimizations.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/rule/move_constants.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/rule/ordered_aggregate_optimizer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/rule/regex_optimizations.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/rule.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/base_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression_map.hpp +19 -6
- package/src/duckdb/src/include/duckdb/parser/expression_util.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression.hpp +5 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder/base_select_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/order_binder.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp +15 -7
- package/src/duckdb/src/include/duckdb/storage/buffer/buffer_pool.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp +49 -126
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/algorithm/chimp128.hpp +1 -0
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/algorithm/chimp_utils.hpp +0 -97
- package/src/duckdb/src/include/duckdb/storage/compression/patas/algorithm/patas.hpp +1 -0
- package/src/duckdb/src/include/duckdb/storage/meta_block_reader.hpp +5 -5
- package/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp +159 -0
- package/src/duckdb/src/include/duckdb/storage/table/column_segment.hpp +1 -0
- package/src/duckdb/src/include/duckdb/transaction/meta_transaction.hpp +6 -5
- package/src/duckdb/src/main/client_context.cpp +1 -1
- package/src/duckdb/src/main/database.cpp +2 -1
- package/src/duckdb/src/main/database_manager.cpp +4 -4
- package/src/duckdb/src/optimizer/common_aggregate_optimizer.cpp +2 -2
- package/src/duckdb/src/optimizer/cse_optimizer.cpp +4 -4
- package/src/duckdb/src/optimizer/deliminator.cpp +13 -11
- package/src/duckdb/src/optimizer/expression_rewriter.cpp +2 -2
- package/src/duckdb/src/optimizer/filter_combiner.cpp +67 -65
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +1 -0
- package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +26 -25
- package/src/duckdb/src/optimizer/matcher/expression_matcher.cpp +23 -21
- package/src/duckdb/src/optimizer/rule/arithmetic_simplification.cpp +3 -3
- package/src/duckdb/src/optimizer/rule/case_simplification.cpp +2 -2
- package/src/duckdb/src/optimizer/rule/comparison_simplification.cpp +6 -7
- package/src/duckdb/src/optimizer/rule/conjunction_simplification.cpp +9 -8
- package/src/duckdb/src/optimizer/rule/constant_folding.cpp +7 -7
- package/src/duckdb/src/optimizer/rule/date_part_simplification.cpp +3 -3
- package/src/duckdb/src/optimizer/rule/distributivity.cpp +5 -5
- package/src/duckdb/src/optimizer/rule/empty_needle_removal.cpp +6 -6
- package/src/duckdb/src/optimizer/rule/enum_comparison.cpp +4 -4
- package/src/duckdb/src/optimizer/rule/equal_or_null_simplification.cpp +23 -26
- package/src/duckdb/src/optimizer/rule/in_clause_simplification_rule.cpp +2 -3
- package/src/duckdb/src/optimizer/rule/like_optimizations.cpp +3 -3
- package/src/duckdb/src/optimizer/rule/move_constants.cpp +6 -6
- package/src/duckdb/src/optimizer/rule/ordered_aggregate_optimizer.cpp +2 -2
- package/src/duckdb/src/optimizer/rule/regex_optimizations.cpp +11 -10
- package/src/duckdb/src/parser/expression_util.cpp +6 -6
- package/src/duckdb/src/parser/transform/helpers/transform_groupby.cpp +3 -3
- package/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +2 -2
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +3 -3
- package/src/duckdb/src/planner/binder/query_node/bind_setop_node.cpp +5 -5
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +4 -4
- package/src/duckdb/src/planner/expression_binder/order_binder.cpp +3 -3
- package/src/duckdb/src/storage/buffer/block_handle.cpp +7 -6
- package/src/duckdb/src/storage/buffer/block_manager.cpp +3 -1
- package/src/duckdb/src/storage/buffer/buffer_handle.cpp +1 -0
- package/src/duckdb/src/storage/buffer/buffer_pool.cpp +6 -2
- package/src/duckdb/src/storage/buffer/buffer_pool_reservation.cpp +7 -4
- package/src/duckdb/src/storage/buffer_manager.cpp +35 -726
- package/src/duckdb/src/storage/checkpoint_manager.cpp +2 -2
- package/src/duckdb/src/storage/meta_block_reader.cpp +6 -5
- package/src/duckdb/src/storage/standard_buffer_manager.cpp +801 -0
- package/src/duckdb/src/storage/wal_replay.cpp +2 -2
- package/src/duckdb/src/transaction/meta_transaction.cpp +13 -13
- package/src/duckdb/src/transaction/transaction.cpp +1 -1
- package/src/duckdb/src/transaction/transaction_context.cpp +1 -1
- package/src/duckdb/ub_src_function_scalar_string.cpp +2 -0
- package/src/duckdb/ub_src_storage.cpp +2 -0
@@ -36,7 +36,7 @@ bool WriteAheadLog::Replay(AttachedDatabase &database, string &path) {
|
|
36
36
|
// first deserialize the WAL to look for a checkpoint flag
|
37
37
|
// if there is a checkpoint flag, we might have already flushed the contents of the WAL to disk
|
38
38
|
ReplayState checkpoint_state(database, *con.context, *initial_reader);
|
39
|
-
initial_reader->
|
39
|
+
initial_reader->SetCatalog(checkpoint_state.catalog);
|
40
40
|
checkpoint_state.deserialize_only = true;
|
41
41
|
try {
|
42
42
|
while (true) {
|
@@ -73,7 +73,7 @@ bool WriteAheadLog::Replay(AttachedDatabase &database, string &path) {
|
|
73
73
|
|
74
74
|
// we need to recover from the WAL: actually set up the replay state
|
75
75
|
BufferedFileReader reader(FileSystem::Get(database), path.c_str(), con.context.get());
|
76
|
-
reader.
|
76
|
+
reader.SetCatalog(checkpoint_state.catalog);
|
77
77
|
ReplayState state(database, *con.context, reader);
|
78
78
|
|
79
79
|
// replay the WAL
|
@@ -20,19 +20,19 @@ ValidChecker &ValidChecker::Get(MetaTransaction &transaction) {
|
|
20
20
|
|
21
21
|
Transaction &Transaction::Get(ClientContext &context, AttachedDatabase &db) {
|
22
22
|
auto &meta_transaction = MetaTransaction::Get(context);
|
23
|
-
return meta_transaction.GetTransaction(
|
23
|
+
return meta_transaction.GetTransaction(db);
|
24
24
|
}
|
25
25
|
|
26
|
-
Transaction &MetaTransaction::GetTransaction(AttachedDatabase
|
27
|
-
auto entry = transactions.find(db);
|
26
|
+
Transaction &MetaTransaction::GetTransaction(AttachedDatabase &db) {
|
27
|
+
auto entry = transactions.find(&db);
|
28
28
|
if (entry == transactions.end()) {
|
29
|
-
auto new_transaction = db
|
29
|
+
auto new_transaction = db.GetTransactionManager().StartTransaction(context);
|
30
30
|
if (!new_transaction) {
|
31
31
|
throw InternalException("StartTransaction did not return a valid transaction");
|
32
32
|
}
|
33
33
|
new_transaction->active_query = active_query;
|
34
|
-
all_transactions.push_back(db);
|
35
|
-
transactions[db] = new_transaction;
|
34
|
+
all_transactions.push_back(&db);
|
35
|
+
transactions[&db] = new_transaction;
|
36
36
|
return *new_transaction;
|
37
37
|
} else {
|
38
38
|
D_ASSERT(entry->second->active_query == active_query);
|
@@ -49,7 +49,7 @@ string MetaTransaction::Commit() {
|
|
49
49
|
// commit transactions in reverse order
|
50
50
|
for (idx_t i = all_transactions.size(); i > 0; i--) {
|
51
51
|
auto db = all_transactions[i - 1];
|
52
|
-
auto entry = transactions.find(db);
|
52
|
+
auto entry = transactions.find(db.get());
|
53
53
|
if (entry == transactions.end()) {
|
54
54
|
throw InternalException("Could not find transaction corresponding to database in MetaTransaction");
|
55
55
|
}
|
@@ -71,7 +71,7 @@ void MetaTransaction::Rollback() {
|
|
71
71
|
for (idx_t i = all_transactions.size(); i > 0; i--) {
|
72
72
|
auto db = all_transactions[i - 1];
|
73
73
|
auto &transaction_manager = db->GetTransactionManager();
|
74
|
-
auto entry = transactions.find(db);
|
74
|
+
auto entry = transactions.find(db.get());
|
75
75
|
D_ASSERT(entry != transactions.end());
|
76
76
|
auto transaction = entry->second;
|
77
77
|
transaction_manager.RollbackTransaction(transaction);
|
@@ -89,20 +89,20 @@ void MetaTransaction::SetActiveQuery(transaction_t query_number) {
|
|
89
89
|
}
|
90
90
|
}
|
91
91
|
|
92
|
-
void MetaTransaction::ModifyDatabase(AttachedDatabase
|
93
|
-
if (db
|
92
|
+
void MetaTransaction::ModifyDatabase(AttachedDatabase &db) {
|
93
|
+
if (db.IsSystem() || db.IsTemporary()) {
|
94
94
|
// we can always modify the system and temp databases
|
95
95
|
return;
|
96
96
|
}
|
97
97
|
if (!modified_database) {
|
98
|
-
modified_database = db;
|
98
|
+
modified_database = &db;
|
99
99
|
return;
|
100
100
|
}
|
101
|
-
if (db != modified_database) {
|
101
|
+
if (&db != modified_database.get()) {
|
102
102
|
throw TransactionException(
|
103
103
|
"Attempting to write to database \"%s\" in a transaction that has already modified database \"%s\" - a "
|
104
104
|
"single transaction can only write to a single attached database.",
|
105
|
-
db
|
105
|
+
db.GetName(), modified_database->GetName());
|
106
106
|
}
|
107
107
|
}
|
108
108
|
|
@@ -18,7 +18,7 @@ bool Transaction::IsReadOnly() {
|
|
18
18
|
throw InternalException("Transaction::IsReadOnly() called after client context has been destroyed");
|
19
19
|
}
|
20
20
|
auto &db = manager.GetDB();
|
21
|
-
return MetaTransaction::Get(*ctxt).ModifiedDatabase() != &db;
|
21
|
+
return MetaTransaction::Get(*ctxt).ModifiedDatabase().get() != &db;
|
22
22
|
}
|
23
23
|
|
24
24
|
} // namespace duckdb
|
@@ -34,7 +34,7 @@ void TransactionContext::BeginTransaction() {
|
|
34
34
|
// if immediate transaction mode is enabled then start all transactions immediately
|
35
35
|
auto databases = DatabaseManager::Get(context).GetDatabases(context);
|
36
36
|
for (auto db : databases) {
|
37
|
-
current_transaction->GetTransaction(db);
|
37
|
+
current_transaction->GetTransaction(*db);
|
38
38
|
}
|
39
39
|
}
|
40
40
|
}
|