You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: NEWS.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -61,6 +61,8 @@ rowwiseDT(
61
61
62
62
8.`dt[, col]`nowreturnsacopyof`col`alsowhenitisalistcolumn, asinanyothercase, [#4877](https://github.com/Rdatatable/data.table/issues/4877). Thanks to @tlapak for reporting and the PR.
63
63
64
+
9.`rbindlist`and`rbind`binding`bit64::integer64`columnswith`character`/`complex`/`list`columnsnowworks, [#5504](https://github.com/Rdatatable/data.table/issues/5504). Thanks to @MichaelChirico for the request and @ben-schwen for the PR.
65
+
64
66
## NOTES
65
67
66
68
1.TestsrunagainwhensomeSuggestspackagesaremissing, [#6411](https://github.com/Rdatatable/data.table/issues/6411). Thanks @aadler for the note and @MichaelChirico for the fix.
if (!foundName) { staticcharbuff[12]; snprintf(buff,12,"V%d",j+1), SET_STRING_ELT(ansNames, idcol+j, mkChar(buff)); foundName=buff; }
340
340
if (factor) maxType=INTSXP; // if any items are factors then a factor is created (could be an option)
341
-
if (int64&&maxType!=REALSXP)
341
+
if (int64&&!(maxType==REALSXP||maxType==STRSXP||maxType==VECSXP||maxType==CPLXSXP))
342
342
internal_error(__func__, "column %d of result is determined to be integer64 but maxType=='%s' != REALSXP", j+1, type2char(maxType)); // # nocov
343
343
if (date&&INHERITS(firstCol, char_IDate)) maxType=INTSXP; // first encountered Date determines class and type #5309
344
344
SEXPtarget;
345
345
SET_VECTOR_ELT(ans, idcol+j, target=allocVector(maxType, nrow)); // does not initialize logical & numerics, but does initialize character and list
346
-
if (!factor) copyMostAttrib(firstCol, target); // all but names,dim and dimnames; mainly for class. And if so, we want a copy here, not keepattr's SET_ATTRIB.
346
+
// #5504 do not copy class for mixing int64 and higher maxTypes CPLXSXP/STRSXP/VECSXP
347
+
if (!factor&& !(int64&& (maxType==STRSXP||maxType==VECSXP||maxType==CPLXSXP))) copyMostAttrib(firstCol, target); // all but names,dim and dimnames; mainly for class. And if so, we want a copy here, not keepattr's SET_ATTRIB.
347
348
348
349
if (factor&&anyNotStringOrFactor) {
349
350
// in future warn, or use list column instead ... warning(_("Column %d contains a factor but not all items for the column are character or factor"), idcol+j+1);
0 commit comments