| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | | |
fixes failures of func_regexp_pcre
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Caused by 2fcd8c12522. It used the documented pcre API
-pcre_exec(NULL, NULL, NULL, -999, -999, 0, NULL, 0)
to calculate the pcre stack frame size. Unfortunately, modern compilers
broke it by cloning and inlining pcre match() function. 2fcd8c12522
tried to workaround it by setting the stack frame size to at least 500.
It didn't work, 500 is not a universal constant.
Now we fix our copy of pcre to not inline or clone match() - so that
stack frame detection would work again - and detect at cmake time
whether system pcre is broken or usable.
Also use stack, not (much slower) malloc in bundled pcre, unless on Windows
|
|\ \ \
| |/ / |
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | | |
apparently it uses a smaller per-thread stack
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
'pcre_exec: recursion limit of 100 exceeded' from regexp"
1. use Regexp_processor_pcre::set_recursion_limit() to set the
recursion limit depending on the current available stack size
2. make pcre stack frame to be estimated no less than 500 bytes.
sometimes pcre estimates it too low, even though the manual
says 500+16 bytes (it was estimated only 188 for me, actual
frame size was 512).
3. do it for embedded too
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
and
MDEV-13144 regexp on views - crashed mariadb server
implement Item_func_regex::build_clone()
|
|\ \ \
| |/ /
| | |
| | | |
Replace have_innodb_zip.inc with innodb_page_size_small.inc.
|
| |/
| |
| |
| |
| | |
always use full m_SubStrVec length in pcre_exec, we don't know
how many subexpressions user's regexp will have
|
|\ \
| |/ |
|
| | |
|
|/ |
|
|
|
|
|
|
|
| |
stored as a variable
We don't fix the bug itself, we just make regex functions display errors
returned from pcre_exec() as MariaDB warnings.
|
| |
|
|
|
|
|
|
| |
Added a new system variable:
default_regex_flags='DOTALL,DUPNAMES,EXTENDED,EXTRA,MULTILINE,UNGREEDY'
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do not pass PCRE_UCP flag for binary data.
This makes bytes 0x80..FF not to belong to
generic character classes \d (digit) and \w (word character).
SELECT 0xFF RLIKE '\\w';
-> 0
Note, this change does not affect non-binary data,
which is still examined with the PCRE_UCP flag by default.
|
|
|
|
|
|
|
| |
Adding tests with 0x00 characters from
Bug#70470 REGEXP fails to find matches after NUL character
|
|
|
|
|
|
| |
Adding more tests for case sensitivity,
with various collation and (?i) flags combinations.
|
|
|