Skip to content

Commit

Permalink
Improve how non-leaf blob nodes are displayed in dolt show
Browse files Browse the repository at this point in the history
  • Loading branch information
nicktobey committed Aug 2, 2024
1 parent 6978b08 commit 3ee1b18
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 17 deletions.
2 changes: 1 addition & 1 deletion go/store/prolly/message/blob.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ func getBlobValues(msg serial.Message) (values ItemAccess, err error) {
}
if b.TreeLevel() > 0 {
values.bufStart = lookupVectorOffset(blobAddressArrayVOffset, b.Table())
values.bufLen = uint16(b.AddressArrayLength() * uint16Size)
values.bufLen = uint16(b.AddressArrayLength())
values.itemWidth = hash.ByteLen
} else {
values.bufStart = lookupVectorOffset(blobPayloadBytesVOffset, b.Table())
Expand Down
17 changes: 2 additions & 15 deletions go/store/types/serial_message.go
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ func (sm SerialMessage) HumanReadableStringAtIndentationLevel(level int) string
}

func OutputBlobNodeBytes(w *strings.Builder, indentationLevel int, msg serial.Message) error {
keys, values, treeLevel, count, err := message.UnpackFields(msg)
_, values, treeLevel, count, err := message.UnpackFields(msg)
if err != nil {
return err
}
Expand All @@ -328,21 +328,8 @@ func OutputBlobNodeBytes(w *strings.Builder, indentationLevel int, msg serial.Me
}

for i := 0; i < int(count); i++ {
k := keys.GetItem(i, msg)
kt := val.Tuple(k)

w.Write([]byte("\n { key: "))
for j := 0; j < kt.Count(); j++ {
if j > 0 {
w.Write([]byte(", "))
}

w.Write([]byte(hex.EncodeToString(kt.GetField(j))))
}

w.Write([]byte("\n { ref: #"))
ref := hash.New(values.GetItem(i, msg))

w.Write([]byte(" ref: #"))
w.Write([]byte(ref.String()))
w.Write([]byte(" }"))
}
Expand Down
13 changes: 12 additions & 1 deletion integration-tests/bats/show.bats
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ EOF
[[ "$output" =~ "{ key: 01000000 value: #8scr7d6rtnafqovoa7d06em7jkpil9gg, #8arugs9qup4pvpmqbf64lpkm9f6cdv74 }" ]] || false
}

