You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by lz...@apache.org on 2021/05/13 06:26:32 UTC

[flink] branch master updated: [FLINK-22640] [datagen] Fix DataGen SQL Connector does not support defining fields min/max option of decimal type field

This is an automated email from the ASF dual-hosted git repository.

lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/master by this push:
     new e5435bb  [FLINK-22640] [datagen] Fix DataGen SQL Connector does not support defining fields min/max option of decimal type field
e5435bb is described below

commit e5435bb2ca00f81ca0cf9543c47c56157d431e40
Author: lincoln lee <li...@gmail.com>
AuthorDate: Thu May 13 14:26:10 2021 +0800

    [FLINK-22640] [datagen] Fix DataGen SQL Connector does not support defining fields min/max option of decimal type field
    
    This closes #15900
---
 .../table/factories/datagen/RandomGeneratorVisitor.java  |  4 +++-
 .../table/factories/DataGenTableSourceFactoryTest.java   | 16 ++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/flink-table/flink-table-api-java-bridge/src/main/java/org/apache/flink/table/factories/datagen/RandomGeneratorVisitor.java b/flink-table/flink-table-api-java-bridge/src/main/java/org/apache/flink/table/factories/datagen/RandomGeneratorVisitor.java
index 88bfc7e..f18a851 100644
--- a/flink-table/flink-table-api-java-bridge/src/main/java/org/apache/flink/table/factories/datagen/RandomGeneratorVisitor.java
+++ b/flink-table/flink-table-api-java-bridge/src/main/java/org/apache/flink/table/factories/datagen/RandomGeneratorVisitor.java
@@ -166,7 +166,9 @@ public class RandomGeneratorVisitor extends DataGenVisitorBase {
         return DataGeneratorContainer.of(
                 new DecimalDataRandomGenerator(
                         decimalType.getPrecision(), decimalType.getScale(),
-                        config.get(min), config.get(max)));
+                        config.get(min), config.get(max)),
+                min,
+                max);
     }
 
     @Override
diff --git a/flink-table/flink-table-api-java-bridge/src/test/java/org/apache/flink/table/factories/DataGenTableSourceFactoryTest.java b/flink-table/flink-table-api-java-bridge/src/test/java/org/apache/flink/table/factories/DataGenTableSourceFactoryTest.java
index 0a65bd9..fc07257 100644
--- a/flink-table/flink-table-api-java-bridge/src/test/java/org/apache/flink/table/factories/DataGenTableSourceFactoryTest.java
+++ b/flink-table/flink-table-api-java-bridge/src/test/java/org/apache/flink/table/factories/DataGenTableSourceFactoryTest.java
@@ -106,6 +106,22 @@ public class DataGenTableSourceFactoryTest {
         descriptor.putString(FactoryUtil.CONNECTOR.key(), "datagen");
         descriptor.putString(NUMBER_OF_ROWS.key(), "10");
 
+        // add min max option for numeric types
+        descriptor.putString("fields.f4.min", "1.0");
+        descriptor.putString("fields.f4.max", "1000.0");
+        descriptor.putString("fields.f5.min", "0");
+        descriptor.putString("fields.f5.max", "127");
+        descriptor.putString("fields.f6.min", "0");
+        descriptor.putString("fields.f6.max", "32767");
+        descriptor.putString("fields.f7.min", "0");
+        descriptor.putString("fields.f7.max", "65535");
+        descriptor.putString("fields.f8.min", "0");
+        descriptor.putString("fields.f8.max", String.valueOf(Long.MAX_VALUE));
+        descriptor.putString("fields.f9.min", "0");
+        descriptor.putString("fields.f9.max", String.valueOf(Float.MAX_VALUE));
+        descriptor.putString("fields.f10.min", "0");
+        descriptor.putString("fields.f10.max", String.valueOf(Double.MAX_VALUE));
+
         List<RowData> results = runGenerator(schema, descriptor);
         Assert.assertEquals("Failed to generate all rows", 10, results.size());