mirror of
https://github.com/postgres/postgres.git
synced 2025-10-28 11:55:03 +03:00
Code review for regexp_matches/regexp_split patch. Refactor to avoid assuming
that cached compiled patterns will still be there when the function is next called. Clean up looping logic, thereby fixing bug identified by Pavel Stehule. Share setup code between the two functions, add some comments, and avoid risky mixing of int and size_t variables. Clean up the documentation a tad, and accept all the flag characters mentioned in table 9-19 rather than just a subset.
This commit is contained in:
@@ -111,7 +111,7 @@ SELECT regexp_matches('foobarbequebaz', $re$(bar)(.+)?(beque)$re$);
|
||||
SELECT regexp_matches('foobarbequebaz', $re$barbeque$re$);
|
||||
|
||||
-- give me errors
|
||||
SELECT regexp_matches('foobarbequebaz', $re$(bar)(beque)$re$, 'zipper');
|
||||
SELECT regexp_matches('foobarbequebaz', $re$(bar)(beque)$re$, 'gz');
|
||||
SELECT regexp_matches('foobarbequebaz', $re$(barbeque$re$);
|
||||
SELECT regexp_matches('foobarbequebaz', $re$(bar)(beque){2,1}$re$);
|
||||
|
||||
@@ -129,9 +129,13 @@ SELECT regexp_split_to_array('thE QUick bROWn FOx jUMPed ovEr THE lazy dOG', 'e'
|
||||
-- no match of pattern
|
||||
SELECT foo, length(foo) FROM regexp_split_to_table('the quick brown fox jumped over the lazy dog', 'nomatch') AS foo;
|
||||
SELECT regexp_split_to_array('the quick brown fox jumped over the lazy dog', 'nomatch');
|
||||
-- some corner cases
|
||||
SELECT regexp_split_to_array('123456','1');
|
||||
SELECT regexp_split_to_array('123456','6');
|
||||
SELECT regexp_split_to_array('123456','.');
|
||||
-- errors
|
||||
SELECT foo, length(foo) FROM regexp_split_to_table('thE QUick bROWn FOx jUMPed ovEr THE lazy dOG', 'e', 'zippy') AS foo;
|
||||
SELECT regexp_split_to_array('thE QUick bROWn FOx jUMPed ovEr THE lazy dOG', 'e', 'zippy');
|
||||
SELECT regexp_split_to_array('thE QUick bROWn FOx jUMPed ovEr THE lazy dOG', 'e', 'iz');
|
||||
-- global option meaningless for regexp_split
|
||||
SELECT foo, length(foo) FROM regexp_split_to_table('thE QUick bROWn FOx jUMPed ovEr THE lazy dOG', 'e', 'g') AS foo;
|
||||
SELECT regexp_split_to_array('thE QUick bROWn FOx jUMPed ovEr THE lazy dOG', 'e', 'g');
|
||||
|
||||
Reference in New Issue
Block a user