Add tests for new regexp sql functions

pull/6256/head
Hanefi Onaldi 2022-08-24 04:01:31 +03:00
parent e29db74a19
commit 3e4e42253f
No known key found for this signature in database
GPG Key ID: F18CDB10BA0DFDC7
2 changed files with 69 additions and 0 deletions

View File

@ -420,6 +420,62 @@ SELECT * FROM numeric_negative_scale ORDER BY 1,2;
120 | 115
(5 rows)
-- test new regex functions
-- print order comments that contain the word `fluffily` at least twice
SELECT o_comment FROM public.orders WHERE regexp_count(o_comment, 'FluFFily', 1, 'i')>=2 ORDER BY 1;
o_comment
---------------------------------------------------------------------
al, bold deposits cajole fluffily fluffily final foxes. pending ideas beli
ly regular packages are fluffily even ideas. fluffily final
ng instructions integrate fluffily among the fluffily silent accounts. bli
ructions wake fluffily fluffily final gifts! furiou
s boost blithely fluffily idle ideas? fluffily even pin
(5 rows)
-- print the same items using a different regexp function
SELECT o_comment FROM public.orders WHERE regexp_like(o_comment, 'fluffily.*fluffily') ORDER BY 1;
o_comment
---------------------------------------------------------------------
al, bold deposits cajole fluffily fluffily final foxes. pending ideas beli
ly regular packages are fluffily even ideas. fluffily final
ng instructions integrate fluffily among the fluffily silent accounts. bli
ructions wake fluffily fluffily final gifts! furiou
s boost blithely fluffily idle ideas? fluffily even pin
(5 rows)
-- print the position where we find the second fluffily in the comment
SELECT o_comment, regexp_instr(o_comment, 'fluffily.*(fluffily)') FROM public.orders ORDER BY 2 desc LIMIT 5;
o_comment | regexp_instr
---------------------------------------------------------------------
ng instructions integrate fluffily among the fluffily silent accounts. bli | 27
al, bold deposits cajole fluffily fluffily final foxes. pending ideas beli | 26
ly regular packages are fluffily even ideas. fluffily final | 25
s boost blithely fluffily idle ideas? fluffily even pin | 18
ructions wake fluffily fluffily final gifts! furiou | 15
(5 rows)
-- print the substrings between two `fluffily`
SELECT regexp_substr(o_comment, 'fluffily.*fluffily') FROM public.orders ORDER BY 1 LIMIT 5;
regexp_substr
---------------------------------------------------------------------
fluffily among the fluffily
fluffily even ideas. fluffily
fluffily fluffily
fluffily fluffily
fluffily idle ideas? fluffily
(5 rows)
-- replace second `fluffily` with `silkily`
SELECT regexp_replace(o_comment, 'fluffily', 'silkily', 1, 2) FROM public.orders WHERE regexp_like(o_comment, 'fluffily.*fluffily') ORDER BY 1 desc;
regexp_replace
---------------------------------------------------------------------
s boost blithely fluffily idle ideas? silkily even pin
ructions wake fluffily silkily final gifts! furiou
ng instructions integrate fluffily among the silkily silent accounts. bli
ly regular packages are fluffily even ideas. silkily final
al, bold deposits cajole fluffily silkily final foxes. pending ideas beli
(5 rows)
-- Clean up
DROP SCHEMA pg15 CASCADE;
NOTICE: drop cascades to 10 other objects

View File

@ -255,5 +255,18 @@ SELECT create_distributed_table('numeric_negative_scale','orig_value');
SELECT * FROM numeric_negative_scale ORDER BY 1,2;
-- test new regex functions
-- print order comments that contain the word `fluffily` at least twice
SELECT o_comment FROM public.orders WHERE regexp_count(o_comment, 'FluFFily', 1, 'i')>=2 ORDER BY 1;
-- print the same items using a different regexp function
SELECT o_comment FROM public.orders WHERE regexp_like(o_comment, 'fluffily.*fluffily') ORDER BY 1;
-- print the position where we find the second fluffily in the comment
SELECT o_comment, regexp_instr(o_comment, 'fluffily.*(fluffily)') FROM public.orders ORDER BY 2 desc LIMIT 5;
-- print the substrings between two `fluffily`
SELECT regexp_substr(o_comment, 'fluffily.*fluffily') FROM public.orders ORDER BY 1 LIMIT 5;
-- replace second `fluffily` with `silkily`
SELECT regexp_replace(o_comment, 'fluffily', 'silkily', 1, 2) FROM public.orders WHERE regexp_like(o_comment, 'fluffily.*fluffily') ORDER BY 1 desc;
-- Clean up
DROP SCHEMA pg15 CASCADE;