Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
void Vacuum() override { auto n = frame_manager_->FrameCount(); int64_t i = 0; auto page_i = MakeTablePage(frame_manager_->GetFrame(i), schema_); page_i->Vacuum(); int64_t j1 = n - 1; auto page_j = MakeTablePage(frame_manager_->GetFrame(j1), schema_); int32_t j2 = page_j->TupleCount(); while (i < j1) { while (i < j1 && (j2 == -1 || !page_j->LoadTuple(j2).has_value())) { if (j2 == -1) { --j1; frame_manager_->DeleteLastFrame(); page_j = MakeTablePage(frame_manager_->GetFrame(j1), schema_); j2 = page_j->TupleCount(); } else { --j2; } } if (i >= j1) { break; } auto tuple = page_j->LoadTuple(j2).value(); auto required_space = Marshaller::RequiredSpaceTuple(tuple.values, tuple.is_null, schema_); while (i < j1 && (page_i->FreeSpace() < required_space + sizeof(TupleLocalId))) { i++; page_i = MakeTablePage(frame_manager_->GetFrame(i), schema_); page_i->Vacuum(); } if (i >= j1) { break; } page_j->DeleteTuple(j2--); page_i->AppendTuple(tuple); } }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)