Robert Schulze
74937cf27b
Reject DoS-prone hyperscan regexes
2023-02-09 17:17:35 +00:00
Robert Schulze
ac5a06d944
Update doxygen
2022-07-14 11:02:01 +00:00
Robert Schulze
6ec4f3cf3d
Implement non-const needle arguments in multiSearchAllPositions
2022-07-14 06:24:28 +00:00
Robert Schulze
1de5e9a7da
Avoid copy-ing array elements
2022-07-07 12:33:34 +00:00
Robert Schulze
dec184f61d
Add comment about const needle + const haystack
2022-07-06 17:41:15 +00:00
Robert Schulze
8a18705729
More variable renamings for more uniformity
2022-07-06 14:55:02 +00:00
Robert Schulze
144c1edb03
Inherit default implementation of getArgumentsThatAreAlwaysConstant()
2022-07-06 14:42:19 +00:00
Robert Schulze
6a907b23fb
Replace typeid_cast() with checkAndGetColumnConst()
...
... syntactic sugar
2022-07-06 14:38:28 +00:00
Robert Schulze
0c4da85e75
More uniform naming
2022-07-06 14:29:42 +00:00
Robert Schulze
ece61f6da3
Fix davenger's review comments
...
https://github.com/ClickHouse/ClickHouse/pull/38434#discussion_r907397214
https://github.com/ClickHouse/ClickHouse/pull/38434#discussion_r907385290
https://github.com/ClickHouse/ClickHouse/pull/38434#discussion_r907406097
(the latter is no longer relevant as the affected places were removed in
the meantime)
2022-07-04 10:43:21 +00:00
Robert Schulze
d547aa7849
Allow non-const pattern array argument in multi[Fuzzy]Match*()
...
Resolves #38046
2022-07-04 10:43:16 +00:00
Robert Schulze
959cbaab02
Move loop over patterns into implementations
...
- This is preparation for non-const regexp arguments, where this loop
will run for each row.
2022-06-26 16:26:13 +00:00
Robert Schulze
cb5d1a4a85
Fix style check
2022-06-26 16:25:49 +00:00
Robert Schulze
b8f67185bf
Cosmetics: Whitespaces
2022-06-26 16:25:49 +00:00
Robert Schulze
e2b11899a1
Move check if cfg allows hyperscan into implementations
...
- This is not needed for non-const regexp array arguments but cleans up
the code and runs the check only in functions which actually use
hyperscan.
2022-06-26 16:25:49 +00:00
Robert Schulze
3478db9fb6
Move check for regexp array size into implementations
...
- This is not needed for non-const regexp array arguments (the
cardinality of arrays is fixed per column) but it cleans up the code
and runs the check only in functions which have restrictions on the
number of patterns.
- For functions using hyperscans, it was checked that the number of
regexes is < 2^32. Removed the check because I don't think anyone will
every specify 4 billion patterns.
2022-06-26 15:38:12 +00:00
Robert Schulze
7913edc172
Move check for hyperscan regexp constraints into implementations
...
- This is preparation for non-const regexp arguments, where this check
will run for each row.
2022-06-26 15:38:05 +00:00
Robert Schulze
89bfdd50bf
Remove unnecessary check
...
- getReturnTypeImpl() ensures that the haystack column has type "String"
and we can simply assert that.
2022-06-26 15:34:24 +00:00
Robert Schulze
4bc59c18e3
Cosmetics: Move some code around + docs + whitespaces + minor stuff
2022-06-26 15:34:15 +00:00
Robert Schulze
1273756911
Cosmetics: fmt-based exceptions
2022-06-26 15:33:18 +00:00
Robert Schulze
e5c74a14f7
Cosmetics: More consistent naming
...
- rename utility function and file to "checkHyperscanRegexp"
2022-06-26 15:33:18 +00:00
Robert Schulze
072e0855a8
Cosmetics: Make member variables const
2022-06-26 15:32:26 +00:00
Robert Schulze
2ebfd01c2e
Cosmetics: Pull out settings variable
2022-06-26 15:32:23 +00:00
Robert Schulze
bb7c627964
Cosmetics: Pass patterns around as std::string_view instead of StringRef
...
- The patterns are not used in hashing, there should not be a performance
impact when we use stuff from the standard library instead.
- added forgotten .reserve() in FunctionsMultiStringPosition.h
2022-06-26 15:32:19 +00:00
Alexey Milovidov
fe6b7c77c7
Rename "common" to "base"
2021-10-02 10:13:14 +03:00
Vasily Nemkov
2c6b9aa174
Better exception messages for some String-related functions
2021-09-26 08:18:37 +03:00
Pavel Kruglov
70b51133c1
Try to simplify code
2021-08-09 18:01:08 +03:00
Pavel Kruglov
0662df8b76
Fix performance with JIT, add arguments to function isSuitableForShortCircuitArgumentsExecution
2021-08-09 17:54:14 +03:00
Pavel Kruglov
e792fa588f
Mark all Functions as sutable or not for executing as short circuit arguments
2021-08-09 17:50:09 +03:00
Amos Bird
aa33a7add1
Add settings to check hyperscan regexp length.
2021-08-07 13:07:41 +08:00
Nikolai Kochetov
dbaa6ffc62
Rename ContextConstPtr to ContextPtr.
2021-06-01 15:20:52 +03:00
Alexander Kuzmenkov
3f57fc085b
remove mutable context references from functions interface
...
Also remove it from some visitors.
2021-05-28 19:45:37 +03:00
Maksim Kita
d923d9e6ef
Function move file
2021-05-17 10:30:42 +03:00
Maksim Kita
947f28d430
IFunction refactoring
2021-05-15 20:33:15 +03:00
Ivan
495c6e03aa
Replace all Context references with std::weak_ptr ( #22297 )
...
* Replace all Context references with std::weak_ptr
* Fix shared context captured by value
* Fix build
* Fix Context with named sessions
* Fix copy context
* Fix gcc build
* Merge with master and fix build
* Fix gcc-9 build
2021-04-11 02:33:54 +03:00
Ivan Lezhankin
f897f7c93f
Refactor IFunction to execute with const arguments
2020-11-17 16:24:45 +03:00
Nikolai Kochetov
740fad66f3
Part 6.
2020-10-18 22:00:13 +03:00
Nikolai Kochetov
959424f28a
Rename block to columns.
2020-10-14 17:04:50 +03:00
Nikolai Kochetov
966b1d6cf5
Rename Block to ColumnsWithTypeAndName.
2020-10-14 16:09:11 +03:00
Nikolai Kochetov
d28325a353
Replace getByPosition to []
2020-10-10 21:24:57 +03:00
Nikolai Kochetov
e4689ce302
Make IFunction::executeImpl const.
2020-07-21 16:58:07 +03:00
Ivan Lezhankin
06446b4f08
dbms/ → src/
2020-04-03 18:14:31 +03:00