On Tue, Sep 4, 2018 at 4:11 PM Keith Medcalf <kmedc...@dessus.com> wrote:

>
> On Tuesday, 4 September, 2018 14:00, Clemens Ladisch <clem...@ladisch.de>
> wrote:
>
> >Keith Medcalf wrote:
> >> 6)  If the column type is SQLITE_BLOB
> >>     a)  Retrieve the column value pointer using column_blob
> >>     b)  If the returned pointer is NULL, then an error has occurred
>
> >"The return value from sqlite3_column_blob() for a zero-length BLOB
> >is a NULL pointer."
>
> Hmmm.  Yes.
>
> " The values returned by sqlite3_column_bytes() and
> sqlite3_column_bytes16() do not include the zero terminators at the end of
> the string. For clarity: the values returned by sqlite3_column_bytes() and
> sqlite3_column_bytes16() are the number of bytes in the string, not the
> number of characters.
>
> Strings returned by sqlite3_column_text() and sqlite3_column_text16(),
> even empty strings, are always zero-terminated. The return value from
> sqlite3_column_blob() for a zero-length BLOB is a NULL pointer. "
>
> So, an empty string returns a valid pointer but the bytes count is zero.
>
> For an empty blob, the returned pointer is NULL and the bytes count is
> zero.  So, for column_text the test for a NULL pointer will indicate an
> error.
>
> In the case of a BLOB if a NULL pointer is returned the error code must be
> retrieved and then if and only if the bytes counter is greater than 0 is
> the error valid.
>
> Does this mean that if you are retrieving the value of a blob via the
> colmn_blob interface you should ask for the column_bytes first and only
> expect a NULL pointer if the bytes count is zero?
>
> This is a great question.  My only guess is that you should always check
the byte count first, and if it's zero, you shouldn't even request the
blob.  Is that the answer?


> ---
> The fact that there's a Highway to Hell but only a Stairway to Heaven says
> a lot about anticipated traffic volume.
>
>
>
>
>
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to