Skip to content

Commit

Permalink
Fix review issues
Browse files Browse the repository at this point in the history
  • Loading branch information
obabichevjb committed Apr 26, 2024
1 parent 6945dd5 commit 75328e9
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 122 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -249,13 +249,10 @@ class JavaLocalTimeColumnType : ColumnType<LocalTime>(), IDateColumnType {
override fun sqlType(): String = currentDialect.dataTypeProvider.timeType()

override fun nonNullValueToString(value: LocalTime): String {
if (currentDialect is OracleDialect) {
return "TO_TIMESTAMP('${ORACLE_TIME_STRING_FORMATTER.format(value)}', 'YYYY-MM-DD HH24:MI:SS')"
}
if (currentDialect.h2Mode == H2Dialect.H2CompatibilityMode.Oracle) {
return "'${ORACLE_TIME_STRING_FORMATTER.format(value)}'"
val dialect = currentDialect
if (dialect is OracleDialect || dialect.h2Mode == H2Dialect.H2CompatibilityMode.Oracle) {
return "TIMESTAMP '${ORACLE_TIME_STRING_FORMATTER.format(value)}'"
}

return "'${DEFAULT_TIME_STRING_FORMATTER.format(value)}'"
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,10 @@ import org.jetbrains.exposed.sql.javatime.*
import org.jetbrains.exposed.sql.selectAll
import org.jetbrains.exposed.sql.tests.DatabaseTestsBase
import org.jetbrains.exposed.sql.tests.shared.assertEquals
import org.jetbrains.exposed.sql.update
import org.junit.Ignore
import org.junit.Test
import java.time.Instant
import java.time.LocalDate
import java.time.LocalDateTime
import java.time.LocalTime
import kotlin.test.assertNotNull

class DateTimeLiteralTest : DatabaseTestsBase() {
Expand All @@ -31,41 +28,11 @@ class DateTimeLiteralTest : DatabaseTestsBase() {
}

private val defaultTimestamp = Instant.parse("2000-01-01T01:00:00.00Z")
private val futureTimestamp = Instant.parse("3000-01-01T01:00:00.00Z")

object TableWithTimestamp : IntIdTable() {
val timestamp = timestamp("timestamp")
}

private val defaultLocalTime = LocalTime.of(1, 0, 0)
private val futureLocalTime = LocalTime.of(18, 0, 0)

object TableWithTime : IntIdTable() {
val time = time("time")
}

@Test
fun testInsertWithDateLiteral() {
withTables(TableWithDate) {
TableWithDate.insert {
it[date] = dateLiteral(defaultDate)
}
assertEquals(defaultDate, TableWithDate.selectAll().first()[TableWithDate.date])
}
}

@Test
fun testUpdateWithDateLiteral() {
withTables(TableWithDate) {
TableWithDate.insert {
it[date] = defaultDate
}

TableWithDate.update { it[date] = dateLiteral(futureDate) }
assertEquals(futureDate, TableWithDate.selectAll().first()[TableWithDate.date])
}
}

@Test
fun testSelectByDateLiteralEquality() {
withTables(TableWithDate) {
Expand All @@ -89,28 +56,6 @@ class DateTimeLiteralTest : DatabaseTestsBase() {
}
}

@Test
fun testInsertDatetimeLiteral() {
withTables(TableWithDatetime) {
TableWithDatetime.insert {
it[datetime] = dateTimeLiteral(defaultDatetime)
}
assertEquals(defaultDatetime, TableWithDatetime.selectAll().first()[TableWithDatetime.datetime])
}
}

@Test
fun testUpdateWithDatetimeLiteral() {
withTables(TableWithDatetime) {
TableWithDatetime.insert {
it[datetime] = defaultDatetime
}

TableWithDatetime.update { it[datetime] = dateTimeLiteral(futureDatetime) }
assertEquals(futureDatetime, TableWithDatetime.selectAll().first()[TableWithDatetime.datetime])
}
}

@Test
fun testSelectByDatetimeLiteralEquality() {
withTables(TableWithDatetime) {
Expand All @@ -134,28 +79,6 @@ class DateTimeLiteralTest : DatabaseTestsBase() {
}
}

@Test
fun testInsertWithTimestampLiteral() {
withTables(TableWithTimestamp) {
TableWithTimestamp.insert {
it[timestamp] = timestampLiteral(defaultTimestamp)
}
assertEquals(defaultTimestamp, TableWithTimestamp.selectAll().first()[TableWithTimestamp.timestamp])
}
}

@Test
fun testUpdateWithTimestampLiteral() {
withTables(TableWithTimestamp) {
TableWithTimestamp.insert {
it[timestamp] = defaultTimestamp
}

TableWithTimestamp.update { it[timestamp] = timestampLiteral(futureTimestamp) }
assertEquals(futureTimestamp, TableWithTimestamp.selectAll().first()[TableWithTimestamp.timestamp])
}
}

@Test
fun testSelectByTimestampLiteralEquality() {
withTables(TableWithTimestamp) {
Expand All @@ -167,42 +90,4 @@ class DateTimeLiteralTest : DatabaseTestsBase() {
assertEquals(defaultTimestamp, query.single()[TableWithTimestamp.timestamp])
}
}

@Test
fun testInsertTimeLiteral() {
withTables(TableWithTime) {
TableWithTime.insert {
it[time] = timeLiteral(defaultLocalTime)
}
assertEquals(defaultLocalTime, TableWithTime.selectAll().first()[TableWithTime.time])
}
}

@Test
fun testUpdateWithTimeLiteral() {
withTables(TableWithTime) {
TableWithTime.insert {
it[time] = defaultLocalTime
}

TableWithTime.update { it[time] = timeLiteral(futureLocalTime) }
assertEquals(futureLocalTime, TableWithTime.selectAll().first()[TableWithTime.time])
}
}

@Test
@Ignore(
"Test fails with 'Collection is empty.' message. It can not find anything in db after insert. " +
"But SQL requests looks correct, and work well manually applied."
)
fun testSelectByTimeLiteralEquality() {
withTables(TableWithTime) {
TableWithTime.insert {
it[time] = defaultLocalTime
}

val query = TableWithTime.select(TableWithTime.id, TableWithTime.time).where { TableWithTime.time eq timeLiteral(defaultLocalTime) }
assertEquals(defaultLocalTime, query.single()[TableWithTime.time])
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,8 @@ class DateTimeWithTimeZoneColumnType : ColumnType<DateTime>(), IDateColumnType {
override fun nonNullValueToString(value: DateTime): String = when (currentDialect) {
is SQLiteDialect -> "'${SQLITE_AND_MYSQL_DATE_TIME_WITH_TIME_ZONE_FORMATTER.print(value)}'"
is MysqlDialect -> "'${SQLITE_AND_MYSQL_DATE_TIME_WITH_TIME_ZONE_FORMATTER.print(value)}'"
is OracleDialect -> "'${ORACLE_DATE_TIME_WITH_TIME_ZONE_FORMATTER.print(value)}'"
is OracleDialect ->
"TO_TIMESTAMP_TZ('${ORACLE_DATE_TIME_WITH_TIME_ZONE_FORMATTER.print(value.toDateTime(DateTimeZone.getDefault()))}', 'YYYY-MM-DD HH24:MI:SS.FF3 TZH:TZM')"
else -> "'${DEFAULT_DATE_TIME_WITH_TIME_ZONE_FORMATTER.print(value)}'"
}

Expand Down

0 comments on commit 75328e9

Please sign in to comment.