Class InsertUpdateMeta

All Implemented Interfaces:
Cloneable, ProvidesDatabaseConnectionInformation, ProvidesModelerMeta, StepAttributesInterface, StepMetaInterface

public class InsertUpdateMeta extends BaseDatabaseStepMeta implements StepMetaInterface, ProvidesModelerMeta
  • Constructor Details

    • InsertUpdateMeta

      public InsertUpdateMeta()
  • Method Details

    • setConnection

      public void setConnection(String connectionName)
    • getCommitSize

      @Deprecated public int getCommitSize()
      Deprecated.
      use public String getCommitSizeVar() instead
      Returns:
      Returns the commitSize.
    • getCommitSizeVar

      public String getCommitSizeVar()
      Returns:
      Returns the commitSize.
    • getCommitSize

      public int getCommitSize(org.pentaho.di.core.variables.VariableSpace vs)
      Parameters:
      vs - - variable space to be used for searching variable value usually "this" for a calling step
      Returns:
      Returns the commitSize.
    • setCommitSize

      @Deprecated public void setCommitSize(int commitSize)
      Deprecated.
      use public void setCommitSize( String commitSize ) instead
      Parameters:
      commitSize - The commitSize to set.
    • setCommitSize

      public void setCommitSize(String commitSize)
      Parameters:
      commitSize - The commitSize to set.
    • getDatabaseMeta

      public org.pentaho.di.core.database.DatabaseMeta getDatabaseMeta()
      Description copied from interface: ProvidesDatabaseConnectionInformation
      Returns the database meta for this step
      Specified by:
      getDatabaseMeta in interface ProvidesDatabaseConnectionInformation
      Specified by:
      getDatabaseMeta in class BaseDatabaseStepMeta
      Returns:
      Returns the database.
    • setDatabaseMeta

      public void setDatabaseMeta(org.pentaho.di.core.database.DatabaseMeta database)
      Parameters:
      database - The database to set.
    • getKeyFields

      public InsertUpdateMeta.KeyField[] getKeyFields()
    • setKeyFields

      public void setKeyFields(InsertUpdateMeta.KeyField[] keyFields)
    • getUpdateFields

      public InsertUpdateMeta.UpdateField[] getUpdateFields()
    • setUpdateFields

      public void setUpdateFields(InsertUpdateMeta.UpdateField[] updateFields)
    • getTableName

      public String getTableName()
      Description copied from interface: ProvidesDatabaseConnectionInformation
      Returns the table name for this step
      Specified by:
      getTableName in interface ProvidesDatabaseConnectionInformation
      Returns:
      Returns the tableName.
    • setTableName

      public void setTableName(String tableName)
      Parameters:
      tableName - The tableName to set.
    • loadXML

      public void loadXML(Node stepnode, List<org.pentaho.di.core.database.DatabaseMeta> databases, org.pentaho.metastore.api.IMetaStore metaStore) throws org.pentaho.di.core.exception.KettleXMLException
      Description copied from interface: StepMetaInterface
      Load the values for this step from an XML Node
      Specified by:
      loadXML in interface StepMetaInterface
      Overrides:
      loadXML in class BaseStepMeta
      Parameters:
      stepnode - the Node to get the info from
      databases - The available list of databases to reference to
      metaStore - the metastore to optionally load external reference metadata from
      Throws:
      org.pentaho.di.core.exception.KettleXMLException - When an unexpected XML error occurred. (malformed etc.)
    • allocate

      public void allocate(int nrkeys, int nrvalues)
    • clone

      public Object clone()
      Description copied from interface: StepMetaInterface
      Make an exact copy of this step, make sure to explicitly copy Collections etc.
      Specified by:
      clone in interface StepMetaInterface
      Overrides:
      clone in class BaseStepMeta
      Returns:
      an exact copy of this step
    • setDefault

      public void setDefault()
      Description copied from interface: StepMetaInterface
      Set default values
      Specified by:
      setDefault in interface StepMetaInterface
    • getXML

      public String getXML()
      Description copied from class: BaseStepMeta
      Produces the XML string that describes this step's information.
      Specified by:
      getXML in interface StepMetaInterface
      Overrides:
      getXML in class BaseStepMeta
      Returns:
      String containing the XML describing this step.
    • readRep

      public void readRep(Repository rep, org.pentaho.metastore.api.IMetaStore metaStore, org.pentaho.di.repository.ObjectId id_step, List<org.pentaho.di.core.database.DatabaseMeta> databases) throws org.pentaho.di.core.exception.KettleException
      Description copied from interface: StepMetaInterface
      Read the steps information from a Kettle repository
      Specified by:
      readRep in interface StepMetaInterface
      Overrides:
      readRep in class BaseStepMeta
      Parameters:
      rep - The repository to read from
      metaStore - The MetaStore to read external information from
      id_step - The step ID
      databases - The databases to reference
      Throws:
      org.pentaho.di.core.exception.KettleException - When an unexpected error occurred (database, network, etc)
    • saveRep

      public void saveRep(Repository rep, org.pentaho.metastore.api.IMetaStore metaStore, org.pentaho.di.repository.ObjectId id_transformation, org.pentaho.di.repository.ObjectId id_step) throws org.pentaho.di.core.exception.KettleException
      Description copied from interface: StepMetaInterface
      Save the steps data into a Kettle repository
      Specified by:
      saveRep in interface StepMetaInterface
      Overrides:
      saveRep in class BaseStepMeta
      Parameters:
      rep - The Kettle repository to save to
      metaStore - the metaStore to optionally write to
      id_transformation - The transformation ID
      id_step - The step ID
      Throws:
      org.pentaho.di.core.exception.KettleException - When an unexpected error occurred (database, network, etc)
    • getFields

      public void getFields(org.pentaho.di.core.row.RowMetaInterface rowMeta, String origin, org.pentaho.di.core.row.RowMetaInterface[] info, StepMeta nextStep, org.pentaho.di.core.variables.VariableSpace space, Repository repository, org.pentaho.metastore.api.IMetaStore metaStore) throws org.pentaho.di.core.exception.KettleStepException
      Description copied from class: BaseStepMeta
      Gets the fields.
      Specified by:
      getFields in interface StepMetaInterface
      Overrides:
      getFields in class BaseStepMeta
      Parameters:
      rowMeta - the input row meta that is modified in this method to reflect the output row metadata of the step
      origin - Name of the step to use as input for the origin field in the values
      info - Fields used as extra lookup information
      nextStep - the next step that is targeted
      space - the space The variable space to use to replace variables
      repository - the repository to use to load Kettle metadata objects impacting the output fields
      metaStore - the MetaStore to use to load additional external data or metadata impacting the output fields
      Throws:
      org.pentaho.di.core.exception.KettleStepException - the kettle step exception
    • check

      public void check(List<org.pentaho.di.core.CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepMeta, org.pentaho.di.core.row.RowMetaInterface prev, String[] input, String[] output, org.pentaho.di.core.row.RowMetaInterface info, org.pentaho.di.core.variables.VariableSpace space, Repository repository, org.pentaho.metastore.api.IMetaStore metaStore)
      Description copied from interface: StepMetaInterface
      Checks the settings of this step and puts the findings in a remarks List.
      Specified by:
      check in interface StepMetaInterface
      Overrides:
      check in class BaseStepMeta
      Parameters:
      remarks - The list to put the remarks in @see org.pentaho.di.core.CheckResult
      stepMeta - The stepMeta to help checking
      prev - The fields coming from the previous step
      input - The input step names
      output - The output step names
      info - The fields that are used as information by the step
      space - the variable space to resolve variable expressions with
      repository - the repository to use to load Kettle metadata objects impacting the output fields
      metaStore - the MetaStore to use to load additional external data or metadata impacting the output fields
    • getSQLStatements

      public org.pentaho.di.core.SQLStatement getSQLStatements(TransMeta transMeta, StepMeta stepMeta, org.pentaho.di.core.row.RowMetaInterface prev, Repository repository, org.pentaho.metastore.api.IMetaStore metaStore) throws org.pentaho.di.core.exception.KettleStepException
      Description copied from class: BaseStepMeta
      Standard method to return an SQLStatement object with SQL statements that the step needs in order to work correctly. This can mean "create table", "create index" statements but also "alter table ... add/drop/modify" statements.
      Specified by:
      getSQLStatements in interface StepMetaInterface
      Overrides:
      getSQLStatements in class BaseStepMeta
      Parameters:
      transMeta - TransInfo object containing the complete transformation
      stepMeta - StepMeta object containing the complete step
      prev - Row containing meta-data for the input fields (no data)
      repository - the repository to use to load Kettle metadata objects impacting the output fields
      metaStore - the MetaStore to use to load additional external data or metadata impacting the output fields
      Returns:
      The SQL Statements for this step. If nothing has to be done, the SQLStatement.getSQL() == null. @see SQLStatement
      Throws:
      org.pentaho.di.core.exception.KettleStepException
    • analyseImpact

      public void analyseImpact(List<DatabaseImpact> impact, TransMeta transMeta, StepMeta stepMeta, org.pentaho.di.core.row.RowMetaInterface prev, String[] input, String[] output, org.pentaho.di.core.row.RowMetaInterface info, Repository repository, org.pentaho.metastore.api.IMetaStore metaStore) throws org.pentaho.di.core.exception.KettleStepException
      Description copied from class: BaseStepMeta
      Each step must be able to report on the impact it has on a database, table field, etc.
      Specified by:
      analyseImpact in interface StepMetaInterface
      Overrides:
      analyseImpact in class BaseStepMeta
      Parameters:
      impact - The list of impacts @see org.pentaho.di.transMeta.DatabaseImpact
      transMeta - The transformation information
      stepMeta - The step information
      prev - The fields entering this step
      input - The previous step names
      output - The output step names
      info - The fields used as information by this step
      repository - the repository to use to load Kettle metadata objects impacting the output fields
      metaStore - the MetaStore to use to load additional external data or metadata impacting the output fields
      Throws:
      org.pentaho.di.core.exception.KettleStepException
    • getStep

      public StepInterface getStep(StepMeta stepMeta, StepDataInterface stepDataInterface, int cnr, TransMeta transMeta, Trans trans)
      Description copied from interface: StepMetaInterface
      Get the executing step, needed by Trans to launch a step.
      Specified by:
      getStep in interface StepMetaInterface
      Parameters:
      stepMeta - The step info
      stepDataInterface - the step data interface linked to this step. Here the step can store temporary data, database connections, etc.
      cnr - The copy nr to get
      transMeta - The transformation info
      trans - The launching transformation
    • getStepData

      public StepDataInterface getStepData()
      Description copied from interface: StepMetaInterface
      Get a new instance of the appropriate data class. This data class implements the StepDataInterface. It basically contains the persisting data that needs to live on, even if a worker thread is terminated.
      Specified by:
      getStepData in interface StepMetaInterface
      Returns:
      The appropriate StepDataInterface class.
    • getUsedDatabaseConnections

      public org.pentaho.di.core.database.DatabaseMeta[] getUsedDatabaseConnections()
      Description copied from class: BaseStepMeta
      This method returns all the database connections that are used by the step.
      Specified by:
      getUsedDatabaseConnections in interface StepMetaInterface
      Overrides:
      getUsedDatabaseConnections in class BaseStepMeta
      Returns:
      an array of database connections meta-data. Return an empty array if no connections are used.
    • isUpdateBypassed

      public boolean isUpdateBypassed()
      Returns:
      Returns the updateBypassed.
    • setUpdateBypassed

      public void setUpdateBypassed(boolean updateBypassed)
      Parameters:
      updateBypassed - The updateBypassed to set.
    • getRequiredFields

      public org.pentaho.di.core.row.RowMetaInterface getRequiredFields(org.pentaho.di.core.variables.VariableSpace space) throws org.pentaho.di.core.exception.KettleException
      Description copied from class: BaseStepMeta
      The natural way of data flow in a transformation is source-to-target. However, this makes mapping to target tables difficult to do. To help out here, we supply information to the transformation meta-data model about which fields are required for a step. This allows us to automate certain tasks like the mapping to pre-defined tables. The Table Output step in this case will output the fields in the target table using this method.

      This default implementation returns an empty row meaning that no fields are required for this step to operate.

      Specified by:
      getRequiredFields in interface StepMetaInterface
      Overrides:
      getRequiredFields in class BaseStepMeta
      Parameters:
      space - the variable space to use to do variable substitution.
      Returns:
      the required fields for this steps meta data.
      Throws:
      org.pentaho.di.core.exception.KettleException - in case the required fields can't be determined
    • getSchemaName

      public String getSchemaName()
      Description copied from interface: ProvidesDatabaseConnectionInformation
      Returns the schema name for this step.
      Specified by:
      getSchemaName in interface ProvidesDatabaseConnectionInformation
      Returns:
      the schemaName
    • getMissingDatabaseConnectionInformationMessage

      public String getMissingDatabaseConnectionInformationMessage()
      Description copied from interface: ProvidesDatabaseConnectionInformation
      Provides a way for this object to return a custom message when database connection information is incomplete or missing. If this returns null a default message will be displayed for missing information.
      Specified by:
      getMissingDatabaseConnectionInformationMessage in interface ProvidesDatabaseConnectionInformation
      Returns:
      A friendly message that describes that database connection information is missing and, potentially, why.
    • setSchemaName

      public void setSchemaName(String schemaName)
      Parameters:
      schemaName - the schemaName to set
    • supportsErrorHandling

      public boolean supportsErrorHandling()
      Specified by:
      supportsErrorHandling in interface StepMetaInterface
      Overrides:
      supportsErrorHandling in class BaseStepMeta
      Returns:
      true if this step supports error "reporting" on rows: the ability to send rows to a certain target step.
    • getRowMeta

      public org.pentaho.di.core.row.RowMeta getRowMeta(StepDataInterface stepData)
      Specified by:
      getRowMeta in interface ProvidesModelerMeta
    • getDatabaseFields

      public List<String> getDatabaseFields()
      Specified by:
      getDatabaseFields in interface ProvidesModelerMeta
    • getStreamFields

      public List<String> getStreamFields()
      Specified by:
      getStreamFields in interface ProvidesModelerMeta
    • afterInjectionSynchronization

      public void afterInjectionSynchronization()
      If we use injection we can have different arrays lengths. We need synchronize them for consistency behavior with UI