[ 
https://issues.apache.org/jira/browse/FLINK-18596?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

wangsan updated FLINK-18596:
----------------------------
    Description: 
If rowtime attribute references a regular field, derive format schema from 
table schema may get error result:

{code}
Schema schema = new Schema()
        .field("f1", DataTypes.STRING())
        .field("f2", DataTypes.BIGINT()).from("t")
        .field("r", DataTypes.TIMESTAMP(3))
        .rowtime(
                new 
Rowtime().timestampsFromField("t").watermarksPeriodicBounded(3));

final Map<String, String> properties = schema.toProperties();
final TableSchema actualSchema = 
TableFormatFactoryBase.deriveSchema(properties);
{code}

this code snippet will result in `ValidationException("Field names must be 
unique. Duplicate field: '" + fullFieldName + "'")`, but the excepted result 
should be:

{code}
final TableSchema expectedSchema = TableSchema.builder()
        .field("f1", Types.STRING)
        .field("t", Types.LONG)
        .build();
{code}

  was:
If rowtime attribute references a regular field, derive format schema from 
table schema may get error result:

```java
Schema schema = new Schema()
        .field("f1", DataTypes.STRING())
        .field("f2", DataTypes.BIGINT()).from("t")
        .field("r", DataTypes.TIMESTAMP(3))
        .rowtime(
                new 
Rowtime().timestampsFromField("t").watermarksPeriodicBounded(3));

final Map<String, String> properties = schema.toProperties();
final TableSchema actualSchema = 
TableFormatFactoryBase.deriveSchema(properties);
``` 

this code snippet will result in `ValidationException("Field names must be 
unique. Duplicate field: '" + fullFieldName + "'")`, but the excepted result 
should be:

```java
TableSchema expectedSchema = TableSchema.builder()
        .field("f1", Types.STRING)
        .field("t", Types.LONG)
        .build();
```


> Derive format schema from table schema may get error result
> -----------------------------------------------------------
>
>                 Key: FLINK-18596
>                 URL: https://issues.apache.org/jira/browse/FLINK-18596
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / API
>    Affects Versions: 1.11.0
>            Reporter: wangsan
>            Priority: Major
>
> If rowtime attribute references a regular field, derive format schema from 
> table schema may get error result:
> {code}
> Schema schema = new Schema()
>       .field("f1", DataTypes.STRING())
>       .field("f2", DataTypes.BIGINT()).from("t")
>       .field("r", DataTypes.TIMESTAMP(3))
>       .rowtime(
>               new 
> Rowtime().timestampsFromField("t").watermarksPeriodicBounded(3));
> final Map<String, String> properties = schema.toProperties();
> final TableSchema actualSchema = 
> TableFormatFactoryBase.deriveSchema(properties);
> {code}
> this code snippet will result in `ValidationException("Field names must be 
> unique. Duplicate field: '" + fullFieldName + "'")`, but the excepted result 
> should be:
> {code}
> final TableSchema expectedSchema = TableSchema.builder()
>       .field("f1", Types.STRING)
>       .field("t", Types.LONG)
>       .build();
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to