Thread: storing large arrays of floats

storing large arrays of floats

From
Kees Kling
Date:
HI

I have to store an array of 50,000 floats in a postgres database. At
firts I tried to store it as float[], but that take s to much time  for
jdbc to convert the data  so that it  can be stored in the database.
Next I tried to store it as byte[] array in a BYTEA column. This worked
ok, but when I inspect the data at the serverside the datasize increased
with a factor 1,5 to 2 and I see a lot of escape(\0) characters. What I
mean to do is storing the bunch of data and retrieving subselections of
the data with the help of Plperl fucntions. Now I can't restore the data
at serverside. What is the clue? Do I have to store the data with
another function as "preparedstatement.setBytes" or must I use another
columntype.

Thanks
Kees Kling

Re: storing large arrays of floats

From
Heikki Linnakangas
Date:
Kees Kling wrote:
> I have to store an array of 50,000 floats in a postgres database. At
> firts I tried to store it as float[], but that take s to much time  for
> jdbc to convert the data  so that it  can be stored in the database.
> Next I tried to store it as byte[] array in a BYTEA column. This worked
> ok, but when I inspect the data at the serverside the datasize increased
> with a factor 1,5 to 2 and I see a lot of escape(\0) characters. What I
> mean to do is storing the bunch of data and retrieving subselections of
> the data with the help of Plperl fucntions. Now I can't restore the data
> at serverside. What is the clue? Do I have to store the data with
> another function as "preparedstatement.setBytes" or must I use another
> columntype.

Sounds like you need to rethink your schema. Instead of using an array,
consider using a child table.

--
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com