Skip to content

Commit 290d322

Browse files
committed
fix the "blank" table ctor calling form (table('Size', sz, 'VariableTypes', vt))
The ctor implementation was trying to use .-indexing to reference table cols/variables, which doesn't work from inside the class's methods. Replaced it with method calls which do work. Fixes: #145
1 parent eb3a038 commit 290d322

2 files changed

Lines changed: 6 additions & 4 deletions

File tree

CHANGES.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Tablicious Changelog
88
* Add datevec() methods for duration and calendarDuration; add multi-argout form for datetime.datevec(). ([#153](https://github.com/apjanke/octave-tablicious/issues/153))
99
* Add duration.hms() method.
1010
* Fix table.rowfun() bugs that broke it. ([#155](https://github.com/apjanke/octave-tablicious/issues/155))
11+
* Fix the "blank" ctor calling form (`table ('Size',sz, 'VariableTypes',types)`). ([#145](https://github.com/apjanke/octave-tablicious/issues/145))
1112

1213
0.4.6 (2026-02-16)
1314
------------------

inst/@table/table.m

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -200,10 +200,10 @@
200200
varNames = [];
201201
endif
202202
blank = tblish.internal.table.blankTable (opts.Size, opts.VariableTypes, varNames, 'ctor');
203-
flds = fieldnames (this);
204-
for iFld = 1:numel(flds)
205-
this.(flds{iFld}) = blank.(flds{iFld});
206-
endfor
203+
this.VariableNames = blank.VariableNames;
204+
this.VariableValues = blank.VariableValues;
205+
this.RowNames = blank.RowNames;
206+
this.DimensionNames = blank.DimensionNames;
207207
if (isfield (opts, 'DimensionNames'))
208208
this = setDimensionNames (this, opts.DimensionNames);
209209
endif
@@ -1342,6 +1342,7 @@ function prettyprint (this)
13421342
##
13431343
## @end deftypefn
13441344
function out = setvar (this, varRef, value)
1345+
narginchk (3, 3);
13451346
ixVar = resolveVarRef (this, varRef, 'lenient');
13461347
if (! isscalar (ixVar))
13471348
error('table.setvar: Only a single variable is allowed for varRef; got %d', ...

0 commit comments

Comments
 (0)