FirebirdSQL / firebird

Firebird server, client and tools
https://www.firebirdsql.org/
1.23k stars 213 forks source link

Trace: provide ability to use compound patterns in include_filter (like '%from ttt%' - more than one word in it) [CORE4552] #4870

Open firebird-automations opened 10 years ago

firebird-automations commented 10 years ago

Submitted by: @pavel-zotov

The following pattern in trace config for 2.5.3:

include_filter = %from ttt%

-- contains two words and does NOT works as expected: statement like 'select * from ttt' will not displayed in trace log. It *does* work in FB 3.0.

Could this parser feature be backported in 2.5.3 ?

PS. my trace-2.5.3 config file:

enabled true

time_threshold 0 include_filter = %from ttt% connection_id 626 log_statement_finish true

print_plan true print_perf true max_sql_length 16384 max_log_size 9999999999 log_blr_requests true print_blr true log_dyn_requests true print_dyn true

firebird-automations commented 10 years ago

Commented by: @hvlad

Can't reproduce.

Trace include\exclude filters is and always was regexp, so your request is not correct. Sooner of all you mistaken with connection_id or with filter pattern (number of spaces or something like that)

firebird-automations commented 10 years ago

Commented by: @pavel-zotov

Vlad, I can make trace in 2.5 to display output only if add apostroph sign around expression, i.e.:

$ cat tmp_trace_fb25sc.conf <database (%[\\/](%tmp%).fdb)|(%tmp%)> enabled true time_threshold 0 include_filter = '%from ttt%' log_statement_finish true print_perf true max_sql_length 16384 </database> (this DOES work as expected in 2.5, but it requires apostroph signs left- and right-side of expression)

Trace in 3.0 does NOT requires apostrophes:

$ cat tmp_trace_fb30ss.conf database = (%[\\/](%tmp%.fdb)|(%tmp%)) { enabled=true time_threshold=0 include_filter = %from ttt% log_statement_finish=true print_perf=true }

So, the question is now: why this difference exists ? Was this improvement to trace parser in 3.0 or no ?

firebird-automations commented 10 years ago

Commented by: @hvlad

Parser for config files was fully re-written in fb3, yes. So, it could be the reason for behaviour you see.

I suspect that line below:

include_filter =%from ttt%

will also work in fb2.5 as you expected (note absence of spaces before first % and after last %)

firebird-automations commented 10 years ago

Commented by: @pavel-zotov

> I suspect that line below:

> include_filter =%from ttt%

> will also work in fb2.5 as you expected (note absence of spaces before first % and after last %)

I just tried this variant: no space between equelity sign and first percent, no space after last percent. Unfortunately, it does NOT work: no messages in trace log.

PS. SQL> show version; ISQL Version: WI-V2.5.3.26730 Firebird 2.5 Server version: Firebird/linux AMD64 (access method), version "LI-V2.5.3.26790 Firebird 2.5" Firebird/linux AMD64 (remote server), version "LI-V2.5.3.26790 Firebird 2.5/tcp (oel64)/P12" Firebird/x86/Windows NT (remote interface), version "WI-V2.5.3.26730 Firebird 2.5/tcp (csprog)/P12" on disk structure version 11.2