diff --git a/jOOQ/src/main/java/org/jooq/impl/Expression.java b/jOOQ/src/main/java/org/jooq/impl/Expression.java index b0fbdb9f3c..220101c9bb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Expression.java +++ b/jOOQ/src/main/java/org/jooq/impl/Expression.java @@ -84,6 +84,9 @@ import static org.jooq.impl.Keywords.K_MILLISECOND; import static org.jooq.impl.Keywords.K_MONTH; import static org.jooq.impl.Keywords.K_YEAR_MONTH; import static org.jooq.impl.Keywords.K_YEAR_TO_MONTH; +import static org.jooq.impl.Names.N_ADD_DAYS; +import static org.jooq.impl.Names.N_ADD_MONTHS; +import static org.jooq.impl.Names.N_ADD_SECONDS; import static org.jooq.impl.Names.N_DATEADD; import static org.jooq.impl.Names.N_DATE_ADD; import static org.jooq.impl.Names.N_STRFTIME; @@ -551,6 +554,32 @@ final class Expression extends AbstractField { + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -604,6 +633,8 @@ final class Expression extends AbstractField { + + @@ -612,6 +643,7 @@ final class Expression extends AbstractField { ctx.visit(N_DATEADD).sql('(').visit(K_DAY).sql(", ").visit(rhsAsNumber()).sql(", ").visit(lhs).sql(')'); else ctx.visit(N_DATEADD).sql('(').visit(K_DAY).sql(", ").visit(rhsAsNumber().neg()).sql(", ").visit(lhs).sql(')'); + break; } @@ -623,6 +655,7 @@ final class Expression extends AbstractField { ctx.visit(lhs.add(DSL.field("{0} day", rhsAsNumber()))); else ctx.visit(lhs.sub(DSL.field("{0} day", rhsAsNumber()))); + break; } @@ -655,6 +688,7 @@ final class Expression extends AbstractField { ctx.visit(N_DATE_ADD).sql('(').visit(lhs).sql(", ").visit(K_INTERVAL).sql(' ').visit(rhsAsNumber()).sql(' ').visit(K_DAY).sql(')'); else ctx.visit(N_DATE_ADD).sql('(').visit(lhs).sql(", ").visit(K_INTERVAL).sql(' ').visit(rhsAsNumber().neg()).sql(' ').visit(K_DAY).sql(')'); + break; } @@ -677,6 +711,8 @@ final class Expression extends AbstractField { + + @@ -689,6 +725,7 @@ final class Expression extends AbstractField { ctx.visit(new DateAdd(lhs, rhsAsNumber(), DatePart.DAY)); else ctx.visit(new DateAdd(lhs, rhsAsNumber().neg(), DatePart.DAY)); + break; } @@ -697,6 +734,7 @@ final class Expression extends AbstractField { ctx.visit(N_STRFTIME).sql("('%Y-%m-%d %H:%M:%f', ").visit(lhs).sql(", ").visit(rhsAsNumber().concat(inline(" day"))).sql(')'); else ctx.visit(N_STRFTIME).sql("('%Y-%m-%d %H:%M:%f', ").visit(lhs).sql(", ").visit(rhsAsNumber().neg().concat(inline(" day"))).sql(')'); + break; @@ -710,6 +748,7 @@ final class Expression extends AbstractField { + case H2: default: ctx.visit(new DefaultExpression<>(lhs, operator, wrap(rhs))); diff --git a/jOOQ/src/main/java/org/jooq/impl/Names.java b/jOOQ/src/main/java/org/jooq/impl/Names.java index 9661c82368..4f8e87b3eb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Names.java +++ b/jOOQ/src/main/java/org/jooq/impl/Names.java @@ -53,7 +53,9 @@ final class Names { static final Name N_COLUMN_VALUE = name("COLUMN_VALUE"); static final Name N_ACOS = unquotedName("acos"); + static final Name N_ADD_DAYS = unquotedName("add_days"); static final Name N_ADD_MONTHS = unquotedName("add_months"); + static final Name N_ADD_SECONDS = unquotedName("add_seconds"); static final Name N_ARRAY = unquotedName("array"); static final Name N_ARRAY_AGG = unquotedName("array_agg"); static final Name N_ASC = unquotedName("asc"); @@ -153,6 +155,7 @@ final class Names { static final Name N_MID = unquotedName("mid"); static final Name N_MOD = unquotedName("mod"); static final Name N_MODE = unquotedName("mode"); + static final Name N_NANO100_BETWEEN = unquotedName("nano100_between"); static final Name N_NEXTVAL = unquotedName("nextval"); static final Name N_NOT = unquotedName("not"); static final Name N_NOW = unquotedName("now"); diff --git a/jOOQ/src/main/java/org/jooq/impl/TimestampDiff.java b/jOOQ/src/main/java/org/jooq/impl/TimestampDiff.java index c2f938ce61..c94c04a5e7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TimestampDiff.java +++ b/jOOQ/src/main/java/org/jooq/impl/TimestampDiff.java @@ -41,6 +41,7 @@ import static org.jooq.impl.DSL.function; import static org.jooq.impl.DSL.keyword; import static org.jooq.impl.Keywords.K_MILLISECOND; import static org.jooq.impl.Names.N_DATEDIFF; +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.SQLDataType.INTEGER; @@ -107,6 +108,10 @@ final class TimestampDiff extends AbstractField { + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java index fd163bf941..b0ada09d55 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tools.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java @@ -4714,6 +4714,7 @@ final class Tools { + case CUBRID: ctx.sql(' ').visit(K_AUTO_INCREMENT); break; case DERBY: ctx.sql(' ').visit(K_GENERATED_BY_DEFAULT_AS_IDENTITY); break; case HSQLDB: ctx.sql(' ').visit(K_GENERATED_BY_DEFAULT_AS_IDENTITY).sql('(').visit(K_START_WITH).sql(" 1)"); break;