This commit is contained in:
Lukas Eder 2020-12-09 15:33:15 +01:00
parent c2805f964f
commit 2d3b46394d
40 changed files with 146 additions and 88 deletions

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -14953,6 +14953,24 @@ public class DSL {
return new CharLength(string);
}
/**
* The <code>DEG</code> function.
*/
@NotNull
@Support
public static Field<BigDecimal> deg(Number radians) {
return new Degrees(Tools.field(radians));
}
/**
* The <code>DEG</code> function.
*/
@NotNull
@Support
public static Field<BigDecimal> deg(Field<? extends Number> radians) {
return new Degrees(radians);
}
/**
* The <code>LEFT</code> function.
*/
@ -15313,6 +15331,24 @@ public class DSL {
return new Position(in, search);
}
/**
* The <code>RAD</code> function.
*/
@NotNull
@Support
public static Field<BigDecimal> rad(Number degrees) {
return new Radians(Tools.field(degrees));
}
/**
* The <code>RAD</code> function.
*/
@NotNull
@Support
public static Field<BigDecimal> rad(Field<? extends Number> degrees) {
return new Radians(degrees);
}
/**
* The <code>REPEAT</code> function.
*/
@ -15577,6 +15613,9 @@ public class DSL {
/**
* The <code>SIGN</code> function.
*/
@ -20120,54 +20159,6 @@ public class DSL {
);
}
/**
* Calculate degrees from radians from this field.
*
* @see #deg(Field)
*/
@NotNull
@Support
public static Field<BigDecimal> deg(Number value) {
return deg(Tools.field(value));
}
/**
* Calculate degrees from radians from this field.
* <p>
* This renders the degrees function where available:
* <code><pre>degrees([field])</pre></code> ... or emulates it elsewhere:
* <code><pre>[field] * 180 / PI</pre></code>
*/
@NotNull
@Support
public static Field<BigDecimal> deg(Field<? extends Number> field) {
return new Degrees(Tools.nullSafe(field));
}
/**
* Calculate radians from degrees from this field.
*
* @see #rad(Field)
*/
@NotNull
@Support
public static Field<BigDecimal> rad(Number value) {
return rad(Tools.field(value));
}
/**
* Calculate radians from degrees from this field.
* <p>
* This renders the degrees function where available:
* <code><pre>degrees([field])</pre></code> ... or emulates it elsewhere:
* <code><pre>[field] * PI / 180</pre></code>
*/
@NotNull
@Support
public static Field<BigDecimal> rad(Field<? extends Number> field) {
return new Radians(Tools.nullSafe(field));
}

View File

@ -37,34 +37,48 @@
*/
package org.jooq.impl;
import static org.jooq.impl.DSL.inline;
import static org.jooq.impl.DSL.pi;
import static org.jooq.impl.Names.N_DEGREES;
import static org.jooq.impl.Tools.castIfNeeded;
import static org.jooq.impl.DSL.*;
import static org.jooq.impl.Internal.*;
import static org.jooq.impl.Keywords.*;
import static org.jooq.impl.Names.*;
import static org.jooq.impl.SQLDataType.*;
import static org.jooq.impl.Tools.*;
import static org.jooq.impl.Tools.BooleanDataKey.*;
import static org.jooq.SQLDialect.*;
import java.math.BigDecimal;
import org.jooq.*;
import org.jooq.impl.*;
import org.jooq.Context;
import org.jooq.Field;
import java.math.*;
import java.util.*;
/**
* @author Lukas Eder
* The <code>DEG</code> statement.
*/
final class Degrees extends AbstractField<BigDecimal> {
@SuppressWarnings({ "rawtypes", "unchecked", "unused" })
final class Degrees
extends
AbstractField<BigDecimal>
{
/**
* Generated UID
*/
private static final long serialVersionUID = -7273879239726265322L;
private static final long serialVersionUID = 1L;
private final Field<?> argument;
private final Field<? extends Number> radians;
Degrees(Field<?> argument) {
super(N_DEGREES, SQLDataType.NUMERIC);
Degrees(
Field<? extends Number> radians
) {
super(N_DEGREES, allNotNull(NUMERIC, radians));
this.argument = argument;
this.radians = nullSafeNotNull(radians, INTEGER);
}
// -------------------------------------------------------------------------
// XXX: QueryPart API
// -------------------------------------------------------------------------
@Override
public final void accept(Context<?> ctx) {
switch (ctx.family()) {
@ -79,12 +93,14 @@ final class Degrees extends AbstractField<BigDecimal> {
case FIREBIRD:
case SQLITE:
ctx.visit(castIfNeeded(argument, BigDecimal.class).mul(inline(180)).div(pi()));
ctx.visit(castIfNeeded(radians, BigDecimal.class).mul(inline(180)).div(pi()));
break;
default:
ctx.visit(N_DEGREES).sql('(').visit(argument).sql(')');
ctx.visit(N_DEGREES).sql('(').visit(radians).sql(')');
break;
}
}
}

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -37,36 +37,48 @@
*/
package org.jooq.impl;
import static org.jooq.impl.DSL.function;
import static org.jooq.impl.DSL.inline;
import static org.jooq.impl.DSL.pi;
import static org.jooq.impl.Names.N_RADIANS;
import static org.jooq.impl.SQLDataType.NUMERIC;
import static org.jooq.impl.Tools.castIfNeeded;
import static org.jooq.impl.DSL.*;
import static org.jooq.impl.Internal.*;
import static org.jooq.impl.Keywords.*;
import static org.jooq.impl.Names.*;
import static org.jooq.impl.SQLDataType.*;
import static org.jooq.impl.Tools.*;
import static org.jooq.impl.Tools.BooleanDataKey.*;
import static org.jooq.SQLDialect.*;
import java.math.BigDecimal;
import org.jooq.*;
import org.jooq.impl.*;
import org.jooq.Context;
import org.jooq.Field;
import java.math.*;
import java.util.*;
/**
* @author Lukas Eder
* The <code>RAD</code> statement.
*/
final class Radians extends AbstractField<BigDecimal> {
@SuppressWarnings({ "rawtypes", "unchecked", "unused" })
final class Radians
extends
AbstractField<BigDecimal>
{
/**
* Generated UID
*/
private static final long serialVersionUID = -7273879239726265322L;
private static final long serialVersionUID = 1L;
private final Field<?> argument;
private final Field<? extends Number> degrees;
Radians(Field<?> argument) {
super(N_RADIANS, NUMERIC);
Radians(
Field<? extends Number> degrees
) {
super(N_RADIANS, allNotNull(NUMERIC, degrees));
this.argument = argument;
this.degrees = nullSafeNotNull(degrees, INTEGER);
}
// -------------------------------------------------------------------------
// XXX: QueryPart API
// -------------------------------------------------------------------------
@Override
public final void accept(Context<?> ctx) {
switch (ctx.family()) {
@ -78,12 +90,14 @@ final class Radians extends AbstractField<BigDecimal> {
case FIREBIRD:
case SQLITE:
ctx.visit(castIfNeeded(argument, BigDecimal.class).mul(pi()).div(inline(180)));
ctx.visit(castIfNeeded(degrees, BigDecimal.class).mul(pi()).div(inline(180)));
return;
default:
ctx.visit(function(N_RADIANS, NUMERIC, argument));
ctx.visit(function(N_RADIANS, NUMERIC, degrees));
return;
}
}
}

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -94,5 +94,6 @@ package org.jooq.impl;

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.*;
import org.jooq.*;
import org.jooq.impl.*;
import java.math.*;
import java.util.*;
/**