Changeset: 2ded4ffb58bf for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2ded4ffb58bf
Added Files:
        monetdb5/modules/kernel/Tests/batstr_contains.test
Modified Files:
        monetdb5/modules/kernel/Tests/All
        monetdb5/modules/kernel/Tests/batstr_endswith.test
        monetdb5/modules/kernel/Tests/batstr_reverse.test
        monetdb5/modules/kernel/Tests/batstr_startswith.test
        monetdb5/modules/kernel/batstr.c
Branch: txtsim
Log Message:

More testing of batstr


diffs (219 lines):

diff --git a/monetdb5/modules/kernel/Tests/All 
b/monetdb5/modules/kernel/Tests/All
--- a/monetdb5/modules/kernel/Tests/All
+++ b/monetdb5/modules/kernel/Tests/All
@@ -5,6 +5,6 @@ math
 select
 
 batstr_reverse
-
 batstr_startswith
 batstr_endswith
+batstr_contains
diff --git a/monetdb5/modules/kernel/Tests/batstr_contains.test 
b/monetdb5/modules/kernel/Tests/batstr_contains.test
new file mode 100644
--- /dev/null
+++ b/monetdb5/modules/kernel/Tests/batstr_contains.test
@@ -0,0 +1,99 @@
+statement ok
+create table foo(x string)
+
+statement ok
+insert into foo values ('john doe'),('jane doe'),('robert doe')
+
+statement ok
+create table bar(x string)
+
+statement ok
+insert into bar values ('johndoe'),('Müller Thomas'),('Thomas MüLLer')
+
+statement ok
+create function contains(x string, y string) returns bool external name 
str."contains"
+
+statement ok
+create function icontains(x string, y string, i bool) returns bool external 
name str."contains"
+
+query T
+select contains(x, '') from foo
+----
+True
+True
+True
+
+query T
+select contains('', x) from foo
+----
+False
+False
+False
+
+query T
+select contains(x, 'doe') from foo
+----
+True
+True
+True
+
+query T
+select contains('jane doe', x) from foo
+----
+False
+True
+False
+
+query T
+select contains(x, 'MüLLer') from bar
+----
+False
+False
+True
+
+query T
+select contains(x, 'Müller') from bar
+----
+False
+True
+False
+
+query T
+select icontains('MüLLER Thomas', x, true) from bar
+----
+False
+True
+False
+
+query T
+select icontains(x, 'DOE', true) from foo
+----
+True
+True
+True
+
+query T
+select icontains(x, 'DOE', false) from foo
+----
+False
+False
+False
+
+query T
+select icontains('doe', x, true) from foo
+----
+False
+False
+False
+
+statement ok
+drop function contains(string, string)
+
+statement ok
+drop function icontains(string, string, bool)
+
+statement ok
+drop table foo
+
+statement ok
+drop table bar
diff --git a/monetdb5/modules/kernel/Tests/batstr_endswith.test 
b/monetdb5/modules/kernel/Tests/batstr_endswith.test
--- a/monetdb5/modules/kernel/Tests/batstr_endswith.test
+++ b/monetdb5/modules/kernel/Tests/batstr_endswith.test
@@ -10,14 +10,14 @@ create table foo(x string)
 statement ok
 insert into foo values ('johndoe'),('janedoe'),('robertdoe')
 
-query T rowsort
+query T
 select endswith(x, '') from foo
 ----
 True
 True
 True
 
-query T rowsort
+query T
 select endswith('', x) from foo
 ----
 False
@@ -33,7 +33,7 @@ create table bar(x string, y string)
 statement ok
 insert into bar values ('johndoe','doe'),('Müller Thomas', 'Thomas 
Müller'),('Thomas Müller', 'Müller Thomas')
 
-query T rowsort
+query T
 select endswith(x, 'Müller') from bar
 ----
 False
diff --git a/monetdb5/modules/kernel/Tests/batstr_reverse.test 
b/monetdb5/modules/kernel/Tests/batstr_reverse.test
--- a/monetdb5/modules/kernel/Tests/batstr_reverse.test
+++ b/monetdb5/modules/kernel/Tests/batstr_reverse.test
@@ -49,4 +49,4 @@ statement ok
 drop table baz
 
 statement ok
-drop function reverse
+drop function reverse(string)
diff --git a/monetdb5/modules/kernel/Tests/batstr_startswith.test 
b/monetdb5/modules/kernel/Tests/batstr_startswith.test
--- a/monetdb5/modules/kernel/Tests/batstr_startswith.test
+++ b/monetdb5/modules/kernel/Tests/batstr_startswith.test
@@ -10,14 +10,14 @@ create table foo(x string)
 statement ok
 insert into foo values ('johndoe'),('janedoe'),('robertdoe')
 
-query T rowsort
+query T
 select startswith(x, '') from foo
 ----
 True
 True
 True
 
-query T rowsort
+query T
 select startswith('', x) from foo
 ----
 False
@@ -33,12 +33,12 @@ create table bar(x string, y string)
 statement ok
 insert into bar values ('johndoe','doe'),('Müller Thomas', 'Thomas 
Müller'),('Thomas Müller', 'Müller Thomas')
 
-query T rowsort
+query T
 select startswith(x, 'Müller') from bar
 ----
 False
+True
 False
-True
 
 statement ok
 drop table bar
diff --git a/monetdb5/modules/kernel/batstr.c b/monetdb5/modules/kernel/batstr.c
--- a/monetdb5/modules/kernel/batstr.c
+++ b/monetdb5/modules/kernel/batstr.c
@@ -1998,14 +1998,14 @@ BATSTRcontains_strcst(Client cntxt, MalB
 /* scan select loop with or without candidates */
 #define scanloop(TEST, KEEP_NULLS)                                             
                            \
        do {                                                                    
                                                        \
-               TRC_DEBUG(ALGO,                                                 
                                                \
-                                 "scanselect(b=%s#"BUNFMT",anti=%d): "         
                        \
+               TRC_DEBUG(ALGO,                                                 
                                        \
+                                 "scanselect(b=%s#"BUNFMT",anti=%d): "         
                \
                                  "scanselect %s\n", BATgetId(b), BATcount(b),  
                \
-                                 anti, #TEST);                                 
                                                \
+                                 anti, #TEST);                                 
                                        \
                if (!s || BATtdense(s)) {                                       
                                        \
                        for (; p < q; p++) {                                    
                                        \
                                GDK_CHECK_TIMEOUT(timeoffset, counter,          
                        \
-                                                                 
GOTO_LABEL_TIMEOUT_HANDLER(bailout)); \
+                                                                 
GOTO_LABEL_TIMEOUT_HANDLER(bailout)); \
                                const char *restrict v = BUNtvar(bi, p - off);  
                \
                                if ((TEST) || ((KEEP_NULLS) && *v == '\200'))   
                \
                                        vals[cnt++] = p;                        
                                                \
@@ -2013,7 +2013,7 @@ BATSTRcontains_strcst(Client cntxt, MalB
                } else {                                                        
                                                        \
                        for (; p < ncands; p++) {                               
                                        \
                                GDK_CHECK_TIMEOUT(timeoffset, counter,          
                        \
-                                                                 
GOTO_LABEL_TIMEOUT_HANDLER(bailout)); \
+                                                                 
GOTO_LABEL_TIMEOUT_HANDLER(bailout)); \
                                oid o = canditer_next(ci);                      
                                        \
                                const char *restrict v = BUNtvar(bi, o - off);  
                \
                                if ((TEST) || ((KEEP_NULLS) && *v == '\200'))   
                \
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to