Skip to content

Commit

Permalink
#307 Open access to more methods of SQL Generators.
Browse files Browse the repository at this point in the history
  • Loading branch information
yruslan committed Nov 30, 2023
1 parent 773aaa3 commit bdad44b
Show file tree
Hide file tree
Showing 10 changed files with 24 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ trait SqlGenerator {

def getDataQuery(tableName: String, infoDateBegin: LocalDate, infoDateEnd: LocalDate, columns: Seq[String], limit: Option[Int]): String

def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String

def getDateLiteral(date: LocalDate): String

def requiresConnection: Boolean = false

def setConnection(connection: Connection): Unit = {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class SqlGeneratorDb2(sqlConfig: SqlConfig) extends SqlGeneratorBase(sqlConfig)
s"SELECT ${columnExpr(columns)} FROM $tableName WHERE $where${getLimit(limit)}"
}

private def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
override def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
val dateBeginLit = getDateLiteral(dateBegin)
val dateEndLit = getDateLiteral(dateEnd)

Expand All @@ -69,7 +69,7 @@ class SqlGeneratorDb2(sqlConfig: SqlConfig) extends SqlGeneratorBase(sqlConfig)
}
}

private def getDateLiteral(date: LocalDate): String = {
override def getDateLiteral(date: LocalDate): String = {
val dateStr = dateFormatterApp.format(date)

sqlConfig.infoDateType match {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class SqlGeneratorDenodo(sqlConfig: SqlConfig, extraConfig: Config) extends SqlG
s"SELECT ${columnExpr(columns)} FROM $tableName WHERE $where${getLimit(limit)}"
}

private def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
override def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
val dateBeginLit = getDateLiteral(dateBegin)
val dateEndLit = getDateLiteral(dateEnd)

Expand All @@ -64,7 +64,7 @@ class SqlGeneratorDenodo(sqlConfig: SqlConfig, extraConfig: Config) extends SqlG
}
}

