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
add cbind by reference, timing
R prototype of mergelist
wording
use lower overhead funs
stick to int32 for now, correct R_alloc
bmerge C refactor for codecov and one loop for speed
address revealed codecov gaps
refactor vecseq for codecov
seqexp helper, some alloccol export on C
bmerge codecov, types handled in R bmerge already
better comment seqexp
bmerge mult=error #655
multiple new C utils
swap if branches
explain new C utils
comments mostly
reduce conflicts to PR #4386
comment C code
address multiple matches during update-on-join #3747
Revert "address multiple matches during update-on-join #3747"
This reverts commit b64c0c3.
merge.dt has temporarily mult arg, for testing
minor changes to cbindlist c
dev mergelist, for single pair now
add quiet option to cc()
mergelist tests
add check for names to perhaps.dt
rm mult from merge.dt method
rework, clean, polish multer, fix righ and full joins
make full join symmetric
mergepair inner function to loop on
extra check for symmetric
mergelist manual
ensure no df-dt passed where list expected
comments and manual
handle 0 cols tables
more tests
more tests and debugging
move more logic closer to bmerge, simplify mergepair
more tests
revert not used changes
reduce not needed checks, cleanup
copy arg behavior, manual, no tests yet
cbindlist manual, export both
cleanup processing bmerge to dtmatch
test function match order for easier preview
vecseq gets short-circuit
batch test allow browser
big cleanup
remmove unneeded stuff, reduce diff
more cleanup, minor manual fixes
add proper test scripts
Merge branch 'master' into cbind-merge-list
comment out not used code for coverage
more tests, some nocopy opts
rename sql test script, should fix codecov
simplify dtmatch inner branch
more precise copy, now copy only T or F
unused arg not yet in api, wording
comments and refer issues
codecov
hasindex coverage
codecov gap
tests for join using key, cols argument
fix missing import forderv
more tests, improve missing on handling
more tests for order of inner and full join for long keys
new allow.cartesian option, #4383, #914
reduce diff, improve codecov
reduce diff, comments
need more DT, not lists, mergelist 3+ tbls
proper escape heavy check
unit tests
more tests, address overalloc failure
mergelist and cbindlist retain index
manual, examples
fix manual
minor clarify in manual
retain keys, right outer join for snowflake schema joins
duplicates in cbindlist
recycling in cbindlist
escape 0 input in copyCols
empty input handling
closing cbindlist
vectorized _on_ and _join.many_ arg
rename dtmatch to dtmerge
vectorized args: how, mult
push down input validation
add support for cross join, semi join, anti join
full join, reduce overhead for mult=error
mult default value dynamic
fix manual
add "see details" to Rd
mention shared on in arg description
amend feedback from Michael
semi and anti joins will not reorder x columns
Merge branch 'master' into cbind-merge-list
spelling, thx to @jan-glx
check all new funs used and add comments
bugfix, sort=T needed for now
Merge branch 'master' into cbind-merge-list
Update NEWS.md
Merge branch 'master' into cbind-merge-list
Merge branch 'master' into cbind-merge-list
NEWS placement
numbering
ascArg->order
Merge remote-tracking branch 'origin/cbind-merge-list' into cbind-merge-list
attempt to restore from master
Update to stopf() error style
Need isFrame for now
More quality checks: any(!x)->!all(x); use vapply_1{b,c,i}
really restore from master
try to PROTECT() before duplicate()
update error message in test
appease the rchk gods
extraneous space
missing ';'
use catf
simplify perhapsDataTableR
move sqlite.Rraw.manual into other.Rraw
simplify for loop
Merge remote-tracking branch 'origin/cbind-merge-list' into cbind-merge-list
} ## join-to and join-from tables and columns (right outer join swap)
156
+
157
+
## ensure symmetric join for inner|full join, apply mult on both tables, bmerge do only 'x' table
158
+
cp.i=FALSE## copy marker of out.i
159
+
if ((innerfull) &&!is.null(mult) && (mult=="first"||mult=="last")) {
160
+
jnfm= fdistinct(jnfm, on=on, mult=mult, cols=fm.cols, copy=FALSE) ## might not copy when already unique by 'on'
161
+
cp.i= nrow(jnfm)!=nrow(lhs) ## nrow(lhs) bc how='inner|full' so jnfm=lhs
162
+
} elseif (how=="inner"&& (is.null(mult) ||mult=="error")) { ## we do this branch only to raise error from bmerge, we cannot use forder to just find duplicates because those duplicates might not have matching rows in another table, full join checks mult='error' during two non-void bmerges
out.x=if (is.null(ans$xrows)) ## as of now xrows cannot be NULL #4409 thus nocov below
181
+
internal_error("dtmerge()$xrows returned NULL, #4409 been resolved but related code has not been updated?") #.shallow(jnto, cols=someCols(jnto, to.cols, drop=on), retain.key=TRUE) # nocov ## as of now nocov does not make difference r-lib/covr#279
## ensure no duplicated column names in merge results
186
+
if (any(dup.i<-names(out.i) %chin% names(out.x)))
187
+
stopf("merge result has duplicated column names, use 'cols' argument or rename columns in 'l' tables, duplicated column(s): %s", brackify(names(out.i)[dup.i]))
out.i= lapply(unclass(out.i)[add], `[`, seq_len(nrow(out.r))) ## could eventually remove this when cbindlist recycle 0 rows up, note that we need out.r not to be copied
0 commit comments