From a40e140e98959c418bc76e3ebddff519009bfec8 Mon Sep 17 00:00:00 2001
From: ale <ale@incal.net>
Date: Fri, 29 Dec 2023 20:59:48 +0000
Subject: [PATCH] Fix error in computing rotation deadlines

---
 writer/writer.go | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/writer/writer.go b/writer/writer.go
index fdc8173..3f968ee 100644
--- a/writer/writer.go
+++ b/writer/writer.go
@@ -102,17 +102,12 @@ func NewRotating(src Source, pg *pathgen.Generator, period time.Duration) *Rotat
 }
 
 func (w *RotatingParquetWriter) Write(obj any) error {
-	now := time.Now()
 	w.counter++
 
-	if now.After(w.deadline) || w.counter > maxRecordsPerFile {
+	if time.Now().After(w.deadline) || w.counter > maxRecordsPerFile {
 		if err := w.Reopen(w.schemaHandler); err != nil {
 			return err
 		}
-
-		// Round to period for more accurate alignment.
-		w.deadline = now.Add(w.period).Round(w.period)
-		log.Printf("rotating output, new deadline=%v", w.deadline)
 	}
 
 	return w.ParquetWriter.Write(obj)
@@ -122,7 +117,12 @@ func (w *RotatingParquetWriter) Reopen(schemaHandler *schema.ParquetSchemaHandle
 	if err := w.ParquetWriter.Reopen(schemaHandler); err != nil {
 		return err
 	}
+
 	w.schemaHandler = schemaHandler
 	w.counter = 0
+
+	// Round to period for more accurate alignment.
+	w.deadline = time.Now().Add(w.period).Round(w.period)
+
 	return nil
 }
-- 
GitLab