| 537 | } |
| 538 | |
| 539 | void OrcWriter::EndWriteTuple(TupleTableSlot *table_slot) { |
| 540 | // restore original datum value |
| 541 | for (auto const &pair : origin_datum_holder_) { |
| 542 | table_slot->tts_values[pair.first] = pair.second; |
| 543 | } |
| 544 | for (auto p : detoast_memory_holder_) { |
| 545 | cbdb::Pfree(p); |
| 546 | } |
| 547 | origin_datum_holder_.clear(); |
| 548 | toast_memory_holder_.clear(); |
| 549 | detoast_memory_holder_.clear(); |
| 550 | |
| 551 | if (pax_columns_->GetRows() >= writer_options_.group_limit) { |
| 552 | Flush(); |
| 553 | } |
| 554 | } |
| 555 | |
| 556 | void OrcWriter::MergeTo(MicroPartitionWriter *writer) { |
| 557 | auto orc_writer = dynamic_cast<OrcWriter *>(writer); |