Repository: spark
Updated Branches:
  refs/heads/master 110ce1f27 -> ce49428ef


[SPARK-20749][SQL][FOLLOWUP] Support character_length

## What changes were proposed in this pull request?

The function `char_length` is shorthand for `character_length` function. Both 
Hive and Postgresql support `character_length`,  This PR add support for 
`character_length`.

Ref:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-StringFunctions
https://www.postgresql.org/docs/current/static/functions-string.html

## How was this patch tested?

unit tests

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

Closes #18330 from wangyum/SPARK-20749-character_length.


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

Branch: refs/heads/master
Commit: ce49428ef7d640c1734e91ffcddc49dbc8547ba7
Parents: 110ce1f
Author: Yuming Wang <wgy...@gmail.com>
Authored: Sun Jun 18 18:56:53 2017 -0700
Committer: Xiao Li <gatorsm...@gmail.com>
Committed: Sun Jun 18 18:56:53 2017 -0700

----------------------------------------------------------------------
 .../sql/catalyst/analysis/FunctionRegistry.scala  |  1 +
 .../catalyst/expressions/stringExpressions.scala  |  4 ++++
 .../test/resources/sql-tests/inputs/operators.sql |  1 +
 .../resources/sql-tests/results/operators.sql.out | 18 +++++++++++++-----
 4 files changed, 19 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/ce49428e/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/FunctionRegistry.scala
----------------------------------------------------------------------
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/FunctionRegistry.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/FunctionRegistry.scala
index e4e9918..f4b3e86 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/FunctionRegistry.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/FunctionRegistry.scala
@@ -307,6 +307,7 @@ object FunctionRegistry {
     expression[Base64]("base64"),
     expression[BitLength]("bit_length"),
     expression[Length]("char_length"),
+    expression[Length]("character_length"),
     expression[Concat]("concat"),
     expression[ConcatWs]("concat_ws"),
     expression[Decode]("decode"),

http://git-wip-us.apache.org/repos/asf/spark/blob/ce49428e/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringExpressions.scala
----------------------------------------------------------------------
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringExpressions.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringExpressions.scala
index 908fdb8..83fdcfc 100755
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringExpressions.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringExpressions.scala
@@ -1209,6 +1209,10 @@ case class Substring(str: Expression, pos: Expression, 
len: Expression)
     Examples:
       > SELECT _FUNC_('Spark SQL');
        9
+      > SELECT CHAR_LENGTH('Spark SQL');
+       9
+      > SELECT CHARACTER_LENGTH('Spark SQL');
+       9
   """)
 // scalastyle:on line.size.limit
 case class Length(child: Expression) extends UnaryExpression with 
ImplicitCastInputTypes {

http://git-wip-us.apache.org/repos/asf/spark/blob/ce49428e/sql/core/src/test/resources/sql-tests/inputs/operators.sql
----------------------------------------------------------------------
diff --git a/sql/core/src/test/resources/sql-tests/inputs/operators.sql 
b/sql/core/src/test/resources/sql-tests/inputs/operators.sql
index a1e8a32..9841ec4 100644
--- a/sql/core/src/test/resources/sql-tests/inputs/operators.sql
+++ b/sql/core/src/test/resources/sql-tests/inputs/operators.sql
@@ -84,6 +84,7 @@ select mod(7, 2), mod(7, 0), mod(0, 2), mod(7, null), 
mod(null, 2), mod(null, nu
 -- length
 select BIT_LENGTH('abc');
 select CHAR_LENGTH('abc');
+select CHARACTER_LENGTH('abc');
 select OCTET_LENGTH('abc');
 
 -- abs

http://git-wip-us.apache.org/repos/asf/spark/blob/ce49428e/sql/core/src/test/resources/sql-tests/results/operators.sql.out
----------------------------------------------------------------------
diff --git a/sql/core/src/test/resources/sql-tests/results/operators.sql.out 
b/sql/core/src/test/resources/sql-tests/results/operators.sql.out
index eac3080..4a6ef27 100644
--- a/sql/core/src/test/resources/sql-tests/results/operators.sql.out
+++ b/sql/core/src/test/resources/sql-tests/results/operators.sql.out
@@ -1,5 +1,5 @@
 -- Automatically generated by SQLQueryTestSuite
--- Number of queries: 55
+-- Number of queries: 56
 
 
 -- !query 0
@@ -439,16 +439,24 @@ struct<length(abc):int>
 
 
 -- !query 53
-select OCTET_LENGTH('abc')
+select CHARACTER_LENGTH('abc')
 -- !query 53 schema
-struct<octetlength(abc):int>
+struct<length(abc):int>
 -- !query 53 output
 3
 
 
 -- !query 54
-select abs(-3.13), abs('-2.19')
+select OCTET_LENGTH('abc')
 -- !query 54 schema
-struct<abs(-3.13):decimal(3,2),abs(CAST(-2.19 AS DOUBLE)):double>
+struct<octetlength(abc):int>
 -- !query 54 output
+3
+
+
+-- !query 55
+select abs(-3.13), abs('-2.19')
+-- !query 55 schema
+struct<abs(-3.13):decimal(3,2),abs(CAST(-2.19 AS DOUBLE)):double>
+-- !query 55 output
 3.13   2.19


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

Reply via email to