Hello, hackers.

In this patch I've implemented support for different storage types for cubes. 
Now it supports float8, float4, int4, int2, int1. Type stored in the header of 
each cube, one for all coordinates. So for cubes with int1 coordinates it can 
save up to 8x disk space. Typed cubes can be created in two ways:

1) Via cube_suffix() functions, where suffix can be "f4", "i4", "i2", "i1", and 
arguments are two or one numbers or arrays, i.e.

# select cube_i1(1,2) as c;
     c      
------------
 (1),(2):i1

# select cube_f4(array[1,2,3], array[5,6,7]) as c;
           c            
------------------------
 (1, 2, 3),(5, 6, 7):f4

2) Via modificator in the end of string that will be casted to cube, i.e.

# select '(1,2,3):i2'::cube as c;
      c       
--------------
 (1, 2, 3):i2

When no modificator given float8 will be used by default. Old-style cubes 
without type in header also treated as float8 for backward compatibility.

This patch changes a lot of things in code, so it interfere with others patches 
to the cube extension. I will update this patch, if other patches will be 
accepted to commit.

Attachment: types_cumulative.diff
Description: Binary data

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to