Hi,

Table API queries are executed with SQL semantics.
In SQL, the strings are padded because the result data type is not a
VARCHAR but a CHAR with as many character as the longest string.
You can use the RTRIM function to remove the padding whitespaces.

Best, Fabian


Am Di., 29. Jan. 2019 um 15:08 Uhr schrieb Ramya Ramamurthy <
hair...@gmail.com>:

> Hi,
>
> I have encountered a weird issue. When constructing a Table Query with CASE
> Statements, like below:
> .append("CASE ")
> .append("WHEN aggrcat = '0' AND botcode='r4'  THEN 'monitoring' ")
> .append("WHEN aggrcat = '1' AND botcode='r4' THEN 'aggregator' ")
> .append("WHEN aggrcat = '2' AND botcode='r4' THEN 'social network' ")
>  .append("WHEN botcode='r0' OR botcode='r8' THEN 'crawler' ")
>
> Followed by converting to a stream:
> DataStream<Row> ds = tableEnv.toAppendStream(table_name, Row.Class)
> ds.print()
>
> I can see that while I print this, it takes the length of the longest
> string of all the four categories and appends spaces till that length.
> Eg. Crawler is of length of the biggest string [social network mayb].
>
> This affects when my data is sinked to ES. The fields are appended with
> empty spaces, which affects the querying.
>
> I know i can do a simple split to eliminate these spaces in my code, but
> just curious to understand why this behavior. It becomes cumbersome to
> maintain code this way and for readability as well.
>
> ~Ramya.
>

Reply via email to