Hi! When I created SIMILAR TO predicate, I research for libraries to do the real work and found no good alternative.
PgSQL were using (AFAIR) Henry Spencer library, but its (PgSQL) SIMILAR TO were definitively non SQL standard. We needed a library to work with 1, 2 or 4 byte-length characters, actually their canonical representations of collations. So as no suitable library was found, I wrote myself one based on a CodeProject library. This library was simple and recursive, hence it had problems with BLOBs. Then I managed to recreate it with non-recursive code. This library is trick. First of all, I'm not experienced in regex matching. Bugs on it are difficult to fix, and there are cases which it's really slow (I didn't compared with others libraries, which may also be slow with bomb expressions). I'd want to replace it with something capable of working as we need, when customized (not editing their code). At a first look, boost.regex is the library who can do it. It's templatized and works with iterators and traits for customization. It has integration with ICU and MFC strings, so this is useful to understand how to customize it. Understand and customize it will require time, however. And I do not want to lost time if it's going to be objected because: - It's external code - It's boost - It's a library which uses C++ as C++, i.e., uses the std library - Not only it's internal (like ICU) uses C++, but its interface too So what do you think on include such type of library in Firebird? Adriano ------------------------------------------------------------------------------ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel