You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In copy_blob it allocates a buffer of size input->blb_max_segment, but I think it does not make sense in the case of stream blobs.
BLOB_APPEND creates stream blobs, so here is test:
execute block
as
declare b1 blob sub_type text character set unicode_fss;
declare b2 blob sub_type text character set utf8;
declare i integer = 0;
begin
while (i < 65000) do
begin
b1 = blob_append(b1, 'a');
i = i + 1;
end
i = 0;
while (i < 800) do
begin
-- copy_blob
b2 = b1;
i = i + 1;
end
end!
In this test data is appended in blob character by character so input->blb_max_segment should be 1.
The slow down happens due to this and also due to the second problem.
Calls to blob filters are wrapped with START_CHECK_FOR_EXCEPTIONS / END_CHECK_FOR_EXCEPTIONS. At least in Linux, this is very slow.
And it does not make sense to wrap builtin filters that is inside same engine library.
I propose to disable it in the case of builtin filters.
So here is some timings (in seconds) with release build in Linux/clang++:
input->blb_max_segment
, but I think it does not make sense in the case of stream blobs.BLOB_APPEND
creates stream blobs, so here is test:In this test data is appended in blob character by character so
input->blb_max_segment
should be 1.The slow down happens due to this and also due to the second problem.
START_CHECK_FOR_EXCEPTIONS
/END_CHECK_FOR_EXCEPTIONS
. At least in Linux, this is very slow.And it does not make sense to wrap builtin filters that is inside same engine library.
I propose to disable it in the case of builtin filters.
So here is some timings (in seconds) with release build in Linux/clang++:
The text was updated successfully, but these errors were encountered: