From b36f73c66d4d4b447c1b29c9cbcd61cf36ec33ad Mon Sep 17 00:00:00 2001 From: Nuno Cruces Date: Mon, 17 Mar 2025 12:16:19 +0000 Subject: [PATCH] Optimize. --- stmt.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/stmt.go b/stmt.go index 4e17d10..2581eeb 100644 --- a/stmt.go +++ b/stmt.go @@ -663,17 +663,21 @@ func (s *Stmt) Columns(dest ...any) error { case byte(NULL): dest[i] = nil default: - ptr := util.Read32[ptr_t](s.c.mod, dataPtr+0) - if ptr == 0 { - dest[i] = []byte{} - continue - } len := util.Read32[int32](s.c.mod, dataPtr+4) - buf := util.View(s.c.mod, ptr, int64(len)) - if types[i] == byte(TEXT) { - dest[i] = string(buf) + if len != 0 { + ptr := util.Read32[ptr_t](s.c.mod, dataPtr) + buf := util.View(s.c.mod, ptr, int64(len)) + if types[i] == byte(TEXT) { + dest[i] = string(buf) + } else { + dest[i] = buf + } } else { - dest[i] = buf + if types[i] == byte(TEXT) { + dest[i] = "" + } else { + dest[i] = []byte{} + } } } dataPtr += 8