Subject RE: [firebird-support] invalid BLOB ID - 335544329
Author Alan McDonald
> > Prior to v2.1, SUBSTRING(BLOB) returned a varchar, but now it returns
> a
> > temporary blob. So I believe the blob contents is actually fetched by
> > the client via the blob ID. Could it be possible that it's done after
> a
> > transaction commit, for example?
>
> oh, I didn't realise that. So this means I've lost the performance
> enhancement I thought I had with subtring. I'll have to look in the
> monitor
> again to see what the process is.


that's weird Dmitry, I don't see the blob IDs coming over the SQL monitor,
and then being retrieved. I only see the varchar coming back. Whereas on SQL
where I AM asking fore the blob and not substring, I see the BLOB ID, and
then the Blob contents
e.g.
ERSJOBCOMMENTS.ID = 1609071
ERSJOBCOMMENTS.CODE = 'M'
ERSJOBCOMMENTS.COMMENT = BLOB ID ( 171, 3059077 ) ]
or
ERSJOBCOMMENTS.FKTYPE = 0
ERSJOBCOMMENTS.CODE[CODE] = ''
[SUBCOMMENT] = BLOB ID ( 0, 42 )

whereas the view just comes back as a string.
If I filter the monitor on just blob traffic, I get this sort of chatter
when I issue a query with blob included:
/*---
OPEN BLOB 2 HANDLE 0
BLOB ID 137, 11079
----*/
/*---
GET SEGMENT BLOB HANDLE 86
SEGMENT SIZE = 12
----*/
/*---
CLOSE BLOB HANDLE 86
----*/
/*---
OPEN BLOB 2 HANDLE 0
BLOB ID 137, 2528667
----*/
/*---
GET SEGMENT BLOB HANDLE 87
SEGMENT SIZE = 7

but when I query the view with substring, I get no such blob chatter.
Alan