Search in sources :

Example 1 with TimeLiteral

use of io.confluent.ksql.execution.expression.tree.TimeLiteral in project ksql by confluentinc.

the class InterpretedExpressionTest method shouldEvaluateCastToTime.

@Test
public void shouldEvaluateCastToTime() {
    // Given:
    final Expression cast1 = new Cast(new TimestampLiteral(Timestamp.from(Instant.ofEpochMilli(1000))), new Type(SqlPrimitiveType.of("TIME")));
    final Expression cast2 = new Cast(new StringLiteral("23:59:58"), new Type(SqlPrimitiveType.of("TIME")));
    final Expression cast3 = new Cast(new TimeLiteral(new Time(1000)), new Type(SqlPrimitiveType.of("TIME")));
    // When:
    InterpretedExpression interpreter1 = interpreter(cast1);
    InterpretedExpression interpreter2 = interpreter(cast2);
    InterpretedExpression interpreter3 = interpreter(cast3);
    // Then:
    assertThat(interpreter1.evaluate(ROW), is(new Time(1000L)));
    assertThat(interpreter2.evaluate(ROW), is(new Time(86398000)));
    assertThat(interpreter3.evaluate(ROW), is(new Time(1000L)));
}
Also used : Cast(io.confluent.ksql.execution.expression.tree.Cast) LambdaType(io.confluent.ksql.function.types.LambdaType) IntegerType(io.confluent.ksql.function.types.IntegerType) GenericType(io.confluent.ksql.function.types.GenericType) SqlPrimitiveType(io.confluent.ksql.schema.ksql.types.SqlPrimitiveType) IntervalUnitType(io.confluent.ksql.function.types.IntervalUnitType) Type(io.confluent.ksql.execution.expression.tree.Type) ArrayType(io.confluent.ksql.function.types.ArrayType) TimestampLiteral(io.confluent.ksql.execution.expression.tree.TimestampLiteral) StringLiteral(io.confluent.ksql.execution.expression.tree.StringLiteral) ArithmeticBinaryExpression(io.confluent.ksql.execution.expression.tree.ArithmeticBinaryExpression) LogicalBinaryExpression(io.confluent.ksql.execution.expression.tree.LogicalBinaryExpression) Expression(io.confluent.ksql.execution.expression.tree.Expression) CreateMapExpression(io.confluent.ksql.execution.expression.tree.CreateMapExpression) DereferenceExpression(io.confluent.ksql.execution.expression.tree.DereferenceExpression) ArithmeticUnaryExpression(io.confluent.ksql.execution.expression.tree.ArithmeticUnaryExpression) CreateArrayExpression(io.confluent.ksql.execution.expression.tree.CreateArrayExpression) CreateStructExpression(io.confluent.ksql.execution.expression.tree.CreateStructExpression) SubscriptExpression(io.confluent.ksql.execution.expression.tree.SubscriptExpression) InListExpression(io.confluent.ksql.execution.expression.tree.InListExpression) ComparisonExpression(io.confluent.ksql.execution.expression.tree.ComparisonExpression) SearchedCaseExpression(io.confluent.ksql.execution.expression.tree.SearchedCaseExpression) Time(java.sql.Time) TimeLiteral(io.confluent.ksql.execution.expression.tree.TimeLiteral) Test(org.junit.Test)

Example 2 with TimeLiteral

use of io.confluent.ksql.execution.expression.tree.TimeLiteral in project ksql by confluentinc.

the class SqlToJavaVisitorTest method shouldGenerateCorrectCodeForTime.

@Test
public void shouldGenerateCorrectCodeForTime() {
    // Given:
    final TimeLiteral time = new TimeLiteral(new Time(185000));
    // When:
    final String java = sqlToJavaVisitor.process(time);
    // Then:
    assertThat(java, is("00:03:05"));
}
Also used : Time(java.sql.Time) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) TimeLiteral(io.confluent.ksql.execution.expression.tree.TimeLiteral) Test(org.junit.Test)

Example 3 with TimeLiteral

use of io.confluent.ksql.execution.expression.tree.TimeLiteral in project ksql by confluentinc.

the class InterpretedExpressionTest method shouldEvaluateComparisons_time.

