On 23/08/2019 07:23, Vlad Khorsun wrote: > 20.08.2019 4:26, Adriano dos Santos Fernandes wrote: >> Hi! >> >> When linking optimized static build of re2 with Firebird > > Adriano, could you explain, please, - why you choose RE2 for > re-implemenation of > regexp support ? Why not ICU, for example ? There are more free > implemenations (such > as PCRE, boost) but ICU is already used by the Firebird and it seems > logical to use > already known\used library. >
Because ICU, boost (regex and xpressive), PCRE and almost every other regex engine are susceptible to the same problems we had on my own coded version: some expressions produces exponential time complexity that kills engine even with small texts being matched. On the other hand, RE2 is based on different theory. Complexity is linear based on text length. > Also, could you confirm that you implemented regexp parser to > re-write user expressions > written using SQL-regexp dialect to the RE2-dialect, correct ? > Yes, of course. It only introduced a limitation where constrained repetitions {x,n} could not be greater than 1000. As our current version is not good (performance) with it, it should not be a real problem. Adriano Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel