[SPARK-22816][TEST] Basic tests for PromoteStrings and InConversion

## What changes were proposed in this pull request?

Test Coverage for `PromoteStrings` and `InConversion`, this is a Sub-tasks for 
[SPARK-22722](https://issues.apache.org/jira/browse/SPARK-22722).

## How was this patch tested?

N/A

Author: Yuming Wang <wgy...@gmail.com>

Closes #20001 from wangyum/SPARK-22816.


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/7f6d10a7
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/7f6d10a7
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/7f6d10a7

Branch: refs/heads/master
Commit: 7f6d10a7376594cf7e5225a05fa9e58b2011ad3d
Parents: 77988a9
Author: Yuming Wang <wgy...@gmail.com>
Authored: Sun Dec 17 09:15:10 2017 -0800
Committer: gatorsmile <gatorsm...@gmail.com>
Committed: Sun Dec 17 09:15:10 2017 -0800

----------------------------------------------------------------------
 .../inputs/typeCoercion/native/inConversion.sql |  330 +++
 .../typeCoercion/native/promoteStrings.sql      |  364 +++
 .../typeCoercion/native/inConversion.sql.out    | 2454 +++++++++++++++++
 .../typeCoercion/native/promoteStrings.sql.out  | 2578 ++++++++++++++++++
 4 files changed, 5726 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/7f6d10a7/sql/core/src/test/resources/sql-tests/inputs/typeCoercion/native/inConversion.sql
----------------------------------------------------------------------
diff --git 
a/sql/core/src/test/resources/sql-tests/inputs/typeCoercion/native/inConversion.sql
 
b/sql/core/src/test/resources/sql-tests/inputs/typeCoercion/native/inConversion.sql
new file mode 100644
index 0000000..39dbe72
--- /dev/null
+++ 
b/sql/core/src/test/resources/sql-tests/inputs/typeCoercion/native/inConversion.sql
@@ -0,0 +1,330 @@
+--
+--   Licensed to the Apache Software Foundation (ASF) under one or more
+--   contributor license agreements.  See the NOTICE file distributed with
+--   this work for additional information regarding copyright ownership.
+--   The ASF licenses this file to You under the Apache License, Version 2.0
+--   (the "License"); you may not use this file except in compliance with
+--   the License.  You may obtain a copy of the License at
+--
+--      http://www.apache.org/licenses/LICENSE-2.0
+--
+--   Unless required by applicable law or agreed to in writing, software
+--   distributed under the License is distributed on an "AS IS" BASIS,
+--   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+--   See the License for the specific language governing permissions and
+--   limitations under the License.
+--
+
+CREATE TEMPORARY VIEW t AS SELECT 1;
+
+SELECT cast(1 as tinyint) in (cast(1 as tinyint)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as smallint)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as int)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as bigint)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as float)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as double)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as decimal(10, 0))) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as string)) FROM t;
+SELECT cast(1 as tinyint) in (cast('1' as binary)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as boolean)) FROM t;
+SELECT cast(1 as tinyint) in (cast('2017-12-11 09:30:00.0' as timestamp)) FROM 
t;
+SELECT cast(1 as tinyint) in (cast('2017-12-11 09:30:00' as date)) FROM t;
+
+SELECT cast(1 as smallint) in (cast(1 as tinyint)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as smallint)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as int)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as bigint)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as float)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as double)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as decimal(10, 0))) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as string)) FROM t;
+SELECT cast(1 as smallint) in (cast('1' as binary)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as boolean)) FROM t;
+SELECT cast(1 as smallint) in (cast('2017-12-11 09:30:00.0' as timestamp)) 
FROM t;
+SELECT cast(1 as smallint) in (cast('2017-12-11 09:30:00' as date)) FROM t;
+
+SELECT cast(1 as int) in (cast(1 as tinyint)) FROM t;
+SELECT cast(1 as int) in (cast(1 as smallint)) FROM t;
+SELECT cast(1 as int) in (cast(1 as int)) FROM t;
+SELECT cast(1 as int) in (cast(1 as bigint)) FROM t;
+SELECT cast(1 as int) in (cast(1 as float)) FROM t;
+SELECT cast(1 as int) in (cast(1 as double)) FROM t;
+SELECT cast(1 as int) in (cast(1 as decimal(10, 0))) FROM t;
+SELECT cast(1 as int) in (cast(1 as string)) FROM t;
+SELECT cast(1 as int) in (cast('1' as binary)) FROM t;
+SELECT cast(1 as int) in (cast(1 as boolean)) FROM t;
+SELECT cast(1 as int) in (cast('2017-12-11 09:30:00.0' as timestamp)) FROM t;
+SELECT cast(1 as int) in (cast('2017-12-11 09:30:00' as date)) FROM t;
+
+SELECT cast(1 as bigint) in (cast(1 as tinyint)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as smallint)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as int)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as bigint)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as float)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as double)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as decimal(10, 0))) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as string)) FROM t;
+SELECT cast(1 as bigint) in (cast('1' as binary)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as boolean)) FROM t;
+SELECT cast(1 as bigint) in (cast('2017-12-11 09:30:00.0' as timestamp)) FROM 
t;
+SELECT cast(1 as bigint) in (cast('2017-12-11 09:30:00' as date)) FROM t;
+
+SELECT cast(1 as float) in (cast(1 as tinyint)) FROM t;
+SELECT cast(1 as float) in (cast(1 as smallint)) FROM t;
+SELECT cast(1 as float) in (cast(1 as int)) FROM t;
+SELECT cast(1 as float) in (cast(1 as bigint)) FROM t;
+SELECT cast(1 as float) in (cast(1 as float)) FROM t;
+SELECT cast(1 as float) in (cast(1 as double)) FROM t;
+SELECT cast(1 as float) in (cast(1 as decimal(10, 0))) FROM t;
+SELECT cast(1 as float) in (cast(1 as string)) FROM t;
+SELECT cast(1 as float) in (cast('1' as binary)) FROM t;
+SELECT cast(1 as float) in (cast(1 as boolean)) FROM t;
+SELECT cast(1 as float) in (cast('2017-12-11 09:30:00.0' as timestamp)) FROM t;
+SELECT cast(1 as float) in (cast('2017-12-11 09:30:00' as date)) FROM t;
+
+SELECT cast(1 as double) in (cast(1 as tinyint)) FROM t;
+SELECT cast(1 as double) in (cast(1 as smallint)) FROM t;
+SELECT cast(1 as double) in (cast(1 as int)) FROM t;
+SELECT cast(1 as double) in (cast(1 as bigint)) FROM t;
+SELECT cast(1 as double) in (cast(1 as float)) FROM t;
+SELECT cast(1 as double) in (cast(1 as double)) FROM t;
+SELECT cast(1 as double) in (cast(1 as decimal(10, 0))) FROM t;
+SELECT cast(1 as double) in (cast(1 as string)) FROM t;
+SELECT cast(1 as double) in (cast('1' as binary)) FROM t;
+SELECT cast(1 as double) in (cast(1 as boolean)) FROM t;
+SELECT cast(1 as double) in (cast('2017-12-11 09:30:00.0' as timestamp)) FROM 
t;
+SELECT cast(1 as double) in (cast('2017-12-11 09:30:00' as date)) FROM t;
+
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as tinyint)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as smallint)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as int)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as bigint)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as float)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as double)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as decimal(10, 0))) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as string)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast('1' as binary)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as boolean)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast('2017-12-11 09:30:00.0' as 
timestamp)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast('2017-12-11 09:30:00' as date)) FROM 
t;
+
+SELECT cast(1 as string) in (cast(1 as tinyint)) FROM t;
+SELECT cast(1 as string) in (cast(1 as smallint)) FROM t;
+SELECT cast(1 as string) in (cast(1 as int)) FROM t;
+SELECT cast(1 as string) in (cast(1 as bigint)) FROM t;
+SELECT cast(1 as string) in (cast(1 as float)) FROM t;
+SELECT cast(1 as string) in (cast(1 as double)) FROM t;
+SELECT cast(1 as string) in (cast(1 as decimal(10, 0))) FROM t;
+SELECT cast(1 as string) in (cast(1 as string)) FROM t;
+SELECT cast(1 as string) in (cast('1' as binary)) FROM t;
+SELECT cast(1 as string) in (cast(1 as boolean)) FROM t;
+SELECT cast(1 as string) in (cast('2017-12-11 09:30:00.0' as timestamp)) FROM 
t;
+SELECT cast(1 as string) in (cast('2017-12-11 09:30:00' as date)) FROM t;
+
+SELECT cast('1' as binary) in (cast(1 as tinyint)) FROM t;
+SELECT cast('1' as binary) in (cast(1 as smallint)) FROM t;
+SELECT cast('1' as binary) in (cast(1 as int)) FROM t;
+SELECT cast('1' as binary) in (cast(1 as bigint)) FROM t;
+SELECT cast('1' as binary) in (cast(1 as float)) FROM t;
+SELECT cast('1' as binary) in (cast(1 as double)) FROM t;
+SELECT cast('1' as binary) in (cast(1 as decimal(10, 0))) FROM t;
+SELECT cast('1' as binary) in (cast(1 as string)) FROM t;
+SELECT cast('1' as binary) in (cast('1' as binary)) FROM t;
+SELECT cast('1' as binary) in (cast(1 as boolean)) FROM t;
+SELECT cast('1' as binary) in (cast('2017-12-11 09:30:00.0' as timestamp)) 
FROM t;
+SELECT cast('1' as binary) in (cast('2017-12-11 09:30:00' as date)) FROM t;
+
+SELECT true in (cast(1 as tinyint)) FROM t;
+SELECT true in (cast(1 as smallint)) FROM t;
+SELECT true in (cast(1 as int)) FROM t;
+SELECT true in (cast(1 as bigint)) FROM t;
+SELECT true in (cast(1 as float)) FROM t;
+SELECT true in (cast(1 as double)) FROM t;
+SELECT true in (cast(1 as decimal(10, 0))) FROM t;
+SELECT true in (cast(1 as string)) FROM t;
+SELECT true in (cast('1' as binary)) FROM t;
+SELECT true in (cast(1 as boolean)) FROM t;
+SELECT true in (cast('2017-12-11 09:30:00.0' as timestamp)) FROM t;
+SELECT true in (cast('2017-12-11 09:30:00' as date)) FROM t;
+
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast(2 as tinyint)) FROM 
t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast(2 as smallint)) 
FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast(2 as int)) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast(2 as bigint)) FROM 
t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast(2 as float)) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast(2 as double)) FROM 
t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast(2 as decimal(10, 
0))) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast(2 as string)) FROM 
t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2' as binary)) 
FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast(2 as boolean)) FROM 
t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2017-12-11 
09:30:00.0' as timestamp)) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2017-12-11 
09:30:00' as date)) FROM t;
+
+SELECT cast('2017-12-12 09:30:00' as date) in (cast(2 as tinyint)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast(2 as smallint)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast(2 as int)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast(2 as bigint)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast(2 as float)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast(2 as double)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast(2 as decimal(10, 0))) FROM 
t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast(2 as string)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2' as binary)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast(2 as boolean)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2017-12-11 09:30:00.0' as 
timestamp)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2017-12-11 09:30:00' as 
date)) FROM t;
+
+SELECT cast(1 as tinyint) in (cast(1 as tinyint), cast(1 as tinyint)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as tinyint), cast(1 as smallint)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as tinyint), cast(1 as int)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as tinyint), cast(1 as bigint)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as tinyint), cast(1 as float)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as tinyint), cast(1 as double)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as tinyint), cast(1 as decimal(10, 0))) 
FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as tinyint), cast(1 as string)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as tinyint), cast('1' as binary)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as tinyint), cast(1 as boolean)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as tinyint), cast('2017-12-11 09:30:00.0' 
as timestamp)) FROM t;
+SELECT cast(1 as tinyint) in (cast(1 as tinyint), cast('2017-12-11 09:30:00' 
as date)) FROM t;
+
+SELECT cast(1 as smallint) in (cast(1 as smallint), cast(1 as tinyint)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as smallint), cast(1 as smallint)) FROM 
t;
+SELECT cast(1 as smallint) in (cast(1 as smallint), cast(1 as int)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as smallint), cast(1 as bigint)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as smallint), cast(1 as float)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as smallint), cast(1 as double)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as smallint), cast(1 as decimal(10, 0))) 
FROM t;
+SELECT cast(1 as smallint) in (cast(1 as smallint), cast(1 as string)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as smallint), cast('1' as binary)) FROM 
t;
+SELECT cast(1 as smallint) in (cast(1 as smallint), cast(1 as boolean)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as smallint), cast('2017-12-11 
09:30:00.0' as timestamp)) FROM t;
+SELECT cast(1 as smallint) in (cast(1 as smallint), cast('2017-12-11 09:30:00' 
as date)) FROM t;
+
+SELECT cast(1 as int) in (cast(1 as int), cast(1 as tinyint)) FROM t;
+SELECT cast(1 as int) in (cast(1 as int), cast(1 as smallint)) FROM t;
+SELECT cast(1 as int) in (cast(1 as int), cast(1 as int)) FROM t;
+SELECT cast(1 as int) in (cast(1 as int), cast(1 as bigint)) FROM t;
+SELECT cast(1 as int) in (cast(1 as int), cast(1 as float)) FROM t;
+SELECT cast(1 as int) in (cast(1 as int), cast(1 as double)) FROM t;
+SELECT cast(1 as int) in (cast(1 as int), cast(1 as decimal(10, 0))) FROM t;
+SELECT cast(1 as int) in (cast(1 as int), cast(1 as string)) FROM t;
+SELECT cast(1 as int) in (cast(1 as int), cast('1' as binary)) FROM t;
+SELECT cast(1 as int) in (cast(1 as int), cast(1 as boolean)) FROM t;
+SELECT cast(1 as int) in (cast(1 as int), cast('2017-12-11 09:30:00.0' as 
timestamp)) FROM t;
+SELECT cast(1 as int) in (cast(1 as int), cast('2017-12-11 09:30:00' as date)) 
FROM t;
+
+SELECT cast(1 as bigint) in (cast(1 as bigint), cast(1 as tinyint)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as bigint), cast(1 as smallint)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as bigint), cast(1 as int)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as bigint), cast(1 as bigint)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as bigint), cast(1 as float)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as bigint), cast(1 as double)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as bigint), cast(1 as decimal(10, 0))) 
FROM t;
+SELECT cast(1 as bigint) in (cast(1 as bigint), cast(1 as string)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as bigint), cast('1' as binary)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as bigint), cast(1 as boolean)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as bigint), cast('2017-12-11 09:30:00.0' 
as timestamp)) FROM t;
+SELECT cast(1 as bigint) in (cast(1 as bigint), cast('2017-12-11 09:30:00' as 
date)) FROM t;
+
+SELECT cast(1 as float) in (cast(1 as float), cast(1 as tinyint)) FROM t;
+SELECT cast(1 as float) in (cast(1 as float), cast(1 as smallint)) FROM t;
+SELECT cast(1 as float) in (cast(1 as float), cast(1 as int)) FROM t;
+SELECT cast(1 as float) in (cast(1 as float), cast(1 as bigint)) FROM t;
+SELECT cast(1 as float) in (cast(1 as float), cast(1 as float)) FROM t;
+SELECT cast(1 as float) in (cast(1 as float), cast(1 as double)) FROM t;
+SELECT cast(1 as float) in (cast(1 as float), cast(1 as decimal(10, 0))) FROM 
t;
+SELECT cast(1 as float) in (cast(1 as float), cast(1 as string)) FROM t;
+SELECT cast(1 as float) in (cast(1 as float), cast('1' as binary)) FROM t;
+SELECT cast(1 as float) in (cast(1 as float), cast(1 as boolean)) FROM t;
+SELECT cast(1 as float) in (cast(1 as float), cast('2017-12-11 09:30:00.0' as 
timestamp)) FROM t;
+SELECT cast(1 as float) in (cast(1 as float), cast('2017-12-11 09:30:00' as 
date)) FROM t;
+
+SELECT cast(1 as double) in (cast(1 as double), cast(1 as tinyint)) FROM t;
+SELECT cast(1 as double) in (cast(1 as double), cast(1 as smallint)) FROM t;
+SELECT cast(1 as double) in (cast(1 as double), cast(1 as int)) FROM t;
+SELECT cast(1 as double) in (cast(1 as double), cast(1 as bigint)) FROM t;
+SELECT cast(1 as double) in (cast(1 as double), cast(1 as float)) FROM t;
+SELECT cast(1 as double) in (cast(1 as double), cast(1 as double)) FROM t;
+SELECT cast(1 as double) in (cast(1 as double), cast(1 as decimal(10, 0))) 
FROM t;
+SELECT cast(1 as double) in (cast(1 as double), cast(1 as string)) FROM t;
+SELECT cast(1 as double) in (cast(1 as double), cast('1' as binary)) FROM t;
+SELECT cast(1 as double) in (cast(1 as double), cast(1 as boolean)) FROM t;
+SELECT cast(1 as double) in (cast(1 as double), cast('2017-12-11 09:30:00.0' 
as timestamp)) FROM t;
+SELECT cast(1 as double) in (cast(1 as double), cast('2017-12-11 09:30:00' as 
date)) FROM t;
+
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as decimal(10, 0)), cast(1 as 
tinyint)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as decimal(10, 0)), cast(1 as 
smallint)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as decimal(10, 0)), cast(1 as 
int)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as decimal(10, 0)), cast(1 as 
bigint)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as decimal(10, 0)), cast(1 as 
float)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as decimal(10, 0)), cast(1 as 
double)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as decimal(10, 0)), cast(1 as 
decimal(10, 0))) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as decimal(10, 0)), cast(1 as 
string)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as decimal(10, 0)), cast('1' as 
binary)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as decimal(10, 0)), cast(1 as 
boolean)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as decimal(10, 0)), 
cast('2017-12-11 09:30:00.0' as timestamp)) FROM t;
+SELECT cast(1 as decimal(10, 0)) in (cast(1 as decimal(10, 0)), 
cast('2017-12-11 09:30:00' as date)) FROM t;
+
+SELECT cast(1 as string) in (cast(1 as string), cast(1 as tinyint)) FROM t;
+SELECT cast(1 as string) in (cast(1 as string), cast(1 as smallint)) FROM t;
+SELECT cast(1 as string) in (cast(1 as string), cast(1 as int)) FROM t;
+SELECT cast(1 as string) in (cast(1 as string), cast(1 as bigint)) FROM t;
+SELECT cast(1 as string) in (cast(1 as string), cast(1 as float)) FROM t;
+SELECT cast(1 as string) in (cast(1 as string), cast(1 as double)) FROM t;
+SELECT cast(1 as string) in (cast(1 as string), cast(1 as decimal(10, 0))) 
FROM t;
+SELECT cast(1 as string) in (cast(1 as string), cast(1 as string)) FROM t;
+SELECT cast(1 as string) in (cast(1 as string), cast('1' as binary)) FROM t;
+SELECT cast(1 as string) in (cast(1 as string), cast(1 as boolean)) FROM t;
+SELECT cast(1 as string) in (cast(1 as string), cast('2017-12-11 09:30:00.0' 
as timestamp)) FROM t;
+SELECT cast(1 as string) in (cast(1 as string), cast('2017-12-11 09:30:00' as 
date)) FROM t;
+
+SELECT cast('1' as binary) in (cast('1' as binary), cast(1 as tinyint)) FROM t;
+SELECT cast('1' as binary) in (cast('1' as binary), cast(1 as smallint)) FROM 
t;
+SELECT cast('1' as binary) in (cast('1' as binary), cast(1 as int)) FROM t;
+SELECT cast('1' as binary) in (cast('1' as binary), cast(1 as bigint)) FROM t;
+SELECT cast('1' as binary) in (cast('1' as binary), cast(1 as float)) FROM t;
+SELECT cast('1' as binary) in (cast('1' as binary), cast(1 as double)) FROM t;
+SELECT cast('1' as binary) in (cast('1' as binary), cast(1 as decimal(10, 0))) 
FROM t;
+SELECT cast('1' as binary) in (cast('1' as binary), cast(1 as string)) FROM t;
+SELECT cast('1' as binary) in (cast('1' as binary), cast('1' as binary)) FROM 
t;
+SELECT cast('1' as binary) in (cast('1' as binary), cast(1 as boolean)) FROM t;
+SELECT cast('1' as binary) in (cast('1' as binary), cast('2017-12-11 
09:30:00.0' as timestamp)) FROM t;
+SELECT cast('1' as binary) in (cast('1' as binary), cast('2017-12-11 09:30:00' 
as date)) FROM t;
+
+SELECT cast('1' as boolean) in (cast('1' as boolean), cast(1 as tinyint)) FROM 
t;
+SELECT cast('1' as boolean) in (cast('1' as boolean), cast(1 as smallint)) 
FROM t;
+SELECT cast('1' as boolean) in (cast('1' as boolean), cast(1 as int)) FROM t;
+SELECT cast('1' as boolean) in (cast('1' as boolean), cast(1 as bigint)) FROM 
t;
+SELECT cast('1' as boolean) in (cast('1' as boolean), cast(1 as float)) FROM t;
+SELECT cast('1' as boolean) in (cast('1' as boolean), cast(1 as double)) FROM 
t;
+SELECT cast('1' as boolean) in (cast('1' as boolean), cast(1 as decimal(10, 
0))) FROM t;
+SELECT cast('1' as boolean) in (cast('1' as boolean), cast(1 as string)) FROM 
t;
+SELECT cast('1' as boolean) in (cast('1' as boolean), cast('1' as binary)) 
FROM t;
+SELECT cast('1' as boolean) in (cast('1' as boolean), cast(1 as boolean)) FROM 
t;
+SELECT cast('1' as boolean) in (cast('1' as boolean), cast('2017-12-11 
09:30:00.0' as timestamp)) FROM t;
+SELECT cast('1' as boolean) in (cast('1' as boolean), cast('2017-12-11 
09:30:00' as date)) FROM t;
+
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2017-12-12 
09:30:00.0' as timestamp), cast(1 as tinyint)) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2017-12-12 
09:30:00.0' as timestamp), cast(1 as smallint)) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2017-12-12 
09:30:00.0' as timestamp), cast(1 as int)) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2017-12-12 
09:30:00.0' as timestamp), cast(1 as bigint)) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2017-12-12 
09:30:00.0' as timestamp), cast(1 as float)) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2017-12-12 
09:30:00.0' as timestamp), cast(1 as double)) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2017-12-12 
09:30:00.0' as timestamp), cast(1 as decimal(10, 0))) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2017-12-12 
09:30:00.0' as timestamp), cast(1 as string)) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2017-12-12 
09:30:00.0' as timestamp), cast('1' as binary)) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2017-12-12 
09:30:00.0' as timestamp), cast(1 as boolean)) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2017-12-12 
09:30:00.0' as timestamp), cast('2017-12-11 09:30:00.0' as timestamp)) FROM t;
+SELECT cast('2017-12-12 09:30:00.0' as timestamp) in (cast('2017-12-12 
09:30:00.0' as timestamp), cast('2017-12-11 09:30:00' as date)) FROM t;
+
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2017-12-12 09:30:00' as 
date), cast(1 as tinyint)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2017-12-12 09:30:00' as 
date), cast(1 as smallint)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2017-12-12 09:30:00' as 
date), cast(1 as int)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2017-12-12 09:30:00' as 
date), cast(1 as bigint)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2017-12-12 09:30:00' as 
date), cast(1 as float)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2017-12-12 09:30:00' as 
date), cast(1 as double)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2017-12-12 09:30:00' as 
date), cast(1 as decimal(10, 0))) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2017-12-12 09:30:00' as 
date), cast(1 as string)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2017-12-12 09:30:00' as 
date), cast('1' as binary)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2017-12-12 09:30:00' as 
date), cast(1 as boolean)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2017-12-12 09:30:00' as 
date), cast('2017-12-11 09:30:00.0' as timestamp)) FROM t;
+SELECT cast('2017-12-12 09:30:00' as date) in (cast('2017-12-12 09:30:00' as 
date), cast('2017-12-11 09:30:00' as date)) FROM t;

