Created
February 17, 2022 02:06
-
-
Save jpivarski/2301a57135326d36dc9a6f36a13f76c1 to your computer and use it in GitHub Desktop.
Description of the structure of a ROOT TBasket for the kerchunk meeting
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |
<svg | |
xmlns:dc="http://purl.org/dc/elements/1.1/" | |
xmlns:cc="http://creativecommons.org/ns#" | |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |
xmlns:svg="http://www.w3.org/2000/svg" | |
xmlns="http://www.w3.org/2000/svg" | |
xmlns:xlink="http://www.w3.org/1999/xlink" | |
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |
width="297mm" | |
height="210mm" | |
viewBox="0 0 297 210" | |
version="1.1" | |
id="svg8" | |
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" | |
sodipodi:docname="kerchunk-root-buffer-layout.svg"> | |
<defs | |
id="defs2"> | |
<linearGradient | |
inkscape:collect="always" | |
id="linearGradient2476"> | |
<stop | |
style="stop-color:#ffcc00;stop-opacity:1" | |
offset="0" | |
id="stop2472" /> | |
<stop | |
id="stop2486" | |
offset="0.24783772" | |
style="stop-color:#ffe789;stop-opacity:1;" /> | |
<stop | |
style="stop-color:#ffffff;stop-opacity:1" | |
offset="1" | |
id="stop2474" /> | |
</linearGradient> | |
<marker | |
inkscape:isstock="true" | |
style="overflow:visible;" | |
id="marker1622" | |
refX="0.0" | |
refY="0.0" | |
orient="auto" | |
inkscape:stockid="Arrow1Mend"> | |
<path | |
transform="scale(0.4) rotate(180) translate(10,0)" | |
style="fill-rule:evenodd;stroke:#808080;stroke-width:1pt;stroke-opacity:1;fill:#808080;fill-opacity:1" | |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " | |
id="path1620" /> | |
</marker> | |
<marker | |
inkscape:stockid="Arrow1Mend" | |
orient="auto" | |
refY="0.0" | |
refX="0.0" | |
id="Arrow1Mend" | |
style="overflow:visible;" | |
inkscape:isstock="true" | |
inkscape:collect="always"> | |
<path | |
id="path877" | |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " | |
style="fill-rule:evenodd;stroke:#808080;stroke-width:1pt;stroke-opacity:1;fill:#808080;fill-opacity:1" | |
transform="scale(0.4) rotate(180) translate(10,0)" /> | |
</marker> | |
<linearGradient | |
inkscape:collect="always" | |
xlink:href="#linearGradient2476" | |
id="linearGradient2478" | |
x1="31.537804" | |
y1="170.10342" | |
x2="202.05576" | |
y2="182.93236" | |
gradientUnits="userSpaceOnUse" | |
gradientTransform="translate(0,-1.0509556)" /> | |
<linearGradient | |
inkscape:collect="always" | |
xlink:href="#linearGradient2476" | |
id="linearGradient2490" | |
gradientUnits="userSpaceOnUse" | |
x1="31.537804" | |
y1="170.10342" | |
x2="202.05576" | |
y2="182.93236" | |
gradientTransform="translate(170.51795,-1.0509556)" /> | |
</defs> | |
<sodipodi:namedview | |
id="base" | |
pagecolor="#ffffff" | |
bordercolor="#666666" | |
borderopacity="1.0" | |
inkscape:pageopacity="0.0" | |
inkscape:pageshadow="2" | |
inkscape:zoom="0.98994949" | |
inkscape:cx="486.58718" | |
inkscape:cy="403.28846" | |
inkscape:document-units="mm" | |
inkscape:current-layer="layer1" | |
showgrid="false" | |
inkscape:window-width="1920" | |
inkscape:window-height="1043" | |
inkscape:window-x="1920" | |
inkscape:window-y="0" | |
inkscape:window-maximized="1" | |
inkscape:object-nodes="true" | |
inkscape:snap-midpoints="false" | |
inkscape:object-paths="false" /> | |
<metadata | |
id="metadata5"> | |
<rdf:RDF> | |
<cc:Work | |
rdf:about=""> | |
<dc:format>image/svg+xml</dc:format> | |
<dc:type | |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |
<dc:title></dc:title> | |
</cc:Work> | |
</rdf:RDF> | |
</metadata> | |
<g | |
inkscape:label="Layer 1" | |
inkscape:groupmode="layer" | |
id="layer1" | |
transform="translate(0,-87)"> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
x="7.0188484" | |
y="102.70043" | |
id="text836"><tspan | |
sodipodi:role="line" | |
id="tspan834" | |
x="7.0188484" | |
y="107.84245" | |
style="stroke-width:0.26458332" /></text> | |
<g | |
id="g2793" | |
transform="translate(-6.8791667,-7.4083495)"> | |
<text | |
id="text840" | |
y="107.2558" | |
x="12.561667" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
xml:space="preserve"><tspan | |
style="stroke-width:0.26458332" | |
y="107.2558" | |
x="12.561667" | |
id="tspan838" | |
sodipodi:role="line">(A) After running through a bunch of headers, we get seek positions of "raw-ish" buffers:</tspan></text> | |
<g | |
transform="translate(0,1.9868983)" | |
id="g2518"> | |
<rect | |
style="opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
id="rect856" | |
width="274.75305" | |
height="12.82893" | |
x="11.759859" | |
y="128.29921" /> | |
<rect | |
style="opacity:1;vector-effect:none;fill:#ffeeaa;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
id="rect842" | |
width="235.19719" | |
height="12.828938" | |
x="31.537804" | |
y="128.29921" /> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
x="38.219543" | |
y="137.08098" | |
id="text846"><tspan | |
sodipodi:role="line" | |
id="tspan844" | |
x="38.219543" | |
y="137.08098" | |
style="stroke-width:0.26458332">TBasket data!</tspan></text> | |
<path | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
d="M 31.537804,128.29921 H 11.759859" | |
id="path848" | |
inkscape:connector-curvature="0" /> | |
<path | |
inkscape:connector-curvature="0" | |
id="path850" | |
d="M 31.537804,141.12814 H 11.759859" | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |
<path | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
d="M 286.51293,141.12814 H 266.73499" | |
id="path852" | |
inkscape:connector-curvature="0" /> | |
<path | |
inkscape:connector-curvature="0" | |
id="path854" | |
d="M 286.51293,128.29921 H 266.73499" | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |
<text | |
id="text860" | |
y="137.08098" | |
x="14.057047" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
xml:space="preserve"><tspan | |
style="stroke-width:0.26458332" | |
y="137.08098" | |
x="14.057047" | |
id="tspan858" | |
sodipodi:role="line">TKey</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
x="271.56226" | |
y="137.08098" | |
id="text864"><tspan | |
sodipodi:role="line" | |
id="tspan862" | |
x="271.56226" | |
y="137.08098" | |
style="stroke-width:0.26458332">???</tspan></text> | |
<path | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#808080;stroke-width:0.52899998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow1Mend)" | |
d="m 31.537804,117.60841 v 9.10329" | |
id="path866" | |
inkscape:connector-curvature="0" | |
sodipodi:nodetypes="cc" /> | |
<path | |
sodipodi:nodetypes="cc" | |
inkscape:connector-curvature="0" | |
id="path1618" | |
d="m 266.73499,117.60841 v 9.10329" | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#808080;stroke-width:0.52899998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1622)" /> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
x="24.046789" | |
y="115.48637" | |
id="text2370"><tspan | |
sodipodi:role="line" | |
id="tspan2368" | |
x="24.046789" | |
y="115.48637" | |
style="fill:#808080;stroke-width:0.26458332">start</tspan></text> | |
<text | |
id="text2398" | |
y="115.48637" | |
x="259.87961" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
xml:space="preserve"><tspan | |
style="fill:#808080;stroke-width:0.26458332" | |
y="115.48637" | |
x="259.87961" | |
id="tspan2396" | |
sodipodi:role="line">stop</tspan></text> | |
</g> | |
</g> | |
<g | |
id="g2770" | |
transform="translate(-6.8791667,0.56213174)"> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
x="12.561667" | |
y="153.68921" | |
id="text2462"><tspan | |
sodipodi:role="line" | |
id="tspan2460" | |
x="12.561667" | |
y="153.68921" | |
style="stroke-width:0.26458332">(B) This might consist of one compressed block or several. <tspan | |
style="fill:#808080" | |
id="tspan2835">(They add up to a known size.)</tspan></tspan></text> | |
<g | |
id="g2855"> | |
<rect | |
style="opacity:1;vector-effect:none;fill:url(#linearGradient2478);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
id="rect2470" | |
width="170.51796" | |
height="12.828934" | |
x="31.537804" | |
y="169.05247" /> | |
<text | |
id="text2468" | |
y="177.83424" | |
x="38.219543" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
xml:space="preserve"><tspan | |
style="stroke-width:0.26458332" | |
y="177.83424" | |
x="38.219543" | |
id="tspan2466" | |
sodipodi:role="line">First block</tspan></text> | |
<rect | |
y="169.05247" | |
x="202.05576" | |
height="12.828949" | |
width="64.67923" | |
id="rect2488" | |
style="opacity:1;vector-effect:none;fill:url(#linearGradient2490);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
x="208.7375" | |
y="177.83424" | |
id="text2496"><tspan | |
sodipodi:role="line" | |
id="tspan2494" | |
x="208.7375" | |
y="177.83424" | |
style="stroke-width:0.26458332">Second block</tspan></text> | |
<text | |
id="text2839" | |
y="164.27255" | |
x="39.495022" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
xml:space="preserve"><tspan | |
style="fill:#808080;stroke-width:0.26458332" | |
y="164.27255" | |
x="39.495022" | |
id="tspan2837" | |
sodipodi:role="line">total compressed = fNbytes ‒ fKeylen; total uncompressed = fObjlen</tspan></text> | |
</g> | |
</g> | |
<g | |
id="g2759" | |
transform="translate(-6.8791667,15.264136)"> | |
<text | |
id="text2522" | |
y="185.72404" | |
x="12.561667" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
xml:space="preserve"><tspan | |
style="stroke-width:0.26458332" | |
y="185.72404" | |
x="12.561667" | |
id="tspan2520" | |
sodipodi:role="line">(C) Each block has a 9 or 17-byte header describing compression algorithm and level.</tspan></text> | |
<g | |
transform="translate(0,-18.482788)" | |
id="g2703"> | |
<rect | |
y="232.01601" | |
x="31.537804" | |
height="12.828934" | |
width="170.51796" | |
id="rect2524" | |
style="opacity:1;vector-effect:none;fill:#ffeeaa;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |
<rect | |
style="opacity:1;vector-effect:none;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
id="rect2572" | |
width="6.3500009" | |
height="12.82893" | |
x="44.237808" | |
y="232.01601" /> | |
<rect | |
style="opacity:1;vector-effect:none;fill:#ffd42a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
id="rect2574" | |
width="6.3500009" | |
height="12.82893" | |
x="37.887802" | |
y="232.01601" /> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
x="39.687504" | |
y="214.79018" | |
id="text2536"><tspan | |
sodipodi:role="line" | |
id="tspan2534" | |
x="39.687504" | |
y="214.79018" | |
style="stroke-width:0.26458332">3-byte type<tspan | |
style="fill:#808080" | |
id="tspan2795"> (b"ZL" for zlib, b"XZ" for lzma, b"L4" for lz4, b"ZS" for zstd)</tspan></tspan></text> | |
<text | |
id="text2548" | |
y="221.66933" | |
x="46.037506" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
xml:space="preserve"><tspan | |
style="stroke-width:0.26458332" | |
y="221.66933" | |
x="46.037506" | |
id="tspan2546" | |
sodipodi:role="line">3-byte compressed size</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
x="52.387508" | |
y="228.54848" | |
id="text2552"><tspan | |
sodipodi:role="line" | |
id="tspan2550" | |
x="52.387508" | |
y="228.54848" | |
style="stroke-width:0.26458332">3-byte uncompressed size</tspan></text> | |
<rect | |
style="opacity:1;vector-effect:none;fill:#ffcc00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
id="rect2576" | |
width="6.3500013" | |
height="12.828923" | |
x="31.537804" | |
y="232.01601" /> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
x="57.269547" | |
y="240.79778" | |
id="text2562"><tspan | |
sodipodi:role="line" | |
id="tspan2560" | |
x="57.269547" | |
y="240.79778" | |
style="stroke-width:0.26458332">Compressed data</tspan></text> | |
<path | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
d="m 34.712806,232.016 v -19.70703 h 3.902271" | |
id="path2566" | |
inkscape:connector-curvature="0" | |
sodipodi:nodetypes="ccc" /> | |
<path | |
sodipodi:nodetypes="ccc" | |
inkscape:connector-curvature="0" | |
id="path2568" | |
d="m 41.062807,232.07981 v -12.89166 h 3.902271" | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |
<path | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
d="m 47.412808,232.14361 v -6.07628 h 3.902271" | |
id="path2570" | |
inkscape:connector-curvature="0" | |
sodipodi:nodetypes="ccc" /> | |
<rect | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
id="rect2578" | |
width="170.51796" | |
height="12.828934" | |
x="31.537804" | |
y="232.01601" /> | |
<path | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
d="m 37.887805,232.016 v 12.82893" | |
id="path2528" | |
inkscape:connector-curvature="0" /> | |
<path | |
inkscape:connector-curvature="0" | |
id="path2554" | |
d="m 44.237806,232.016 v 12.82893" | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |
<path | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
d="m 50.587807,232.016 v 12.82893" | |
id="path2556" | |
inkscape:connector-curvature="0" /> | |
<text | |
id="text2602" | |
y="228.54848" | |
x="141.81676" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
xml:space="preserve"><tspan | |
style="fill:#808080;stroke-width:0.26458332" | |
y="228.54848" | |
x="141.81676" | |
id="tspan2600" | |
sodipodi:role="line">(b"L4" additionally has an 8-byte checksum)</tspan></text> | |
</g> | |
</g> | |
<g | |
id="g2733" | |
transform="translate(-6.8791667,-1.5875)"> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
x="12.561667" | |
y="261.75842" | |
id="text2598"><tspan | |
sodipodi:role="line" | |
id="tspan2596" | |
x="12.561667" | |
y="261.75842" | |
style="stroke-width:0.26458332">(D) All data types except flat-numeric have entry byte-offsets (relative to the TKey).</tspan></text> | |
<g | |
id="g2680"> | |
<rect | |
style="opacity:1;vector-effect:none;fill:#ffeeaa;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
id="rect2589" | |
width="151.46796" | |
height="12.828934" | |
x="50.587811" | |
y="275.93686" /> | |
<rect | |
style="opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
id="rect2635" | |
width="7.40835" | |
height="12.828919" | |
x="144.9057" | |
y="275.93686" /> | |
<rect | |
style="opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
id="rect2642" | |
width="7.4083509" | |
height="12.828919" | |
x="194.64742" | |
y="275.93686" /> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
x="57.26955" | |
y="284.71863" | |
id="text2623"><tspan | |
sodipodi:role="line" | |
id="tspan2621" | |
x="57.26955" | |
y="284.71863" | |
style="stroke-width:0.26458332">data</tspan></text> | |
<text | |
id="text2631" | |
y="284.71863" | |
x="158.99579" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
xml:space="preserve"><tspan | |
style="stroke-width:0.26458332" | |
y="284.71863" | |
x="158.99579" | |
id="tspan2629" | |
sodipodi:role="line">offsets</tspan></text> | |
<path | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
d="m 194.64742,275.93683 v 12.82892" | |
id="path2604" | |
inkscape:connector-curvature="0" /> | |
<path | |
inkscape:connector-curvature="0" | |
id="path2606" | |
d="m 152.31406,275.93683 v 12.82892" | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |
<path | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
d="m 144.90571,275.93683 v 12.82892" | |
id="path2608" | |
inkscape:connector-curvature="0" /> | |
<rect | |
y="275.93686" | |
x="50.587811" | |
height="12.828934" | |
width="151.46796" | |
id="rect2649" | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |
<text | |
id="text2653" | |
y="272.34174" | |
x="153.58453" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
xml:space="preserve"><tspan | |
style="stroke-width:0.26458332" | |
y="272.34174" | |
x="153.58453" | |
id="tspan2651" | |
sodipodi:role="line">4 bytes</tspan></text> | |
<path | |
sodipodi:nodetypes="ccc" | |
inkscape:connector-curvature="0" | |
id="path2655" | |
d="m 148.6099,275.93683 v -6.07628 h 3.90227" | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
x="203.32617" | |
y="272.34174" | |
id="text2659"><tspan | |
sodipodi:role="line" | |
id="tspan2657" | |
x="203.32617" | |
y="272.34174" | |
style="stroke-width:0.26458332">4 bytes</tspan></text> | |
<path | |
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |
d="m 198.35161,275.93683 v -6.07628 h 3.90227" | |
id="path2661" | |
inkscape:connector-curvature="0" | |
sodipodi:nodetypes="ccc" /> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.10000002;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.26458332" | |
x="235.68336" | |
y="277.11816" | |
id="text2799"><tspan | |
sodipodi:role="line" | |
id="tspan2797" | |
x="235.68336" | |
y="277.11816" | |
style="fill:#808080;stroke-width:0.26458332">#offsets = #entries</tspan><tspan | |
sodipodi:role="line" | |
x="235.68336" | |
y="284.10315" | |
style="fill:#808080;stroke-width:0.26458332" | |
id="tspan2801">len(data) =</tspan><tspan | |
sodipodi:role="line" | |
x="235.68336" | |
y="291.08817" | |
style="fill:#808080;stroke-width:0.26458332" | |
id="tspan2803"> fLast ‒ fKeylen</tspan></text> | |
</g> | |
</g> | |
</g> | |
</svg> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment