From 03e968bee83dbab8a135bd47ad380a16732a82f6 Mon Sep 17 00:00:00 2001 From: Andy Arthur Date: Wed, 19 Oct 2022 09:20:32 -0700 Subject: [PATCH] add env var for disable fast fixed-width access --- go/store/val/tuple_descriptor.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/go/store/val/tuple_descriptor.go b/go/store/val/tuple_descriptor.go index dcb638efca..83a2b7cf30 100644 --- a/go/store/val/tuple_descriptor.go +++ b/go/store/val/tuple_descriptor.go @@ -17,6 +17,7 @@ package val import ( "encoding/hex" "fmt" + "os" "strconv" "strings" "time" @@ -26,6 +27,16 @@ import ( "github.com/dolthub/dolt/go/store/hash" ) +func init() { + if v := os.Getenv("DOLT_DISABLE_FIXED_ACCESS"); v != "" { + disableFixedAccess = true + } +} + +// disableFixedAccess disables fast-access optimizations for +// not-null, fixed-width tuple values. See |makeFixedAccess|. +var disableFixedAccess = false + // TupleDesc describes a Tuple set. // Data structures that contain Tuples and algorithms that process Tuples // use a TupleDesc's types to interpret the fields of a Tuple. @@ -73,6 +84,10 @@ func IterAddressFields(td TupleDesc, cb func(int, Type)) { type FixedAccess [][2]ByteSize func makeFixedAccess(types []Type) (acc FixedAccess) { + if disableFixedAccess { + return nil + } + acc = make(FixedAccess, 0, len(types)) off := ByteSize(0)