Changeset: 0edd711f0631 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0edd711f0631
Modified Files:
monetdb5/modules/atoms/url.c
monetdb5/modules/atoms/uuid.c
sql/test/BugTracker-2019/Tests/isaUUID.Bug-6784.sql
sql/test/BugTracker-2019/Tests/isaUUID.Bug-6784.stable.out
Branch: default
Log Message:
isauuid and isaURL functions must return null on null input
diffs (64 lines):
diff --git a/monetdb5/modules/atoms/url.c b/monetdb5/modules/atoms/url.c
--- a/monetdb5/modules/atoms/url.c
+++ b/monetdb5/modules/atoms/url.c
@@ -689,7 +689,10 @@ URLisaURL(bit *retval, str *val)
{
if (val == NULL || *val == NULL)
throw(ILLARG, "url.isaURL", "url missing");
- *retval = skip_scheme(*val) != NULL;
+ if (strNil(*val))
+ *retval = bit_nil;
+ else
+ *retval = skip_scheme(*val) != NULL;
return MAL_SUCCEED;
}
diff --git a/monetdb5/modules/atoms/uuid.c b/monetdb5/modules/atoms/uuid.c
--- a/monetdb5/modules/atoms/uuid.c
+++ b/monetdb5/modules/atoms/uuid.c
@@ -239,7 +239,14 @@ UUIDisaUUID(bit *retval, str *s)
uuid u;
uuid *pu = &u;
size_t l = UUID_SIZE;
- *retval = UUIDfromString(*s, &l, &pu, false) > 1; /* valid, not nil */
+ ssize_t res = UUIDfromString(*s, &l, &pu, false);
+
+ if (res > 1)
+ *retval = true;
+ else if (res == 1)
+ *retval = bit_nil;
+ else
+ *retval = false;
return MAL_SUCCEED;
}
diff --git a/sql/test/BugTracker-2019/Tests/isaUUID.Bug-6784.sql
b/sql/test/BugTracker-2019/Tests/isaUUID.Bug-6784.sql
--- a/sql/test/BugTracker-2019/Tests/isaUUID.Bug-6784.sql
+++ b/sql/test/BugTracker-2019/Tests/isaUUID.Bug-6784.sql
@@ -6,7 +6,7 @@ select isauuid('XYZaee1a538-aca1-381b-d9
select isauuid(uuid()); -- true
select isauuid('aee1a538-aca1-381b-d9f4-8c29ef3f5f34'); -- true
select isauuid('AEE1A538-ACA1-381B-D9F4-8C29EF3F5F34'); -- true
-select isauuid(null); -- false
+select isauuid(null); -- null
select cast('aee1a538-aca1-381b-d9f4-8c29ef3f5f34' as uuid); -- true
select cast('AEE1A538-ACA1-381B-D9F4-8C29EF3F5F34' as uuid); -- true
diff --git a/sql/test/BugTracker-2019/Tests/isaUUID.Bug-6784.stable.out
b/sql/test/BugTracker-2019/Tests/isaUUID.Bug-6784.stable.out
--- a/sql/test/BugTracker-2019/Tests/isaUUID.Bug-6784.stable.out
+++ b/sql/test/BugTracker-2019/Tests/isaUUID.Bug-6784.stable.out
@@ -101,12 +101,12 @@ stdout of test 'isaUUID.Bug-6784` in dir
% boolean # type
% 5 # length
[ true ]
-#select isauuid(null); -- false
+#select isauuid(null); -- null
% . # table_name
% %1 # name
% boolean # type
% 5 # length
-[ false ]
+[ NULL ]
#select cast('aee1a538-aca1-381b-d9f4-8c29ef3f5f34' as uuid); -- true
% . # table_name
% %1 # name
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list