Subject Re: Stream BLOBs
Author Roman Rokytskyy
Hi Nickolay,

> Current CVS HEAD of Jaybird uses stream blobs by default.
>
> When long BLOBS are used resulting database cannot be backed up.
> I tested Firebird 2.0 and Firebird 1.5, but I do not see any
> difference in Firebird 1.0 codebase so I expect to see the same
> problems.
>
> GBAK returns the following messages during backup attempt:
> ----------------
> gbak: ERROR: segment buffer length shorter than expected
> gbak: ERROR: gds_$get_segment failed
> gbak: Exiting before completion due to errors
> ----------------

This was also noticed by Ryan Baldwin.

> I think that Jaybird should avoid using stream blobs when used
> against Firebird 1.0 databases.

I will switch back to segmented blobs by default and will add
connection parameter for this. Stream blobs allow seek operation while
segmented do not. I needed seek for Lucene integration, but since
there were no interest in the code, we can safely return to segmented
blobs.

> I think that returning success from isc_get_segment for partially
> read stream blobs would be the correct solution for Firebird 1.5 and
> 2.0.
>
> Suggestions ?

Since this is general problem, I think we should ask also in
firebird-devel list. For me this seems to be ok.

Best regards,
Roman Rokytskyy