I just wanted to clarify the following:
As createJoinedTable is working with BufferedDataTable and not with BufferedDataContainer the table are going to be in memory when performing the join (i.e. exec.createJoinedTable(…)).
Or, is createJoinedTable somehow able to swap to disk?
The reason I am asking is that I want to append more than one column to a given input table and I just feel that using the columnRearranger is very cumbersome… But if you say that this is the method to use because of memory and performance issues I will obey… ;(
Thanks a lot for any comments and clarifications.
The createJoinTable doesn’t do any calculation but just puts two BufferedDataTable side-by-side. It’s not a database join! The only thing it will do is to scan both tables and ensure matching row IDs. It will not acquire any more memory as it just puts a “view” on two tables. I would still recommend using a ColumnRearranger, though. It typically saves you two scans on the data (the first one is proably in your client code to determine the additional columns and the second is the framework scan I mentioned above). Note that you can extend from AbstractCellFactory (as opposed to SingleCellFactory) to append multiple columns at once. You can also permute the order of the appended columns using the move, replace, swap methods in the ColumnRearranger. Cheers, (the other) Bernd