@Test
public void shouldEvaluateComparisons_time() {
    // Given:
    final Expression expression1 = new ComparisonExpression(ComparisonExpression.Type.GREATER_THAN, TIMESTAMPCOL, new TimestampLiteral(new Timestamp(1000)));
    final Expression expression2 = new ComparisonExpression(ComparisonExpression.Type.LESS_THAN, TIMESTAMPCOL, new StringLiteral("2017-11-13T23:59:58"));
    final Expression expression3 = new ComparisonExpression(ComparisonExpression.Type.EQUAL, TIMESTAMPCOL, new DateLiteral(new Date(864000000)));
    final Expression expression4 = new ComparisonExpression(ComparisonExpression.Type.NOT_EQUAL, TIMECOL, new TimeLiteral(new Time(1000)));
    final Expression expression5 = new ComparisonExpression(ComparisonExpression.Type.LESS_THAN_OR_EQUAL, TIMECOL, new StringLiteral("00:01:32"));
    final Expression expression6 = new ComparisonExpression(ComparisonExpression.Type.GREATER_THAN_OR_EQUAL, DATECOL, new StringLiteral("1970-01-20"));
    final Expression expression7 = new ComparisonExpression(ComparisonExpression.Type.GREATER_THAN_OR_EQUAL, DATECOL, new DateLiteral(new Date(864000000)));
    final Expression expression8 = new ComparisonExpression(ComparisonExpression.Type.EQUAL, DATECOL, new TimestampLiteral(new Timestamp(864000005)));
    // When:
    InterpretedExpression interpreter1 = interpreter(expression1);
    InterpretedExpression interpreter2 = interpreter(expression2);
    InterpretedExpression interpreter3 = interpreter(expression3);
    InterpretedExpression interpreter4 = interpreter(expression4);
    InterpretedExpression interpreter5 = interpreter(expression5);
    InterpretedExpression interpreter6 = interpreter(expression6);
    InterpretedExpression interpreter7 = interpreter(expression7);
    InterpretedExpression interpreter8 = interpreter(expression8);
    // Then:
    assertThat(interpreter1.evaluate(make(10, new Timestamp(1001))), is(true));
    assertThat(interpreter2.evaluate(make(10, new Timestamp(151061759799L))), is(true));
    assertThat(interpreter3.evaluate(make(10, new Timestamp(864000000))), is(true));
    assertThat(interpreter4.evaluate(make(12, new Time(1000))), is(false));
    assertThat(interpreter5.evaluate(make(12, new Time(4))), is(true));
    assertThat(interpreter6.evaluate(make(13, new Date(86400000))), is(false));
    assertThat(interpreter7.evaluate(make(13, new Date(864000000))), is(true));
    assertThat(interpreter8.evaluate(make(13, new Date(864000000))), is(false));
}
Also used : ComparisonExpression(io.confluent.ksql.execution.expression.tree.ComparisonExpression) TimestampLiteral(io.confluent.ksql.execution.expression.tree.TimestampLiteral) StringLiteral(io.confluent.ksql.execution.expression.tree.StringLiteral) DateLiteral(io.confluent.ksql.execution.expression.tree.DateLiteral) ArithmeticBinaryExpression(io.confluent.ksql.execution.expression.tree.ArithmeticBinaryExpression) LogicalBinaryExpression(io.confluent.ksql.execution.expression.tree.LogicalBinaryExpression) Expression(io.confluent.ksql.execution.expression.tree.Expression) CreateMapExpression(io.confluent.ksql.execution.expression.tree.CreateMapExpression) DereferenceExpression(io.confluent.ksql.execution.expression.tree.DereferenceExpression) ArithmeticUnaryExpression(io.confluent.ksql.execution.expression.tree.ArithmeticUnaryExpression) CreateArrayExpression(io.confluent.ksql.execution.expression.tree.CreateArrayExpression) CreateStructExpression(io.confluent.ksql.execution.expression.tree.CreateStructExpression) SubscriptExpression(io.confluent.ksql.execution.expression.tree.SubscriptExpression) InListExpression(io.confluent.ksql.execution.expression.tree.InListExpression) ComparisonExpression(io.confluent.ksql.execution.expression.tree.ComparisonExpression) SearchedCaseExpression(io.confluent.ksql.execution.expression.tree.SearchedCaseExpression) Time(java.sql.Time) Timestamp(java.sql.Timestamp) Date(java.sql.Date) TimeLiteral(io.confluent.ksql.execution.expression.tree.TimeLiteral) Test(org.junit.Test)

Aggregations

TimeLiteral (io.confluent.ksql.execution.expression.tree.TimeLiteral)3 Time (java.sql.Time)3 Test (org.junit.Test)3 ArithmeticBinaryExpression (io.confluent.ksql.execution.expression.tree.ArithmeticBinaryExpression)2 ArithmeticUnaryExpression (io.confluent.ksql.execution.expression.tree.ArithmeticUnaryExpression)2 ComparisonExpression (io.confluent.ksql.execution.expression.tree.ComparisonExpression)2 CreateArrayExpression (io.confluent.ksql.execution.expression.tree.CreateArrayExpression)2 CreateMapExpression (io.confluent.ksql.execution.expression.tree.CreateMapExpression)2 CreateStructExpression (io.confluent.ksql.execution.expression.tree.CreateStructExpression)2 DereferenceExpression (io.confluent.ksql.execution.expression.tree.DereferenceExpression)2 Expression (io.confluent.ksql.execution.expression.tree.Expression)2 InListExpression (io.confluent.ksql.execution.expression.tree.InListExpression)2 LogicalBinaryExpression (io.confluent.ksql.execution.expression.tree.LogicalBinaryExpression)2 SearchedCaseExpression (io.confluent.ksql.execution.expression.tree.SearchedCaseExpression)2 StringLiteral (io.confluent.ksql.execution.expression.tree.StringLiteral)2 SubscriptExpression (io.confluent.ksql.execution.expression.tree.SubscriptExpression)2 TimestampLiteral (io.confluent.ksql.execution.expression.tree.TimestampLiteral)2 Cast (io.confluent.ksql.execution.expression.tree.Cast)1 DateLiteral (io.confluent.ksql.execution.expression.tree.DateLiteral)1 Type (io.confluent.ksql.execution.expression.tree.Type)1