Skip to content

Empty matrices are converted to NULL #414

@dglee3

Description

@dglee3

Bug Report

Description

In a newer version of DataJoint, empty matrices ([]) are inserted into a table as NULL rather than a longblob representing the empty set. This results in discrepancies when fetching data uploaded by different versions.

Reproducibility

  • OS: Windows Server 2016 Standard
  • MATLAB Version: R2022a
  • MySQL Version: 8.0.29
  • MySQL Deployment Strategy: Uncertain
  • DataJoint Version: 3.5.0
  • Minimum number of steps to reliably reproduce the issue:
  1. Create a table with a longblob attribute that is non-nullable. In this example the attribute is defined as puff: longblob
  2. Insert [] into this attribute
  • Complete error stack as a result of evaluating the above steps:
Error using dj.Relvar/insert/makePlaceholder
attribute `puff` is not nullable.

Error in dj.Relvar/insert (line 353)
                    [v, placeholder] = makePlaceholder(i, tuple.(header.attributes(i).name));

Error in experiment.TrialSummary/makeTuples (line 144)
            insert(self, key)

Error in dj.internal.AutoPopulate/taskCore (line 215)
                self.makeTuples(key)

Error in dj.internal.AutoPopulate>@(key,fun,args)fun(args{:}) (line 129)
                rels{i}.executionEngine = @(key, fun, args) fun(args{:});

Error in dj.internal.AutoPopulate/populate_ (line 327)
                                    self.executionEngine(key, @taskCore, {self, key})

Error in dj.internal.AutoPopulate/populate (line 130)
                [varargout{1:nargout}] = rels{i}.populate_(varargin{:});

Expected Behavior

When a [] is inserted, we expect it to be stored as a longblob which reads as [] when the data is fetched. This is the behavior of another machine with the following specifications:

  • OS: Windows 10 Pro
  • MATLAB Version: R2019a
  • MySQL Version: 8.0.29
  • MySQL Deployment Strategy: Uncertain
  • DataJoint Version: 3.3.1

Metadata

Metadata

Assignees

Labels

awaiting-triageIssues awaiting proper priority/milestone assignment.bug

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions