Junning Liang created FLINK-22448:
-------------------------------------

             Summary: FlinkRexUtil create Sarg String array elemet supplement 
space
                 Key: FLINK-22448
                 URL: https://issues.apache.org/jira/browse/FLINK-22448
             Project: Flink
          Issue Type: Bug
            Reporter: Junning Liang
             Fix For: 1.13.0


As we know, the new version of Calcite introduces the {{SEARCH}} rex call to 
express range conditions. But when i used string array to express range in the 
StreamSQL, i found that some string in the array had problems with the 
completion length by using space.

the following query:

 
{code:java}
create view tempView as
  select * from sourceTable where action in ('systemnotifyv2', 'session_auth', 
'create_session', 'close_single_chat'){code}
after Sarg operator created, the result is :

 

 
{code:java}
create view tempView as
 select * from sourceTable where action in ('systemnotifyv2', 'session_auth  ', 
'create_session', 'close_single_chat')
{code}
I debuged to see why dose the happans. After calling  rexBuilder.makeLiteral in

FlinkRexUtil#expandSearchOperands, the string 'session_auth' became 
'session_auth  '.And i also found that the type and length of the string array 
were determined by the first string in the array.Just like my example above, 
the type of the array was Char and the length of the array was 14.the length of 
'session_auth' string was 12 so that calcite would supplement  2 space to make 
it meet the length of 14.

Now, i All I can think of is adding trim parameter to remove the space。do you 
have a better way to fix or avoid the problem happens?

 



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

Reply via email to