Class PhoenixDatabaseAdapter

java.lang.Object
org.apache.nifi.processors.standard.db.impl.PhoenixDatabaseAdapter
All Implemented Interfaces:
DatabaseAdapter

public final class PhoenixDatabaseAdapter extends Object implements DatabaseAdapter
A Apache Phoenix database adapter that generates ANSI SQL.
  • Field Details

  • Constructor Details

    • PhoenixDatabaseAdapter

      public PhoenixDatabaseAdapter()
  • Method Details

    • getName

      public String getName()
      Specified by:
      getName in interface DatabaseAdapter
    • getDescription

      public String getDescription()
      Specified by:
      getDescription in interface DatabaseAdapter
    • getSelectStatement

      public String getSelectStatement(String tableName, String columnNames, String whereClause, String orderByClause, Long limit, Long offset)
      Description copied from interface: DatabaseAdapter
      Returns a SQL SELECT statement with the given clauses applied.
      Specified by:
      getSelectStatement in interface DatabaseAdapter
      Parameters:
      tableName - The name of the table to fetch rows from
      columnNames - The names of the columns to fetch from the table
      whereClause - The filter to apply to the statement. This should not include the WHERE keyword
      orderByClause - The columns/clause used for ordering the result rows. This should not include the ORDER BY keywords
      limit - The value for the LIMIT clause (i.e. the number of rows to return)
      offset - The value for the OFFSET clause (i.e. the number of rows to skip)
      Returns:
      A String containing a SQL SELECT statement with the given clauses applied
    • getSelectStatement

      public String getSelectStatement(String tableName, String columnNames, String whereClause, String orderByClause, Long limit, Long offset, String columnForPartitioning)
      Description copied from interface: DatabaseAdapter
      Returns a SQL SELECT statement with the given clauses applied. Note that if this method is overridden, the other overloaded methods need to be overridden as well, to call this method with columnForPartitioning = false
      Specified by:
      getSelectStatement in interface DatabaseAdapter
      Parameters:
      tableName - The name of the table to fetch rows from
      columnNames - The names of the columns to fetch from the table
      whereClause - The filter to apply to the statement. This should not include the WHERE keyword
      orderByClause - The columns/clause used for ordering the result rows. This should not include the ORDER BY keywords
      limit - The value for the LIMIT clause (i.e. the number of rows to return)
      offset - The value for the OFFSET clause (i.e. the number of rows to skip)
      columnForPartitioning - The (optional) column name that, if provided, the limit and offset values are based on values from the column itself (rather than the row number)
      Returns:
      A String containing a SQL SELECT statement with the given clauses applied
    • getUpsertStatement

      public String getUpsertStatement(String table, List<String> columnNames, Collection<String> uniqueKeyColumnNames)
      Description copied from interface: DatabaseAdapter
      Returns an SQL UPSERT statement - i.e. UPDATE record or INSERT if id doesn't exist.

      There is no standard way of doing this so not all adapters support it - use together with DatabaseAdapter.supportsUpsert()!
      Specified by:
      getUpsertStatement in interface DatabaseAdapter
      Parameters:
      table - The name of the table in which to update/insert a record into.
      columnNames - The name of the columns in the table to add values to.
      uniqueKeyColumnNames - The name of the columns that form a unique key.
      Returns:
      A String containing the parameterized jdbc SQL statement. The order and number of parameters are the same as that of the provided column list.
    • supportsUpsert

      public boolean supportsUpsert()
      Description copied from interface: DatabaseAdapter
      Tells whether this adapter supports UPSERT.
      Specified by:
      supportsUpsert in interface DatabaseAdapter
      Returns:
      true if UPSERT is supported, false otherwise
    • supportsCreateTableIfNotExists

      public boolean supportsCreateTableIfNotExists()
      Specified by:
      supportsCreateTableIfNotExists in interface DatabaseAdapter
    • getAlterTableStatement

      public String getAlterTableStatement(String tableName, List<ColumnDescription> columnsToAdd)
      Specified by:
      getAlterTableStatement in interface DatabaseAdapter
    • getSQLForDataType

      public String getSQLForDataType(int sqlType)
      Specified by:
      getSQLForDataType in interface DatabaseAdapter