<html>
<head>
</head>
<body>Ah, Actually delta values will probabaly save you some space.
<div><br />
</div>
<div>The coordinates is saved as signed varInt. 1 byte only reaches from -64 to 63.</div>
<div>1 bit is lost in the varInt format signalizing if there is any more bytes</div>
<div>And since it is signed another byte is lost on the positive side.</div>
<div><br />
</div>
<div>So all values outside -64 - 63 will need 2 bytes in the ST_AsTWKB-version but in the agg version many of them will only use 1 byte if the delta value to the point before per axis is between -64 and 63</div>
<div><br />
<br />
2014-08-07 Sandro Santilli wrote:<br />
<br />
On Thu, Aug 07, 2014 at 10:44:40AM +0200, Nicklas Avén wrote:<br />
>> <br />
>> <br />
>> 2014-08-07 Sandro Santilli wrote:<br />
>> <br />
>> On Wed, Aug 06, 2014 at 07:04:34PM +0200, Nicklas Avén wrote:<br />
>> >> On on., 2014-08-06 at 18:40 +0200, Sandro Santilli wrote:<br />
>> >> > Nicklas, I was looking at ST_AsTWKB_agg but I think it's broken.<br />
>> >> > Why would otherwise the output of ST_AsTWKB_agg be smaller than<br />
>> >> > the output of ST_AsTWKB ?<br />
>> >> <br />
>> >> It is possible because the aggregate version uses delta values between<br />
>> >> the points which often gives smaller values to store. <br />
>> ><br />
>> >Is there no separator between records in the output of the aggregator ?<br />
>> >How's it different from collecting the geometries and passing the<br />
>> >collection to ST_AsTWKB ?<br />
>> <br />
>> The differnce is that by using ST_AsTWKBagg you won't loose the individual id:s.<br />
>> If you use ST_Collect it will just be a collection.<br />
><br />
>I requested no IDs, the queries were:<br />
><br />
> ST_AsTWKB (g,0)<br />
> ST_AsTWKBagg(g,0)<br />
><br />
>The dataset I selected (10000 points) have this extent:<br />
><br />
> BOX(-169.499567541294 -79.583924216684,-160.680307442788 -71.3369439435191)<br />
><br />
>I specified 0 as number of digits. This means that any absolute value<br />
>also fits a single byte, right ?<br />
><br />
>So, if IDs are absent in both and delta values fit within one byte in both...<br />
>what else could make 10k points take 60k bytes with the non-aggregate<br />
>and 20k bytes (1/3) with the aggregate call ?<br />
><br />
>--strk;<br />
><br />
>
</div>
</body>
</html>