Class SqlFunctionRegistryFactory

java.lang.Object
org.litebridgedb.db.spi.impl.function.SqlFunctionRegistryFactory

public class SqlFunctionRegistryFactory extends Object
Factory for creating SqlFunctionRegistry instances.

This is meant to be easily overridden by different database providers, replacing specific expressions with database-specific alternatives.

  • Field Details

  • Constructor Details

    • SqlFunctionRegistryFactory

      public SqlFunctionRegistryFactory(ColumnIdentifierGenerator columnIdentifierGenerator, SelectSqlGenerator selectSqlGenerator)
      Constructs a new SqlFunctionRegistryFactory.
      Parameters:
      columnIdentifierGenerator - The database provider's column identifier generator
      selectSqlGenerator - The database provider's select SQL generator
  • Method Details

    • create

      public SqlFunctionRegistry create()
      Creates the SQL function registry for this database provider.
      Returns:
      SQL function registry for the database provider
    • createSelectColumn

      protected SelectColumn createSelectColumn(Column column, Object... args)
      Creates an expression to select a specific column.
      Parameters:
      column - Target column
      args - Not used; empty array
      Returns:
      Expression to select a specific column
    • createSubselect

      protected SubselectExpression createSubselect(Select subselect)
    • createLiteral

      protected LiteralExpression createLiteral(@Nullable Object value)
    • createSelectReference

      protected SelectReference createSelectReference(Column column)
    • createAvg

      protected DelegateColumnExpression createAvg(ColumnExpression target, Object... args)
      Creates an AVG-implementing expression.
      Parameters:
      target - Target expression to encapsulate.
      args - Not used; empty array
      Returns:
      A AVG-implementing expression
    • createMin

      protected DelegateColumnExpression createMin(ColumnExpression target, Object... args)
      Creates an MIN-implementing expression.
      Parameters:
      target - Target expression to encapsulate.
      args - Not used; empty array
      Returns:
      A MIN-implementing expression
    • createMax

      protected DelegateColumnExpression createMax(ColumnExpression target, Object... args)
      Creates an MAX-implementing expression.
      Parameters:
      target - Target expression to encapsulate.
      args - Not used; empty array
      Returns:
      A MAX-implementing expression
    • createCount

      protected SelectExpression createCount()
      Creates a COUNT-implementing expression.
      Returns:
      A COUNT-implementing expression
    • createUpper

      protected DelegateColumnExpression createUpper(ColumnExpression columnExpression, Object... args)
      Creates an UPPER-implementing expression.
      Parameters:
      columnExpression - Target expression to encapsulate.
      args - Not used; empty array
      Returns:
      An UPPER-implementing expression
    • createLower

      protected DelegateColumnExpression createLower(ColumnExpression target, Object... args)
      Creates a LOWER-implementing expression.
      Parameters:
      target - Target expression to encapsulate.
      args - Not used; empty array
      Returns:
      A LOWER-implementing expression
    • createSubstring

      protected DelegateColumnExpression createSubstring(ColumnExpression target, Object... args)
      Creates a SUBSTRING-implementing expression.
      Parameters:
      target - Target expression to encapsulate.
      args - expression arguments; should be [int, Inteeger]
      Returns:
      SUBSTRING-implementing expression
    • createSubstring

      protected DelegateColumnExpression createSubstring(ColumnExpression target, int start, @Nullable Integer length)
      Creates a SUBSTRING-implementing expression.
      Parameters:
      target - Target expression to encapsulate.
      start - Start index (first character is 1)
      length - Substring length; may be null
      Returns:
      SUBSTRING-implementing expression
    • createAbs

      protected DelegateColumnExpression createAbs(ColumnExpression target, Object... args)
      Creates an ABS-implementing expression.
      Parameters:
      target - Target expression to encapsulate.
      args - Not used; empty array
      Returns:
      An ABS-implementing expression
    • createCurrentTimestamp

      protected SelectExpression createCurrentTimestamp()