protected JoinDesc buildJoin(RexCall condition) { Map<TblColRef, TblColRef> joinColumns = new HashMap<TblColRef, TblColRef>(); translateJoinColumn(condition, joinColumns); List<String> pks = new ArrayList<String>(); List<TblColRef> pkCols = new ArrayList<TblColRef>(); List<String> fks = new ArrayList<String>(); List<TblColRef> fkCols = new ArrayList<TblColRef>(); for (Map.Entry<TblColRef, TblColRef> columnPair : joinColumns.entrySet()) { TblColRef fromCol = columnPair.getKey(); TblColRef toCol = columnPair.getValue(); fks.add(fromCol.getName()); fkCols.add(fromCol); pks.add(toCol.getName()); pkCols.add(toCol); } JoinDesc join = new JoinDesc(); join.setForeignKey(fks.toArray(COLUMN_ARRAY_MARKER)); join.setForeignKeyColumns(fkCols.toArray(new TblColRef[fkCols.size()])); join.setPrimaryKey(pks.toArray(COLUMN_ARRAY_MARKER)); join.setPrimaryKeyColumns(pkCols.toArray(new TblColRef[pkCols.size()])); join.sortByFK(); return join; }
protected JoinDesc buildJoin(RexCall condition) { Map<TblColRef, TblColRef> joinColumns = new HashMap<TblColRef, TblColRef>(); translateJoinColumn(condition, joinColumns); List<String> pks = new ArrayList<String>(); List<TblColRef> pkCols = new ArrayList<TblColRef>(); List<String> fks = new ArrayList<String>(); List<TblColRef> fkCols = new ArrayList<TblColRef>(); for (Map.Entry<TblColRef, TblColRef> columnPair : joinColumns.entrySet()) { TblColRef fromCol = columnPair.getKey(); TblColRef toCol = columnPair.getValue(); fks.add(fromCol.getName()); fkCols.add(fromCol); pks.add(toCol.getName()); pkCols.add(toCol); } JoinDesc join = new JoinDesc(); join.setForeignKey(fks.toArray(COLUMN_ARRAY_MARKER)); join.setForeignKeyColumns(fkCols.toArray(new TblColRef[fkCols.size()])); join.setPrimaryKey(pks.toArray(COLUMN_ARRAY_MARKER)); join.setPrimaryKeyColumns(pkCols.toArray(new TblColRef[pkCols.size()])); join.sortByFK(); return join; }