@@ -12,11 +12,17 @@ namespace vortex {
1212class OpaqueWrapper : public duckdb ::ObjectCacheEntry {
1313public:
1414 duckdb::unique_ptr<void , duckdb_vx_deleter_fn> ptr;
15+ duckdb::optional_idx estimated_size;
1516
16- explicit OpaqueWrapper (void *p, duckdb_vx_deleter_fn del) : ptr(p, del) {
17+ explicit OpaqueWrapper (void *p, duckdb::optional_idx estimated_size, duckdb_vx_deleter_fn del)
18+ : ptr(p, del), estimated_size(estimated_size) {
1719 }
1820 ~OpaqueWrapper () override = default ;
1921
22+ duckdb::optional_idx GetEstimatedCacheMemory () const override {
23+ return estimated_size;
24+ }
25+
2026 duckdb::string GetObjectType () override {
2127 return " vortex_opaque_wrapper" ;
2228 }
@@ -32,9 +38,11 @@ class OpaqueWrapper : public duckdb::ObjectCacheEntry {
3238extern " C" void duckdb_vx_object_cache_put (duckdb_vx_object_cache cache,
3339 const char *key,
3440 void *value,
41+ uint64_t estimated_size,
3542 duckdb_vx_deleter_fn deleter) {
3643 auto object_cache = reinterpret_cast <duckdb::ObjectCache *>(cache);
37- auto wrapper = duckdb::make_shared_ptr<vortex::OpaqueWrapper>(value, deleter);
44+ auto wrapper =
45+ duckdb::make_shared_ptr<vortex::OpaqueWrapper>(value, duckdb::optional_idx (estimated_size), deleter);
3846 object_cache->Put (std::string (key), wrapper);
3947}
4048
0 commit comments