From f6d162c983f4773b38debe46d8e4f5bbc3027a8f Mon Sep 17 00:00:00 2001 From: guzman-raphael Date: Tue, 19 May 2020 09:21:03 -0500 Subject: [PATCH 1/2] Add check to verify that blobs are not sparse (for now). --- +dj/Relvar.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/+dj/Relvar.m b/+dj/Relvar.m index 1ca2eceb..5dd6cf2e 100755 --- a/+dj/Relvar.m +++ b/+dj/Relvar.m @@ -249,6 +249,7 @@ function insert(self, tuples, command) blobs{end+1} = char(v); %#ok end elseif header.attributes(i).isBlob + assert(~issparse(v), 'Sparse blobs not currently supported'); valueStr = sprintf('%s"{M}",', valueStr); blobs{end+1} = v; %#ok else @@ -363,6 +364,7 @@ function update(self, attrname, value) valueStr = '"{S}"'; value = {char(value)}; case header.attributes(ix).isBlob + assert(~issparse(value), 'Sparse blobs not currently supported'); valueStr = '"{M}"'; value = {value}; case header.attributes(ix).isNumeric From d842885e1c5eb6fe8f9f5841ba7a61197808d174 Mon Sep 17 00:00:00 2001 From: guzman-raphael Date: Tue, 19 May 2020 09:45:58 -0500 Subject: [PATCH 2/2] Update error message. --- +dj/Relvar.m | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/+dj/Relvar.m b/+dj/Relvar.m index 5dd6cf2e..40f2fc4b 100755 --- a/+dj/Relvar.m +++ b/+dj/Relvar.m @@ -249,7 +249,10 @@ function insert(self, tuples, command) blobs{end+1} = char(v); %#ok end elseif header.attributes(i).isBlob - assert(~issparse(v), 'Sparse blobs not currently supported'); + assert(~issparse(v), ... + 'DataJoint:DataType:Mismatch', ... + 'The field `%s` must not be a sparse blob', ... + header.attributes(i).name); valueStr = sprintf('%s"{M}",', valueStr); blobs{end+1} = v; %#ok else @@ -364,7 +367,10 @@ function update(self, attrname, value) valueStr = '"{S}"'; value = {char(value)}; case header.attributes(ix).isBlob - assert(~issparse(value), 'Sparse blobs not currently supported'); + assert(~issparse(value), ... + 'DataJoint:DataType:Mismatch', ... + 'The field `%s` must not be a sparse blob', ... + attrname); valueStr = '"{M}"'; value = {value}; case header.attributes(ix).isNumeric