On 16/07/2021 06:25, Vlad Khorsun wrote:
> 15.07.2021 22:34, Adriano dos Santos Fernandes wrote:
>> Hi!
>>
>> Currently it's possible to set TraceDSQL config parameter in dev build
>> to have formatted statement BLR in firebird.log, but that is not
>> sufficient for automated tests.
>>
>> I want to add facility to make it possible to applications request
>> individual statements BLR for debug and test purposes (also in prod
>> build).
>>
>> Here is the design I would go:
>>
>> interface Statement
>> {
>>     const uint PREPARE_PRESERVE_BLR = 0x80;
>> }
>>
>> #define isc_info_sql_blr_bytes 31
>> #define isc_info_sql_blr_text 32
>>
>> Statements prepared with PREPARE_PRESERVE_BLR would be usable with
>> getInfo and isc_info_sql_blr_*.
>>
>> isc_info_sql_blr_bytes retrieves raw BLR bytes and isc_info_sql_blr_text
>> retrieves formatted BLR as the BLOB filter/TraceDSQL.
>>
>> ISQL will have SET BLR_DISPLAY OFF/ON/ONLY. ONLY will make only
>> prepare/display without execution.
>>
>> ISQL would use isc_info_sql_blr_text and retrieves already formatted
>> data ready for display.
>>
>> That would be for master and v4.
>>
>> Comments?
> 
>   I like it. Not sure how it will handle non-DML statements, but it is
> tool for those who understand how and why to use it.
> 
> Regards,
> Vlad
> 
> PS same way to get dsql\jrd parse tree ? :)
> 

Instead of isc_info_sql_blr_bytes/isc_info_sql_blr_text, we can add
single top level info code with sub code for raw/blr / dsql/jrd parse trees.

We need to adjust ISQL SET BLR_DISPLAY to some other generic name and
allow turning each of this on/off.

We may call this facility as something like "internal execution path".


Adriano


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to