You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
I cannot insert any double with absolute value less than 0.1 (except 0).
Inserting 0 or -0 or any other number with absolute value more than 0.1 is fine.
Caused by: io.confluent.ksql.schema.utils.SchemaException: DECIMAL precision must be >= scale: DECIMAL(1,2)
CREATE OR REPLACE STREAM TEST(test_double DOUBLE)
WITH(kafka_topic='test', value_format='Json', partitions='1', replicas='1');
INSERT INTO TEST(test_double) VALUES(0.09);
Expected behavior
Should insert successfully into stream and kafka topic.
Actual behaviour
CLI output
ksql> INSERT INTO TEST(test_double) VALUES(0.09);Failed to insert values into 'TEST'.
Unexpected error generating code for insert value. expression: 0.09
KSQL logs
[2022-04-21 07:47:06,917] INFO Processed unsuccessfully: KsqlRequest{ksql='INSERT INTO TEST(test_double) VALUES(0.09);', configOverrides={}, requestProperties={}, sessionVariables={}, commandSequenceNumber=Optional[954]}, reason: (io.confluent.ksql.rest.server.resources.KsqlResource:330)
ksqldb-server | io.confluent.ksql.util.KsqlStatementException: Failed to insert values into 'TEST'. Unexpected error generating code for insert value. expression: 0.09
ksqldb-server | Statement: INSERT INTO TEST(test_double) VALUES(0.09);
ksqldb-server | at io.confluent.ksql.rest.server.execution.InsertValuesExecutor.buildRecord(InsertValuesExecutor.java:254)
ksqldb-server | at io.confluent.ksql.rest.server.execution.InsertValuesExecutor.execute(InsertValuesExecutor.java:153)
ksqldb-server | at io.confluent.ksql.rest.server.validation.CustomValidators.validate(CustomValidators.java:143)
ksqldb-server | at io.confluent.ksql.rest.server.validation.RequestValidator.validate(RequestValidator.java:163)
ksqldb-server | at io.confluent.ksql.rest.server.validation.RequestValidator.validate(RequestValidator.java:128)
ksqldb-server | at io.confluent.ksql.rest.server.resources.KsqlResource.handleKsqlStatements(KsqlResource.java:286)
ksqldb-server | at io.confluent.ksql.rest.server.KsqlServerEndpoints.lambda$executeKsqlRequest$2(KsqlServerEndpoints.java:177)
ksqldb-server | at io.confluent.ksql.rest.server.KsqlServerEndpoints.lambda$executeOldApiEndpointOnWorker$23(KsqlServerEndpoints.java:330)
ksqldb-server | at io.confluent.ksql.rest.server.KsqlServerEndpoints.lambda$executeOnWorker$22(KsqlServerEndpoints.java:316)
ksqldb-server | at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:313)
ksqldb-server | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
ksqldb-server | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
ksqldb-server | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
ksqldb-server | at java.base/java.lang.Thread.run(Thread.java:829)
ksqldb-server | Caused by: java.lang.RuntimeException: Unexpected error generating code for insert value. expression: 0.09
ksqldb-server | at io.confluent.ksql.execution.codegen.CodeGenRunner.buildCodeGenFromParseTree(CodeGenRunner.java:173)
ksqldb-server | at io.confluent.ksql.execution.codegen.CodeGenRunner.compileExpression(CodeGenRunner.java:122)
ksqldb-server | at io.confluent.ksql.execution.codegen.CodeGenRunner.compileExpression(CodeGenRunner.java:114)
ksqldb-server | at io.confluent.ksql.engine.generic.GenericExpressionResolver$Visitor.visitExpression(GenericExpressionResolver.java:98)
ksqldb-server | at io.confluent.ksql.engine.generic.GenericExpressionResolver$Visitor.visitExpression(GenericExpressionResolver.java:91)
ksqldb-server | at io.confluent.ksql.execution.expression.tree.VisitParentExpressionVisitor.visitLiteral(VisitParentExpressionVisitor.java:61)
ksqldb-server | at io.confluent.ksql.execution.expression.tree.VisitParentExpressionVisitor.visitDecimalLiteral(VisitParentExpressionVisitor.java:71)
ksqldb-server | at io.confluent.ksql.execution.expression.tree.DecimalLiteral.accept(DecimalLiteral.java:49)
ksqldb-server | at io.confluent.ksql.execution.expression.tree.ExpressionVisitor.process(ExpressionVisitor.java:21)
ksqldb-server | at io.confluent.ksql.engine.generic.GenericExpressionResolver.resolve(GenericExpressionResolver.java:88)
ksqldb-server | at io.confluent.ksql.engine.generic.GenericRecordFactory.resolveValues(GenericRecordFactory.java:169)
ksqldb-server | at io.confluent.ksql.engine.generic.GenericRecordFactory.build(GenericRecordFactory.java:90)
ksqldb-server | at io.confluent.ksql.rest.server.execution.InsertValuesExecutor.buildRecord(InsertValuesExecutor.java:232)
ksqldb-server | ... 13 more
ksqldb-server | Caused by: io.confluent.ksql.schema.utils.SchemaException: DECIMAL precision must be >= scale: DECIMAL(1,2)
ksqldb-server | at io.confluent.ksql.schema.ksql.types.SqlDecimal.checkCondition(SqlDecimal.java:168)
ksqldb-server | at io.confluent.ksql.schema.ksql.types.SqlDecimal.validateParameters(SqlDecimal.java:50)
ksqldb-server | at io.confluent.ksql.schema.ksql.types.SqlDecimal.<init>(SqlDecimal.java:42)
ksqldb-server | at io.confluent.ksql.schema.ksql.types.SqlDecimal.of(SqlDecimal.java:34)
ksqldb-server | at io.confluent.ksql.schema.ksql.types.SqlTypes.decimal(SqlTypes.java:48)
ksqldb-server | at io.confluent.ksql.util.DecimalUtil.fromValue(DecimalUtil.java:283)
ksqldb-server | at io.confluent.ksql.execution.codegen.SqlToJavaVisitor$Formatter.visitDecimalLiteral(SqlToJavaVisitor.java:411)
ksqldb-server | at io.confluent.ksql.execution.codegen.SqlToJavaVisitor$Formatter.visitDecimalLiteral(SqlToJavaVisitor.java:268)
ksqldb-server | at io.confluent.ksql.execution.expression.tree.DecimalLiteral.accept(DecimalLiteral.java:49)
ksqldb-server | at io.confluent.ksql.execution.expression.tree.ExpressionVisitor.process(ExpressionVisitor.java:21)
ksqldb-server | at io.confluent.ksql.execution.codegen.SqlToJavaVisitor.formatExpression(SqlToJavaVisitor.java:264)
ksqldb-server | at io.confluent.ksql.execution.codegen.SqlToJavaVisitor.process(SqlToJavaVisitor.java:258)
ksqldb-server | at io.confluent.ksql.execution.codegen.CodeGenRunner.buildCodeGenFromParseTree(CodeGenRunner.java:154)
ksqldb-server | ... 25 more
The text was updated successfully, but these errors were encountered:
Describe the bug
I cannot insert any double with absolute value less than 0.1 (except 0).
Inserting 0 or -0 or any other number with absolute value more than 0.1 is fine.
Caused by: io.confluent.ksql.schema.utils.SchemaException: DECIMAL precision must be >= scale: DECIMAL(1,2)
To Reproduce
docker-compose.yml:
Expected behavior
Should insert successfully into stream and kafka topic.
Actual behaviour
The text was updated successfully, but these errors were encountered: