From e4f14c8885b4faf8277614c10b9a376a0554085a Mon Sep 17 00:00:00 2001
From: ale <ale@incal.net>
Date: Fri, 29 Dec 2023 20:45:53 +0000
Subject: [PATCH] Allocation optimization

---
 schema/tuples.go | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/schema/tuples.go b/schema/tuples.go
index 322a9aa..6077f08 100644
--- a/schema/tuples.go
+++ b/schema/tuples.go
@@ -82,6 +82,10 @@ func RecordToTuples(record []byte) ([]Tuple, []TypeError, error) {
 		return nil, nil, err
 	}
 
-	tuples, unprocessed := flatten(m, "", nil, nil)
+	// Allocation optimization: assume the incoming record is
+	// flat-ish and preallocate a Tuple slice.
+	tupleBuf := make([]Tuple, 0, len(m))
+
+	tuples, unprocessed := flatten(m, "", tupleBuf, nil)
 	return tuples, unprocessed, nil
 }
-- 
GitLab