Skip to content

Commit 67fa3b6

Browse files
committed
Add new 128-bit types to the record layout optimization attempted by gbak
1 parent 4af373f commit 67fa3b6

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/burp/backup.epp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1940,6 +1940,7 @@ void put_relation( burp_rel* relation)
19401940
burp_fld* unaligned = NULL;
19411941
burp_fld* aligned4 = NULL;
19421942
burp_fld* aligned8 = NULL;
1943+
burp_fld* aligned16 = NULL;
19431944

19441945
burp_fld* fields = get_fields(relation);
19451946

@@ -1951,7 +1952,13 @@ void put_relation( burp_rel* relation)
19511952
USHORT l = field->fld_length;
19521953
if (field->fld_type == blr_varying)
19531954
l += sizeof(USHORT);
1954-
if (!(l & 7))
1955+
1956+
if (!(l & 15))
1957+
{
1958+
field->fld_next = aligned16;
1959+
aligned16 = field;
1960+
}
1961+
else if (!(l & 7))
19551962
{
19561963
field->fld_next = aligned8;
19571964
aligned8 = field;
@@ -2005,6 +2012,13 @@ void put_relation( burp_rel* relation)
20052012
relation->rel_fields = field;
20062013
}
20072014

2015+
while ((field = aligned16))
2016+
{
2017+
aligned16 = field->fld_next;
2018+
field->fld_next = relation->rel_fields;
2019+
relation->rel_fields = field;
2020+
}
2021+
20082022
// Now write the fields in what will become physical backup order
20092023

20102024
for (field = relation->rel_fields; field; field = field->fld_next)

0 commit comments

Comments
 (0)