http://git-wip-us.apache.org/repos/asf/spark/blob/7f6d10a7/sql/core/src/test/resources/sql-tests/inputs/typeCoercion/native/promoteStrings.sql
----------------------------------------------------------------------
diff --git 
a/sql/core/src/test/resources/sql-tests/inputs/typeCoercion/native/promoteStrings.sql
 
b/sql/core/src/test/resources/sql-tests/inputs/typeCoercion/native/promoteStrings.sql
new file mode 100644
index 0000000..a5603a1
--- /dev/null
+++ 
b/sql/core/src/test/resources/sql-tests/inputs/typeCoercion/native/promoteStrings.sql
@@ -0,0 +1,364 @@
+--
+--   Licensed to the Apache Software Foundation (ASF) under one or more
+--   contributor license agreements.  See the NOTICE file distributed with
+--   this work for additional information regarding copyright ownership.
+--   The ASF licenses this file to You under the Apache License, Version 2.0
+--   (the "License"); you may not use this file except in compliance with
+--   the License.  You may obtain a copy of the License at
+--
+--      http://www.apache.org/licenses/LICENSE-2.0
+--
+--   Unless required by applicable law or agreed to in writing, software
+--   distributed under the License is distributed on an "AS IS" BASIS,
+--   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+--   See the License for the specific language governing permissions and
+--   limitations under the License.
+--
+
+CREATE TEMPORARY VIEW t AS SELECT 1;
+
+-- Binary arithmetic
+SELECT '1' + cast(1 as tinyint)                         FROM t;
+SELECT '1' + cast(1 as smallint)                        FROM t;
+SELECT '1' + cast(1 as int)                             FROM t;
+SELECT '1' + cast(1 as bigint)                          FROM t;
+SELECT '1' + cast(1 as float)                           FROM t;
+SELECT '1' + cast(1 as double)                          FROM t;
+SELECT '1' + cast(1 as decimal(10, 0))                  FROM t;
+SELECT '1' + '1'                                        FROM t;
+SELECT '1' + cast('1' as binary)                        FROM t;
+SELECT '1' + cast(1 as boolean)                         FROM t;
+SELECT '1' + cast('2017-12-11 09:30:00.0' as timestamp) FROM t;
+SELECT '1' + cast('2017-12-11 09:30:00' as date)        FROM t;
+
+SELECT '1' - cast(1 as tinyint)                         FROM t;
+SELECT '1' - cast(1 as smallint)                        FROM t;
+SELECT '1' - cast(1 as int)                             FROM t;
+SELECT '1' - cast(1 as bigint)                          FROM t;
+SELECT '1' - cast(1 as float)                           FROM t;
+SELECT '1' - cast(1 as double)                          FROM t;
+SELECT '1' - cast(1 as decimal(10, 0))                  FROM t;
+SELECT '1' - '1'                                        FROM t;
+SELECT '1' - cast('1' as binary)                        FROM t;
+SELECT '1' - cast(1 as boolean)                         FROM t;
+SELECT '1' - cast('2017-12-11 09:30:00.0' as timestamp) FROM t;
+SELECT '1' - cast('2017-12-11 09:30:00' as date)        FROM t;
+
+SELECT '1' * cast(1 as tinyint)                         FROM t;
+SELECT '1' * cast(1 as smallint)                        FROM t;
+SELECT '1' * cast(1 as int)                             FROM t;
+SELECT '1' * cast(1 as bigint)                          FROM t;
+SELECT '1' * cast(1 as float)                           FROM t;
+SELECT '1' * cast(1 as double)                          FROM t;
+SELECT '1' * cast(1 as decimal(10, 0))                  FROM t;
+SELECT '1' * '1'                                        FROM t;
+SELECT '1' * cast('1' as binary)                        FROM t;
+SELECT '1' * cast(1 as boolean)                         FROM t;
+SELECT '1' * cast('2017-12-11 09:30:00.0' as timestamp) FROM t;
+SELECT '1' * cast('2017-12-11 09:30:00' as date)        FROM t;
+
+SELECT '1' / cast(1 as tinyint)                         FROM t;
+SELECT '1' / cast(1 as smallint)                        FROM t;
+SELECT '1' / cast(1 as int)                             FROM t;
+SELECT '1' / cast(1 as bigint)                          FROM t;
+SELECT '1' / cast(1 as float)                           FROM t;
+SELECT '1' / cast(1 as double)                          FROM t;
+SELECT '1' / cast(1 as decimal(10, 0))                  FROM t;
+SELECT '1' / '1'                                        FROM t;
+SELECT '1' / cast('1' as binary)                        FROM t;
+SELECT '1' / cast(1 as boolean)                         FROM t;
+SELECT '1' / cast('2017-12-11 09:30:00.0' as timestamp) FROM t;
+SELECT '1' / cast('2017-12-11 09:30:00' as date)        FROM t;
+
+SELECT '1' % cast(1 as tinyint)                         FROM t;
+SELECT '1' % cast(1 as smallint)                        FROM t;
+SELECT '1' % cast(1 as int)                             FROM t;
+SELECT '1' % cast(1 as bigint)                          FROM t;
+SELECT '1' % cast(1 as float)                           FROM t;
+SELECT '1' % cast(1 as double)                          FROM t;
+SELECT '1' % cast(1 as decimal(10, 0))                  FROM t;
+SELECT '1' % '1'                                        FROM t;
+SELECT '1' % cast('1' as binary)                        FROM t;
+SELECT '1' % cast(1 as boolean)                         FROM t;
+SELECT '1' % cast('2017-12-11 09:30:00.0' as timestamp) FROM t;
+SELECT '1' % cast('2017-12-11 09:30:00' as date)        FROM t;
+
+SELECT pmod('1', cast(1 as tinyint))                         FROM t;
+SELECT pmod('1', cast(1 as smallint))                        FROM t;
+SELECT pmod('1', cast(1 as int))                             FROM t;
+SELECT pmod('1', cast(1 as bigint))                          FROM t;
+SELECT pmod('1', cast(1 as float))                           FROM t;
+SELECT pmod('1', cast(1 as double))                          FROM t;
+SELECT pmod('1', cast(1 as decimal(10, 0)))                  FROM t;
+SELECT pmod('1', '1')                                        FROM t;
+SELECT pmod('1', cast('1' as binary))                        FROM t;
+SELECT pmod('1', cast(1 as boolean))                         FROM t;
+SELECT pmod('1', cast('2017-12-11 09:30:00.0' as timestamp)) FROM t;
+SELECT pmod('1', cast('2017-12-11 09:30:00' as date))        FROM t;
+
+SELECT cast(1 as tinyint)                         + '1' FROM t;
+SELECT cast(1 as smallint)                        + '1' FROM t;
+SELECT cast(1 as int)                             + '1' FROM t;
+SELECT cast(1 as bigint)                          + '1' FROM t;
+SELECT cast(1 as float)                           + '1' FROM t;
+SELECT cast(1 as double)                          + '1' FROM t;
+SELECT cast(1 as decimal(10, 0))                  + '1' FROM t;
+SELECT cast('1' as binary)                        + '1' FROM t;
+SELECT cast(1 as boolean)                         + '1' FROM t;
+SELECT cast('2017-12-11 09:30:00.0' as timestamp) + '1' FROM t;
+SELECT cast('2017-12-11 09:30:00' as date)        + '1' FROM t;
+
+SELECT cast(1 as tinyint)                         - '1' FROM t;
+SELECT cast(1 as smallint)                        - '1' FROM t;
+SELECT cast(1 as int)                             - '1' FROM t;
+SELECT cast(1 as bigint)                          - '1' FROM t;
+SELECT cast(1 as float)                           - '1' FROM t;
+SELECT cast(1 as double)                          - '1' FROM t;
+SELECT cast(1 as decimal(10, 0))                  - '1' FROM t;
+SELECT cast('1' as binary)                        - '1' FROM t;
+SELECT cast(1 as boolean)                         - '1' FROM t;
+SELECT cast('2017-12-11 09:30:00.0' as timestamp) - '1' FROM t;
+SELECT cast('2017-12-11 09:30:00' as date)        - '1' FROM t;
+
+SELECT cast(1 as tinyint)                         * '1' FROM t;
+SELECT cast(1 as smallint)                        * '1' FROM t;
+SELECT cast(1 as int)                             * '1' FROM t;
+SELECT cast(1 as bigint)                          * '1' FROM t;
+SELECT cast(1 as float)                           * '1' FROM t;
+SELECT cast(1 as double)                          * '1' FROM t;
+SELECT cast(1 as decimal(10, 0))                  * '1' FROM t;
+SELECT cast('1' as binary)                        * '1' FROM t;
+SELECT cast(1 as boolean)                         * '1' FROM t;
+SELECT cast('2017-12-11 09:30:00.0' as timestamp) * '1' FROM t;
+SELECT cast('2017-12-11 09:30:00' as date)        * '1' FROM t;
+
+SELECT cast(1 as tinyint)                         / '1' FROM t;
+SELECT cast(1 as smallint)                        / '1' FROM t;
+SELECT cast(1 as int)                             / '1' FROM t;
+SELECT cast(1 as bigint)                          / '1' FROM t;
+SELECT cast(1 as float)                           / '1' FROM t;
+SELECT cast(1 as double)                          / '1' FROM t;
+SELECT cast(1 as decimal(10, 0))                  / '1' FROM t;
+SELECT cast('1' as binary)                        / '1' FROM t;
+SELECT cast(1 as boolean)                         / '1' FROM t;
+SELECT cast('2017-12-11 09:30:00.0' as timestamp) / '1' FROM t;
+SELECT cast('2017-12-11 09:30:00' as date)        / '1' FROM t;
+
+SELECT cast(1 as tinyint)                         % '1' FROM t;
+SELECT cast(1 as smallint)                        % '1' FROM t;
+SELECT cast(1 as int)                             % '1' FROM t;
+SELECT cast(1 as bigint)                          % '1' FROM t;
+SELECT cast(1 as float)                           % '1' FROM t;
+SELECT cast(1 as double)                          % '1' FROM t;
+SELECT cast(1 as decimal(10, 0))                  % '1' FROM t;
+SELECT cast('1' as binary)                        % '1' FROM t;
+SELECT cast(1 as boolean)                         % '1' FROM t;
+SELECT cast('2017-12-11 09:30:00.0' as timestamp) % '1' FROM t;
+SELECT cast('2017-12-11 09:30:00' as date)        % '1' FROM t;
+
+SELECT pmod(cast(1 as tinyint), '1')                         FROM t;
+SELECT pmod(cast(1 as smallint), '1')                        FROM t;
+SELECT pmod(cast(1 as int), '1')                             FROM t;
+SELECT pmod(cast(1 as bigint), '1')                          FROM t;
+SELECT pmod(cast(1 as float), '1')                           FROM t;
+SELECT pmod(cast(1 as double), '1')                          FROM t;
+SELECT pmod(cast(1 as decimal(10, 0)), '1')                  FROM t;
+SELECT pmod(cast('1' as binary), '1')                        FROM t;
+SELECT pmod(cast(1 as boolean), '1')                         FROM t;
+SELECT pmod(cast('2017-12-11 09:30:00.0' as timestamp), '1') FROM t;
+SELECT pmod(cast('2017-12-11 09:30:00' as date), '1')        FROM t;
+
+-- Equality
+SELECT '1' = cast(1 as tinyint)                         FROM t;
+SELECT '1' = cast(1 as smallint)                        FROM t;
+SELECT '1' = cast(1 as int)                             FROM t;
+SELECT '1' = cast(1 as bigint)                          FROM t;
+SELECT '1' = cast(1 as float)                           FROM t;
+SELECT '1' = cast(1 as double)                          FROM t;
+SELECT '1' = cast(1 as decimal(10, 0))                  FROM t;
+SELECT '1' = '1'                                        FROM t;
+SELECT '1' = cast('1' as binary)                        FROM t;
+SELECT '1' = cast(1 as boolean)                         FROM t;
+SELECT '1' = cast('2017-12-11 09:30:00.0' as timestamp) FROM t;
+SELECT '1' = cast('2017-12-11 09:30:00' as date)        FROM t;
+
+SELECT cast(1 as tinyint)                         = '1' FROM t;
+SELECT cast(1 as smallint)                        = '1' FROM t;
+SELECT cast(1 as int)                             = '1' FROM t;
+SELECT cast(1 as bigint)                          = '1' FROM t;
+SELECT cast(1 as float)                           = '1' FROM t;
+SELECT cast(1 as double)                          = '1' FROM t;
+SELECT cast(1 as decimal(10, 0))                  = '1' FROM t;
+SELECT cast('1' as binary)                        = '1' FROM t;
+SELECT cast(1 as boolean)                         = '1' FROM t;
+SELECT cast('2017-12-11 09:30:00.0' as timestamp) = '1' FROM t;
+SELECT cast('2017-12-11 09:30:00' as date)        = '1' FROM t;
+
+SELECT '1' <=> cast(1 as tinyint)                         FROM t;
+SELECT '1' <=> cast(1 as smallint)                        FROM t;
+SELECT '1' <=> cast(1 as int)                             FROM t;
+SELECT '1' <=> cast(1 as bigint)                          FROM t;
+SELECT '1' <=> cast(1 as float)                           FROM t;
+SELECT '1' <=> cast(1 as double)                          FROM t;
+SELECT '1' <=> cast(1 as decimal(10, 0))                  FROM t;
+SELECT '1' <=> '1'                                        FROM t;
+SELECT '1' <=> cast('1' as binary)                        FROM t;
+SELECT '1' <=> cast(1 as boolean)                         FROM t;
+SELECT '1' <=> cast('2017-12-11 09:30:00.0' as timestamp) FROM t;
+SELECT '1' <=> cast('2017-12-11 09:30:00' as date)        FROM t;
+
+SELECT cast(1 as tinyint)                         <=> '1' FROM t;
+SELECT cast(1 as smallint)                        <=> '1' FROM t;
+SELECT cast(1 as int)                             <=> '1' FROM t;
+SELECT cast(1 as bigint)                          <=> '1' FROM t;
+SELECT cast(1 as float)                           <=> '1' FROM t;
+SELECT cast(1 as double)                          <=> '1' FROM t;
+SELECT cast(1 as decimal(10, 0))                  <=> '1' FROM t;
+SELECT cast('1' as binary)                        <=> '1' FROM t;
+SELECT cast(1 as boolean)                         <=> '1' FROM t;
+SELECT cast('2017-12-11 09:30:00.0' as timestamp) <=> '1' FROM t;
+SELECT cast('2017-12-11 09:30:00' as date)        <=> '1' FROM t;
+
+-- Binary comparison
+SELECT '1' < cast(1 as tinyint)                         FROM t;
+SELECT '1' < cast(1 as smallint)                        FROM t;
+SELECT '1' < cast(1 as int)                             FROM t;
+SELECT '1' < cast(1 as bigint)                          FROM t;
+SELECT '1' < cast(1 as float)                           FROM t;
+SELECT '1' < cast(1 as double)                          FROM t;
+SELECT '1' < cast(1 as decimal(10, 0))                  FROM t;
+SELECT '1' < '1'                                        FROM t;
+SELECT '1' < cast('1' as binary)                        FROM t;
+SELECT '1' < cast(1 as boolean)                         FROM t;
+SELECT '1' < cast('2017-12-11 09:30:00.0' as timestamp) FROM t;
+SELECT '1' < cast('2017-12-11 09:30:00' as date)        FROM t;
+
+SELECT '1' <= cast(1 as tinyint)                         FROM t;
+SELECT '1' <= cast(1 as smallint)                        FROM t;
+SELECT '1' <= cast(1 as int)                             FROM t;
+SELECT '1' <= cast(1 as bigint)                          FROM t;
+SELECT '1' <= cast(1 as float)                           FROM t;
+SELECT '1' <= cast(1 as double)                          FROM t;
+SELECT '1' <= cast(1 as decimal(10, 0))                  FROM t;
+SELECT '1' <= '1'                                        FROM t;
+SELECT '1' <= cast('1' as binary)                        FROM t;
+SELECT '1' <= cast(1 as boolean)                         FROM t;
+SELECT '1' <= cast('2017-12-11 09:30:00.0' as timestamp) FROM t;
+SELECT '1' <= cast('2017-12-11 09:30:00' as date)        FROM t;
+
+SELECT '1' > cast(1 as tinyint)                         FROM t;
+SELECT '1' > cast(1 as smallint)                        FROM t;
+SELECT '1' > cast(1 as int)                             FROM t;
+SELECT '1' > cast(1 as bigint)                          FROM t;
+SELECT '1' > cast(1 as float)                           FROM t;
+SELECT '1' > cast(1 as double)                          FROM t;
+SELECT '1' > cast(1 as decimal(10, 0))                  FROM t;
+SELECT '1' > '1'                                        FROM t;
+SELECT '1' > cast('1' as binary)                        FROM t;
+SELECT '1' > cast(1 as boolean)                         FROM t;
+SELECT '1' > cast('2017-12-11 09:30:00.0' as timestamp) FROM t;
+SELECT '1' > cast('2017-12-11 09:30:00' as date)        FROM t;
+
+SELECT '1' >= cast(1 as tinyint)                         FROM t;
+SELECT '1' >= cast(1 as smallint)                        FROM t;
+SELECT '1' >= cast(1 as int)                             FROM t;
+SELECT '1' >= cast(1 as bigint)                          FROM t;
+SELECT '1' >= cast(1 as float)                           FROM t;
+SELECT '1' >= cast(1 as double)                          FROM t;
+SELECT '1' >= cast(1 as decimal(10, 0))                  FROM t;
+SELECT '1' >= '1'                                        FROM t;
+SELECT '1' >= cast('1' as binary)                        FROM t;
+SELECT '1' >= cast(1 as boolean)                         FROM t;
+SELECT '1' >= cast('2017-12-11 09:30:00.0' as timestamp) FROM t;
+SELECT '1' >= cast('2017-12-11 09:30:00' as date)        FROM t;
+
+SELECT '1' <> cast(1 as tinyint)                         FROM t;
+SELECT '1' <> cast(1 as smallint)                        FROM t;
+SELECT '1' <> cast(1 as int)                             FROM t;
+SELECT '1' <> cast(1 as bigint)                          FROM t;
+SELECT '1' <> cast(1 as float)                           FROM t;
+SELECT '1' <> cast(1 as double)                          FROM t;
+SELECT '1' <> cast(1 as decimal(10, 0))                  FROM t;
+SELECT '1' <> '1'                                        FROM t;
+SELECT '1' <> cast('1' as binary)                        FROM t;
+SELECT '1' <> cast(1 as boolean)                         FROM t;
+SELECT '1' <> cast('2017-12-11 09:30:00.0' as timestamp) FROM t;
+SELECT '1' <> cast('2017-12-11 09:30:00' as date)        FROM t;
+
+SELECT cast(1 as tinyint)                         < '1' FROM t;
+SELECT cast(1 as smallint)                        < '1' FROM t;
+SELECT cast(1 as int)                             < '1' FROM t;
+SELECT cast(1 as bigint)                          < '1' FROM t;
+SELECT cast(1 as float)                           < '1' FROM t;
+SELECT cast(1 as double)                          < '1' FROM t;
+SELECT cast(1 as decimal(10, 0))                  < '1' FROM t;
+SELECT '1'                                        < '1' FROM t;
+SELECT cast('1' as binary)                        < '1' FROM t;
+SELECT cast(1 as boolean)                         < '1' FROM t;
+SELECT cast('2017-12-11 09:30:00.0' as timestamp) < '1' FROM t;
+SELECT cast('2017-12-11 09:30:00' as date)        < '1' FROM t;
+
+SELECT cast(1 as tinyint)                         <= '1' FROM t;
+SELECT cast(1 as smallint)                        <= '1' FROM t;
+SELECT cast(1 as int)                             <= '1' FROM t;
+SELECT cast(1 as bigint)                          <= '1' FROM t;
+SELECT cast(1 as float)                           <= '1' FROM t;
+SELECT cast(1 as double)                          <= '1' FROM t;
+SELECT cast(1 as decimal(10, 0))                  <= '1' FROM t;
+SELECT '1'                                        <= '1' FROM t;
+SELECT cast('1' as binary)                        <= '1' FROM t;
+SELECT cast(1 as boolean)                         <= '1' FROM t;
+SELECT cast('2017-12-11 09:30:00.0' as timestamp) <= '1' FROM t;
+SELECT cast('2017-12-11 09:30:00' as date)        <= '1' FROM t;
+
+SELECT cast(1 as tinyint)                         > '1' FROM t;
+SELECT cast(1 as smallint)                        > '1' FROM t;
+SELECT cast(1 as int)                             > '1' FROM t;
+SELECT cast(1 as bigint)                          > '1' FROM t;
+SELECT cast(1 as float)                           > '1' FROM t;
+SELECT cast(1 as double)                          > '1' FROM t;
+SELECT cast(1 as decimal(10, 0))                  > '1' FROM t;
+SELECT '1'                                        > '1' FROM t;
+SELECT cast('1' as binary)                        > '1' FROM t;
+SELECT cast(1 as boolean)                         > '1' FROM t;
+SELECT cast('2017-12-11 09:30:00.0' as timestamp) > '1' FROM t;
+SELECT cast('2017-12-11 09:30:00' as date)        > '1' FROM t;
+
+SELECT cast(1 as tinyint)                         >= '1' FROM t;
+SELECT cast(1 as smallint)                        >= '1' FROM t;
+SELECT cast(1 as int)                             >= '1' FROM t;
+SELECT cast(1 as bigint)                          >= '1' FROM t;
+SELECT cast(1 as float)                           >= '1' FROM t;
+SELECT cast(1 as double)                          >= '1' FROM t;
+SELECT cast(1 as decimal(10, 0))                  >= '1' FROM t;
+SELECT '1'                                        >= '1' FROM t;
+SELECT cast('1' as binary)                        >= '1' FROM t;
+SELECT cast(1 as boolean)                         >= '1' FROM t;
+SELECT cast('2017-12-11 09:30:00.0' as timestamp) >= '1' FROM t;
+SELECT cast('2017-12-11 09:30:00' as date)        >= '1' FROM t;
+
+SELECT cast(1 as tinyint)                         <> '1' FROM t;
+SELECT cast(1 as smallint)                        <> '1' FROM t;
+SELECT cast(1 as int)                             <> '1' FROM t;
+SELECT cast(1 as bigint)                          <> '1' FROM t;
+SELECT cast(1 as float)                           <> '1' FROM t;
+SELECT cast(1 as double)                          <> '1' FROM t;
+SELECT cast(1 as decimal(10, 0))                  <> '1' FROM t;
+SELECT '1'                                        <> '1' FROM t;
+SELECT cast('1' as binary)                        <> '1' FROM t;
+SELECT cast(1 as boolean)                         <> '1' FROM t;
+SELECT cast('2017-12-11 09:30:00.0' as timestamp) <> '1' FROM t;
+SELECT cast('2017-12-11 09:30:00' as date)        <> '1' FROM t;
+
+-- Functions
+SELECT abs('1') FROM t;
+SELECT sum('1') FROM t;
+SELECT avg('1') FROM t;
+SELECT stddev_pop('1') FROM t;
+SELECT stddev_samp('1') FROM t;
+SELECT - '1' FROM t;
+SELECT + '1' FROM t;
+SELECT var_pop('1') FROM t;
+SELECT var_samp('1') FROM t;
+SELECT skewness('1') FROM t;
+SELECT kurtosis('1') FROM t;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to