Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.pentaho.di.trans.steps.mergejoin
Class MergeJoin

    java.lang.Object
      java.lang.Thread
          org.pentaho.di.trans.step.BaseStep
              org.pentaho.di.trans.steps.mergejoin.MergeJoin

All Implemented Interfaces:
  Runnable, org.pentaho.di.core.variables.VariableSpace, StepInterface

    public class MergeJoin

extends BaseStep
implements StepInterface

Merge rows from 2 sorted streams and output joined rows with matched key fields. Use this instead of hash join is both your input streams are too big to fit in memory. Note that both the inputs must be sorted on the join key. This is a first prototype implementation that only handles two streams and inner join. It also always outputs all values from both streams. Ideally, we should: 1) Support any number of incoming streams 2) Allow user to choose the join type (inner, outer) for each stream 3) Allow user to choose which fields to push to next step 4) Have multiple output ports as follows: a) Containing matched records b) Unmatched records for each input port 5) Support incoming rows to be sorted either on ascending or descending order. The currently implementation only supports ascending

Since:
  24-nov-2006
Author:
  Biswapesh

Nested Class Summary

Nested classes/interfaces inherited from class java.lang.Thread
`Thread.State, Thread.UncaughtExceptionHandler`

Field Summary

Fields inherited from class org.pentaho.di.trans.step.BaseStep
`category_order, errorRowSet, first, init, inputRowSets, linesInput, linesOutput, linesRead, linesRejected, linesSkipped, linesUpdated, linesWritten, outputRowSets, paused, remoteInputSteps, remoteOutputSteps, statusDesc, steps, stopped, terminator, terminator_rows, thr, waiting`

Fields inherited from class java.lang.Thread
`MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY`

Constructor Summary
`MergeJoin(StepMeta stepMeta, StepDataInterface stepDataInterface, int copyNr, TransMeta transMeta, Trans trans)`

Method Summary
`boolean` | `init(StepMetaInterface smi, StepDataInterface sdi)` Initialise and do work where other steps need to wait for...
`boolean` | `processRow(StepMetaInterface smi, StepDataInterface sdi)` Process one row.
`void` | `run()` Run is where the action happens in a step...

Methods inherited from class org.pentaho.di.trans.step.BaseStep
`addResultFile, addRowListener, addStepListener, buildLog, cleanup, copyVariablesFrom, decrementLinesRead, decrementLinesWritten, dispatch, dispose, environmentSubstitute, environmentSubstitute, findInputRowSet, findInputRowSet, findOutputRowSet, findOutputRowSet, getBooleanValueOfVariable, getClusterSize, getCopy, getDispatcher, getErrorRowMeta, getErrors, getIconFilename, getInputRowMeta, getInputRowSets, getLinesInput, getLinesOutput, getLinesRead, getLinesRejected, getLinesSkipped, getLinesUpdated, getLinesWritten, getLogFields, getNextClassNr, getOutputRowSets, getParentVariableSpace, getPartitionID, getPartitionTargets, getPreviewRowMeta, getProcessed, getRepartitioning, getResultFiles, getRow, getRowFrom, getRowListeners, getRuntime, getServerSockets, getSlaveNr, getSocketRepository, getStatus, getStatusDescription, getStepDataInterface, getStepID, getStepInfo, getStepListeners, getStepMeta, getStepMetaInterface, getStepname, getThread, getTrans, getTransMeta, getTypeId, getUniqueStepCountAcrossSlaves, getUniqueStepNrAcrossSlaves, getVariable, getVariable, incrementLinesInput, incrementLinesOutput, incrementLinesRead, incrementLinesRejected, incrementLinesSkipped, incrementLinesUpdated, incrementLinesWritten, initBeforeStart, initializeVariablesFrom, injectVariables, isDistributed, isInitialising, isMapping, isPartitioned, isPaused, isSafeModeEnabled, isStopped, isUsingThreadPriorityManagment, listVariables, logBasic, logDebug, logDetailed, logError, logError, logMinimal, logRowlevel, logSummary, markStart, markStop, outputIsDone, pauseRunning, putError, putRow, putRowTo, removeRowListener, resumeRunning, rowsetInputSize, rowsetOutputSize, runStepThread, safeModeChecking, setCopy, setDistributed, setErrorRowMeta, setErrors, setInputRowMeta, setInputRowSets, setInternalVariables, setLinesInput, setLinesOutput, setLinesRead, setLinesRejected, setLinesSkipped, setLinesUpdated, setLinesWritten, setOutputDone, setOutputRowSets, setParentVariableSpace, setPartitioned, setPartitionID, setPartitionTargets, setPaused, setPaused, setPreviewRowMeta, setRepartitioning, setSafeModeEnabled, setServerSockets, setSocketRepository, setStepDataInterface, setStepListeners, setStepMeta, setStepMetaInterface, setStepname, setStopped, setStopped, setTransMeta, setUsingThreadPriorityManagment, setVariable, shareVariablesWith, stopAll, stopRunning, stopRunning, toString`

Methods inherited from class java.lang.Thread
`activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, yield`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.pentaho.di.trans.step.StepInterface
`addRowListener, addStepListener, cleanup, dispose, getCopy, getErrors, getInputRowSets, getLinesInput, getLinesOutput, getLinesRead, getLinesRejected, getLinesUpdated, getLinesWritten, getOutputRowSets, getPartitionID, getRow, getRowListeners, getStepID, getStepMeta, getStepname, initBeforeStart, isAlive, isMapping, isPartitioned, isStopped, markStart, markStop, pauseRunning, putRow, removeRowListener, resumeRunning, setErrors, setLinesRejected, setOutputDone, setPartitionID, start, stopAll, stopRunning`

Constructor Detail

### MergeJoin

    public MergeJoin(StepMeta stepMeta,
                     StepDataInterface stepDataInterface,
                     int copyNr,
                     TransMeta transMeta,
                     Trans trans)

Method Detail

### processRow

    public boolean processRow(StepMetaInterface smi,
                              StepDataInterface sdi)
                       throws org.pentaho.di.core.exception.KettleException

  Description copied from interface: `StepInterface`
  Process one row.

  Specified by:
    `processRow` in interface `StepInterface`
  Overrides:
    `processRow` in class `BaseStep`
  Parameters:
    `smi` - The metadata to work with
    `sdi` - The temporary working data to work with (database connections, resultsets, caches, temporary variables, etc.)
  Returns:
    false if no more rows can be processed or an error occurred.
  Throws:
    `org.pentaho.di.core.exception.KettleException`

### init

    public boolean init(StepMetaInterface smi,
                        StepDataInterface sdi)

  Description copied from interface: `StepInterface`
  Initialise and do work where other steps need to wait for...

  Specified by:
    `init` in interface `StepInterface`
  Overrides:
    `init` in class `BaseStep`
  Parameters:
    `smi` - The metadata to work with
    `sdi` - The data to initialize
  See Also:
    `StepInterface.init( org.pentaho.di.trans.step.StepMetaInterface , org.pentaho.di.trans.step.StepDataInterface)`

### run

    public void run()

  Description copied from interface: `StepInterface`
  Run is where the action happens in a step...

  Specified by:
    `run` in interface `Runnable`
  Specified by:
    `run` in interface `StepInterface`
  Overrides:
    `run` in class `Thread`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD