1111#include " duckdb/execution/index/art/node256.hpp"
1212#include " duckdb/execution/index/art/node256_leaf.hpp"
1313#include " duckdb/execution/index/art/node48.hpp"
14+ #include " duckdb/execution/index/art/const_prefix_handle.hpp"
1415#include " duckdb/execution/index/art/prefix.hpp"
16+ #include " duckdb/execution/index/art/prefix_handle.hpp"
1517#include " duckdb/storage/table_io_manager.hpp"
1618
1719namespace duckdb {
@@ -357,8 +359,7 @@ bool Node::IsAnyLeaf() const {
357359// TransformToDeprecated
358360// ===--------------------------------------------------------------------===//
359361
360- void Node::TransformToDeprecated (ART &art, Node &node,
361- unsafe_unique_ptr<FixedSizeAllocator> &deprecated_prefix_allocator) {
362+ void Node::TransformToDeprecated (ART &art, Node &node, TransformToDeprecatedState &state) {
362363 D_ASSERT (node.HasMetadata ());
363364
364365 if (node.GetGateStatus () == GateStatus::GATE_SET) {
@@ -369,19 +370,19 @@ void Node::TransformToDeprecated(ART &art, Node &node,
369370 auto type = node.GetType ();
370371 switch (type) {
371372 case NType::PREFIX:
372- return Prefix ::TransformToDeprecated (art, node, deprecated_prefix_allocator );
373+ return PrefixHandle ::TransformToDeprecated (art, node, state );
373374 case NType::LEAF_INLINED:
374375 return ;
375376 case NType::LEAF:
376377 return ;
377378 case NType::NODE_4:
378- return TransformToDeprecatedInternal (art, InMemoryRef<Node4>(art, node, type), deprecated_prefix_allocator );
379+ return TransformToDeprecatedInternal (art, InMemoryRef<Node4>(art, node, type), state );
379380 case NType::NODE_16:
380- return TransformToDeprecatedInternal (art, InMemoryRef<Node16>(art, node, type), deprecated_prefix_allocator );
381+ return TransformToDeprecatedInternal (art, InMemoryRef<Node16>(art, node, type), state );
381382 case NType::NODE_48:
382- return TransformToDeprecatedInternal (art, InMemoryRef<Node48>(art, node, type), deprecated_prefix_allocator );
383+ return TransformToDeprecatedInternal (art, InMemoryRef<Node48>(art, node, type), state );
383384 case NType::NODE_256:
384- return TransformToDeprecatedInternal (art, InMemoryRef<Node256>(art, node, type), deprecated_prefix_allocator );
385+ return TransformToDeprecatedInternal (art, InMemoryRef<Node256>(art, node, type), state );
385386 default :
386387 throw InternalException (" invalid node type for TransformToDeprecated: %d" , type);
387388 }
@@ -402,7 +403,7 @@ void Node::Verify(ART &art) const {
402403 Leaf::DeprecatedVerify (art, *this );
403404 return ;
404405 case NType::PREFIX: {
405- Prefix ::Verify (art, *this );
406+ ConstPrefixHandle ::Verify (art, *this );
406407 return ;
407408 }
408409 default :
@@ -496,7 +497,7 @@ string Node::ToString(ART &art, const ToStringOptions &options) const {
496497 case NType::PREFIX: {
497498 ToStringOptions prefix_options = options;
498499 prefix_options.inside_gate = propagate_gate;
499- string str = Prefix ::ToString (art, *this , prefix_options);
500+ string str = ConstPrefixHandle ::ToString (art, *this , prefix_options);
500501 if (is_gate) {
501502 string s = " " ;
502503 indent (s, options.indent_level );
0 commit comments