You forwarded it to firebird-support, not to firebird-devel.

Mark

On 24-6-2015 12:12, liviuslivius [email protected] 
[firebird-support] wrote:
>
>
>     Hi,
>     why concating blob consume memory and not leave it until transaction
>     end?
>     simple sample
>     SET TERM ^ ;
>     CREATE PROCEDURE TEST_BLOB_CONCAT
>       ( A BLOB SUB_TYPE TEXT, ILE INTEGER )
>     RETURNS
>       ( B BLOB SUB_TYPE TEXT )
>     AS
>     DECLARE VARIABLE VAR_I INTEGER;
>     BEGIN
>        VAR_I = 0;
>        B = 'ABC';
>        WHILE (VAR_I<ILE) DO
>          BEGIN
>            B = B || A;
>            VAR_I = VAR_I + 1;
>          END
>        SUSPEND;
>     END^
>     SET TERM ; ^
>     /*----------------------------------------------------*/
>     SELECT * FROM TEST_BLOB_CONCAT('', 5000)
>     result 'ABC'
>     consume memory
>     ________used: 12208
>     _________max: 38112
>     _____allocated: 65536
>     _allocatedmax:  65536
>     /*----------------------------------------------------*/
>     SELECT * FROM TEST_BLOB_CONCAT('', 500000)
>     result 'ABC'
>     consume memory
>     ________used: 12208
>     _________max: 2338208
>     _____allocated: 2359296
>     _allocatedmax:  2359296
>     /*----------------------------------------------------*/
>     SELECT * FROM TEST_BLOB_CONCAT('', 50000000)
>     result 'ABC'
>     consume memory all memory from operating system!
>     It looks like some temp buffers are created and not freed until
>     transaction end
>     Is this bug reported or i should report it to the tracker?
>     regards,
>     Karol Bieniaszewski
>     
> ------------------------------------------------------------------------------------------------------------
>     http://tracker.firebirdsql.org/browse/CORE-4671
>     Helen
>     
> ------------------------------------------------------------------------------------------------------------
>     Hi Hellen,
>     it looks like bug is not fixed only minimized?
>     I test this with current FB3 snapshot.
>     This fix do only something like this
>     previous before fix
>     1. transaction start
>     2. Before execute statement memory low
>     3. memory increases during statement execution
>     SELECT * FROM TEST_BLOB_CONCAT('', 50000000)
>     4. after statement is finished memory is still the same
>     5. commit transaction ->>> memory relased
>     after fix
>     1. transaction start
>     2. Before execute statement memory low
>     3. memory increases during statement execution
>     SELECT * FROM TEST_BLOB_CONCAT('', 50000000)
>     4. after statement ->>> memory relased
>     5. commit transaction
>     I see that this fix - not fix reason of the bug - only minimize it?
>     Should i post this as new bug into the tracker or put comment there?
>     regards,
>     Karol Bieniaszewski
>
> I resend this from support group as Helen said.
> Why temp blobs are not freed immediately and consume resources?
> regards,
> Karol Bieniaszewski
>
>
> 


-- 
Mark Rotteveel

Reply via email to