Hi,
I've just been working on the first stages of supporting blobs with
firebird (I've noticed that most drivers don't seem to support blobs at
all, however firebird stores table and column descriptions within blobs
so in order to support them we need blob suppport).
The firebird blob calls require repeated calls to isc_get_segment which
reads the blob (in chunks of specified size) into memory, whereby it
isn't possible to scroll backwards again. This would probably work well
with Blob::getBinaryStream() -- for the moment I've only implemented
getBytes() though where we read the whole blob into memory on request.
For smaller blobs I guess it'd be fine to read all data into memory in
such a fashion, for larger blobs this isn't satisfactory but then
hopefully an Input stream would be used anyway? (I've also found
BlobHelper within connectivity which in fact just wraps round a Sequence
-- I could essentially modify the firebird blob to extend that -- most
of the code in my Blob implementation is just to do with loading the
blob from the database, whereas BlobHelper implements the remaining
methods.) I haven't managed to sucessfully find any usage of Blob within
LO though, so I guess this isn't actually particularly important?
Cheers,
Andrzej
Context
- Firbird / Blob support · Andrzej J. R. Hunt
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.