diff --git a/jOOQ/src/main/java/org/jooq/impl/DateDiff.java b/jOOQ/src/main/java/org/jooq/impl/DateDiff.java index 83156ce357..b77d35004f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DateDiff.java +++ b/jOOQ/src/main/java/org/jooq/impl/DateDiff.java @@ -49,7 +49,10 @@ import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.HSQLDB; import static org.jooq.impl.DSL.function; import static org.jooq.impl.DSL.inline; +import static org.jooq.impl.Keywords.K_DAY; +import static org.jooq.impl.Keywords.K_MILLISECOND; import static org.jooq.impl.Names.N_DATEDIFF; +import static org.jooq.impl.Names.N_DATE_DIFF; import static org.jooq.impl.Names.N_DAYS; import static org.jooq.impl.Names.N_DAYS_BETWEEN; import static org.jooq.impl.Names.N_SQL_TSI_DAY; @@ -59,6 +62,7 @@ import static org.jooq.impl.Names.N_SQL_TSI_MINUTE; import static org.jooq.impl.Names.N_SQL_TSI_SECOND; import static org.jooq.impl.Names.N_STRFTIME; import static org.jooq.impl.Names.N_TIMESTAMPDIFF; +import static org.jooq.impl.Names.N_TIMESTAMP_DIFF; import static org.jooq.impl.SQLDataType.TIMESTAMP; import static org.jooq.impl.Tools.castIfNeeded; @@ -211,6 +215,10 @@ final class DateDiff extends AbstractField { + + + + case SQLITE: ctx.sql('(').visit(N_STRFTIME).sql("('%s', ").visit(endDate).sql(") - ").visit(N_STRFTIME).sql("('%s', ").visit(startDate).sql(")) / 86400"); return; diff --git a/jOOQ/src/main/java/org/jooq/impl/Names.java b/jOOQ/src/main/java/org/jooq/impl/Names.java index 50175bfb75..b6b849b3a1 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Names.java +++ b/jOOQ/src/main/java/org/jooq/impl/Names.java @@ -353,6 +353,7 @@ final class Names { static final Name N_TAU = unquotedName("tau"); static final Name N_TIMESTAMPADD = unquotedName("timestampadd"); static final Name N_TIMESTAMPDIFF = unquotedName("timestampdiff"); + static final Name N_TIMESTAMP_DIFF = unquotedName("timestamp_diff"); static final Name N_TO_CHAR = unquotedName("to_char"); static final Name N_TO_CLOB = unquotedName("to_clob"); static final Name N_TO_DATE = unquotedName("to_date"); diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 0b9db03568..971988cd83 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -9236,6 +9236,18 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { throw unsupportedClause(); } + + + + + + + + + + + + return null; } diff --git a/jOOQ/src/main/java/org/jooq/impl/TimestampDiff.java b/jOOQ/src/main/java/org/jooq/impl/TimestampDiff.java index ef6cc3f9e2..2be8b22039 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TimestampDiff.java +++ b/jOOQ/src/main/java/org/jooq/impl/TimestampDiff.java @@ -45,6 +45,7 @@ import static org.jooq.impl.Names.N_DAYS; import static org.jooq.impl.Names.N_NANO100_BETWEEN; import static org.jooq.impl.Names.N_STRFTIME; import static org.jooq.impl.Names.N_TIMESTAMPDIFF; +import static org.jooq.impl.Names.N_TIMESTAMP_DIFF; import static org.jooq.impl.SQLDataType.INTEGER; import static org.jooq.impl.SQLDataType.INTERVALDAYTOSECOND; import static org.jooq.impl.Tools.castIfNeeded; @@ -114,6 +115,10 @@ final class TimestampDiff extends AbstractField { + + + +