You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@spark.apache.org by gatorsmile <gi...@git.apache.org> on 2017/12/17 06:24:11 UTC

[GitHub] spark pull request #20001: [SPARK-22816][TEST] Basic tests for PromoteString...

Github user gatorsmile commented on a diff in the pull request:

    https://github.com/apache/spark/pull/20001#discussion_r157358754
  
    --- Diff: sql/core/src/test/resources/sql-tests/inputs/typeCoercion/native/inConversion.sql ---
    @@ -0,0 +1,245 @@
    +--
    +--   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;
    +-- Hive and Spark SQL doesn't support below operations:
    +-- 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 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 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 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 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 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 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('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;
    +-- Hive and Spark SQL doesn't support below operations:
    +-- SELECT cast(1 as string) in (cast('1' as binary)) FROM t;
    --- End diff --
    
    For the cases we do not support, we should still keep them. 
    
    Just ensure the type coercion rule is not changed and the error messages are reasonable.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org