@test "show: blob" {
@test "show: blob leaf" {
dolt sql <<EOF
create table test(pk int primary key, t text, j json);
insert into test values (0, "Hello", "{}"), (1, "World", "[]");
Expand All @@ -258,6 +258,17 @@ EOF
[[ "$output" =~ "Blob - Hello" ]] || false
}

@test "show: blob non-leaf" {
dolt sql <<EOF
create table words (t text);
insert into words values ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas interdum, magna nec lacinia ultrices, nunc urna pretium neque, eu feugiat tortor elit vitae felis. Aliquam laoreet non ex vitae porttitor. Phasellus bibendum felis vel elit ultrices fermentum. Proin eleifend hendrerit auctor. Curabitur non neque lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras ut tincidunt magna. Fusce faucibus eget enim sit amet fringilla. Fusce vitae est quis velit efficitur rutrum iaculis quis lacus. Sed vitae diam id odio maximus interdum id at libero. Suspendisse iaculis facilisis mauris. Sed sagittis libero urna, posuere facilisis dolor porttitor sed. Nulla sed diam in risus sollicitudin blandit. Mauris purus libero, rhoncus vitae turpis ut, luctus rutrum arcu. In porta magna non enim molestie pharetra quis nec sem. Maecenas vehicula neque dolor, ut malesuada leo finibus sit amet. Proin viverra mauris sit amet urna rutrum ullamcorper. Duis hendrerit turpis a massa dapibus consectetur. Nunc posuere faucibus nibh, sed fringilla tellus mollis ac. Aliquam placerat ipsum at velit pretium, id convallis nisi euismod. Curabitur eget euismod ante, non interdum ipsum. Sed quis volutpat lorem, non luctus diam. Sed commodo enim vel nisi ultricies, nec porta magna placerat. Maecenas tristique viverra cursus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras tempus nisl et purus sodales, vitae dignissim mi condimentum. Nullam ut ullamcorper purus. Phasellus malesuada bibendum elit. Mauris justo magna, condimentum id accumsan sit amet, mollis ut nulla. Nullam et lorem sed nulla semper dapibus. Nam quis ipsum a elit sodales ultrices. Praesent convallis ipsum et semper commodo. Donec nec nunc erat. Curabitur ut hendrerit tellus, in lobortis leo. Sed at venenatis lectus. Sed faucibus in odio eu aliquet. Morbi sed enim nisl. Vestibulum gravida magna at lectus ornare, vel porta quam placerat. Fusce ornare, felis vitae sagittis volutpat, nisi ex euismod lorem, ac sollicitudin urna ipsum vitae massa. Cras lacinia mauris velit. Nam et laoreet orci, et porttitor augue. Integer viverra felis vel erat cursus, vel consequat tellus consectetur. Mauris laoreet ut tortor non finibus. Fusce mattis odio suscipit sem elementum, in vehicula nisl dignissim. Phasellus neque ligula, ullamcorper sit amet risus dapibus, tincidunt ornare mauris. Quisque non cursus ante. Nulla facilisi. Aliquam id lacus in tortor semper malesuada. Vestibulum at mattis tellus. Duis placerat tempus libero, sit amet dictum nibh pulvinar molestie. Ut aliquam tellus nec libero semper volutpat. Aenean pretium porttitor ex, non volutpat arcu aliquam non. Vestibulum eget eleifend dui. Nullam mollis, ipsum sit amet iaculis scelerisque, lorem diam eleifend leo, eget lobortis arcu orci a nulla. Morbi non ligula ex. Aliquam ac augue congue, finibus ante at, convallis leo. Vestibulum fermentum hendrerit felis ut ullamcorper. Sed porttitor turpis at justo iaculis aliquam. Praesent hendrerit sit amet justo ut aliquam. Praesent ut ligula placerat mi eleifend aliquam sit amet vel leo. Phasellus vitae arcu a turpis accumsan volutpat. Proin libero purus, dictum nec ullamcorper in, venenatis luctus felis. Sed pharetra, justo nec ornare mattis, neque erat tristique felis, ut finibus massa felis eu erat. In dictum dui nibh, a finibus velit scelerisque at. Aenean lacinia, ex a bibendum gravida, felis enim tincidunt dolor, in tristique eros nunc eu nibh. Nulla facilisi. Donec non risus porttitor, egestas nulla vitae, sollicitudin lorem. Proin sem lectus, fermentum vel dui cursus, mattis tempus nulla. Mauris quis justo urna. In vestibulum erat id lobortis malesuada. Curabitur non velit laoreet, porttitor felis vitae, aliquam magna. Quisque id tempor justo. Suspendisse potenti. Morbi vel ipsum suscipit, aliquam tellus ac, pharetra neque. Suspendisse ultrices, justo pulvinar sodales convallis, mauris risus vulputate erat, nec euismod libero quam at nulla. Curabitur ac suscipit nulla. Maecenas a augue nulla. Ut quis mauris at enim accumsan ultricies. Morbi non pellentesque elit. Proin et arcu ullamcorper, finibus nisi ut, tincidunt justo. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nunc ultrices imperdiet nulla quis tincidunt. Donec pulvinar odio non magna imperdiet, at varius augue efficitur. Suspendisse molestie sapien lacus, in ornare est tincidunt non. Aliquam arcu sem, sagittis ac feugiat at, fermentum quis neque. Pellentesque ut nisl eget nulla lobortis pellentesque semper et felis.");
EOF
run dolt show "#se3b28duf5bpq9e05hasd4b551heqb9q"
[ $status -eq 0 ]
[[ "$output" =~ "{ ref: #0fcaf98hbdt02fb6gullguuv3frnoj7f }" ]] || false
[[ "$output" =~ "{ ref: #4mub3fdl5lm99vd0d4uoake0q4d9rsjj }" ]] || false
}

@test "show: primary index non-leaf" {
dolt sql <<EOF
create table test(pk int primary key);
Expand Down

0 comments on commit 3ee1b18

Please sign in to comment.