private def getDateLiteral(date: LocalDate): String = {
def getDateLiteral(date: LocalDate): String = {
val dateStr = dateFormatterApp.format(date)

sqlConfig.infoDateType match {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class SqlGeneratorGeneric(sqlConfig: SqlConfig) extends SqlGeneratorBase(sqlConf
s"SELECT ${columnExpr(columns)} FROM $tableName WHERE $where${getLimit(limit)}"
}

private def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
override def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
val dateBeginLit = getDateLiteral(dateBegin)
val dateEndLit = getDateLiteral(dateEnd)

Expand All @@ -69,7 +69,7 @@ class SqlGeneratorGeneric(sqlConfig: SqlConfig) extends SqlGeneratorBase(sqlConf
}
}

private def getDateLiteral(date: LocalDate): String = {
override def getDateLiteral(date: LocalDate): String = {
val dateStr = dateFormatterApp.format(date)

sqlConfig.infoDateType match {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class SqlGeneratorHive(sqlConfig: SqlConfig, extraConfig: Config) extends SqlGen
s"SELECT ${columnExpr(columns)} FROM $tableName WHERE $where${getLimit(limit)}"
}

private def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
override def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
val dateBeginLit = getDateLiteral(dateBegin)
val dateEndLit = getDateLiteral(dateEnd)

Expand All @@ -78,7 +78,7 @@ class SqlGeneratorHive(sqlConfig: SqlConfig, extraConfig: Config) extends SqlGen
}
}

private def getDateLiteral(date: LocalDate): String = {
override def getDateLiteral(date: LocalDate): String = {
val dateStr = dateFormatterApp.format(date)

sqlConfig.infoDateType match {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class SqlGeneratorHsqlDb(sqlConfig: SqlConfig) extends SqlGeneratorBase(sqlConfi
s"SELECT ${columnExpr(columns)} FROM $tableName WHERE $where${getLimit(limit)}"
}

private def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
override def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
val dateBeginLit = getDateLiteral(dateBegin)
val dateEndLit = getDateLiteral(dateEnd)

Expand All @@ -69,7 +69,7 @@ class SqlGeneratorHsqlDb(sqlConfig: SqlConfig) extends SqlGeneratorBase(sqlConfi
}
}

private def getDateLiteral(date: LocalDate): String = {
override def getDateLiteral(date: LocalDate): String = {
val dateStr = dateFormatterApp.format(date)

sqlConfig.infoDateType match {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@

package za.co.absa.pramen.core.sql

import com.typesafe.config.Config

import java.time.LocalDate
import java.time.format.DateTimeFormatter

import com.typesafe.config.Config

class SqlGeneratorMicrosoft(sqlConfig: SqlConfig, extraConfig: Config) extends SqlGeneratorBase(sqlConfig) {

private val dateFormatterApp = DateTimeFormatter.ofPattern(sqlConfig.dateFormatApp)
Expand Down Expand Up @@ -51,7 +51,7 @@ class SqlGeneratorMicrosoft(sqlConfig: SqlConfig, extraConfig: Config) extends S
s"SELECT ${getLimit(limit)}${columnExpr(columns)} FROM $tableName WITH (NOLOCK) WHERE $where"
}

private def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
override def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
val dateBeginLit = getDateLiteral(dateBegin)
val dateEndLit = getDateLiteral(dateEnd)

Expand All @@ -71,7 +71,7 @@ class SqlGeneratorMicrosoft(sqlConfig: SqlConfig, extraConfig: Config) extends S
}
}

private def getDateLiteral(date: LocalDate): String = {
override def getDateLiteral(date: LocalDate): String = {
val dateStr = dateFormatterApp.format(date)

sqlConfig.infoDateType match {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class SqlGeneratorOracle(sqlConfig: SqlConfig, extraConfig: Config) extends SqlG
s"SELECT ${columnExpr(columns)} FROM $tableName WHERE $where${getLimit(limit, hasWhere = true)}"
}

private def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
override def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
val dateBeginLit = getDateLiteral(dateBegin)
val dateEndLit = getDateLiteral(dateEnd)

Expand All @@ -66,7 +66,7 @@ class SqlGeneratorOracle(sqlConfig: SqlConfig, extraConfig: Config) extends SqlG
}
}

private def getDateLiteral(date: LocalDate): String = {
override def getDateLiteral(date: LocalDate): String = {
sqlConfig.infoDateType match {
case SqlColumnType.DATE => {
val dateStr = dateFormatterOracle.format(date)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class SqlGeneratorPostgreSQL(sqlConfig: SqlConfig, extraConfig: Config) extends
s"SELECT ${columnExpr(columns)} FROM $tableName WHERE $where${getLimit(limit)}"
}

private def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
override def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
val dateBeginLit = getDateLiteral(dateBegin)
val dateEndLit = getDateLiteral(dateEnd)

Expand All @@ -71,7 +71,7 @@ class SqlGeneratorPostgreSQL(sqlConfig: SqlConfig, extraConfig: Config) extends
}
}

private def getDateLiteral(date: LocalDate): String = {
override def getDateLiteral(date: LocalDate): String = {
val dateStr = dateFormatterApp.format(date)

sqlConfig.infoDateType match {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ class SqlGeneratorSas(sqlConfig: SqlConfig, extraConfig: Config) extends SqlGene
statement.executeQuery(sql)
}

private def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
override def getWhere(dateBegin: LocalDate, dateEnd: LocalDate): String = {
val dateBeginLit = getDateLiteral(dateBegin)
val dateEndLit = getDateLiteral(dateEnd)

Expand All @@ -131,7 +131,7 @@ class SqlGeneratorSas(sqlConfig: SqlConfig, extraConfig: Config) extends SqlGene
}
}

private def getDateLiteral(date: LocalDate): String = {
override def getDateLiteral(date: LocalDate): String = {
sqlConfig.infoDateType match {
case SqlColumnType.DATE =>
val dateStr = dateFormatterOracle.format(date)
Expand Down

0 comments on commit bdad44b

Please sign in to comment.