This is an automated email from the ASF dual-hosted git repository.

dongjoon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/master by this push:
     new 93f98c0a61dd [SPARK-47523][SQL] Replace deprecated 
`JsonParser#getCurrentName` with `JsonParser#currentName`
93f98c0a61dd is described below

commit 93f98c0a61ddb66eb777c3940fbf29fc58e2d79b
Author: yangjie01 <yangji...@baidu.com>
AuthorDate: Fri Mar 22 08:37:09 2024 -0700

    [SPARK-47523][SQL] Replace deprecated `JsonParser#getCurrentName` with 
`JsonParser#currentName`
    
    ### What changes were proposed in this pull request?
    This pr replaces the use of `JsonParser#getCurrentName` with 
`JsonParser#currentName` in Spark code, as `JsonParser#getCurrentName` has been 
deprecated since jackson 2.17.
    
    
https://github.com/FasterXML/jackson-core/blob/8fba680579885bf9cdae72e93f16de557056d6e3/src/main/java/com/fasterxml/jackson/core/JsonParser.java#L1521-L1551
    
    ```java
        /**
         * Deprecated alias of {link #currentName()}.
         *
         * return Name of the current field in the parsing context
         *
         * throws IOException for low-level read issues, or
         *   {link JsonParseException} for decoding problems
         *
         * deprecated Since 2.17 use {link #currentName} instead.
         */
        Deprecated
        public abstract String getCurrentName() throws IOException;
    
        /**
         * Method that can be called to get the name associated with
         * the current token: for {link JsonToken#FIELD_NAME}s it will
         * be the same as what {link #getText} returns;
         * for field values it will be preceding field name;
         * and for others (array values, root-level values) null.
         *
         * return Name of the current field in the parsing context
         *
         * throws IOException for low-level read issues, or
         *   {link JsonParseException} for decoding problems
         *
         * since 2.10
         */
        public String currentName() throws IOException {
            // !!! TODO: switch direction in 2.18 or later
            return getCurrentName();
        }
    ```
    
    ### Why are the changes needed?
    Clean up deprecated API usage.
    
    ### Does this PR introduce _any_ user-facing change?
    No
    
    ### How was this patch tested?
    Pass GitHub Actions
    
    ### Was this patch authored or co-authored using generative AI tooling?
    No
    
    Closes #45668 from LuciferYang/SPARK-47523.
    
    Authored-by: yangjie01 <yangji...@baidu.com>
    Signed-off-by: Dongjoon Hyun <dh...@apple.com>
---
 .../spark/sql/catalyst/expressions/jsonExpressions.scala       |  6 +++---
 .../org/apache/spark/sql/catalyst/json/JacksonParser.scala     | 10 +++++-----
 .../org/apache/spark/sql/catalyst/json/JsonInferSchema.scala   |  2 +-
 .../org/apache/spark/sql/errors/QueryExecutionErrors.scala     |  2 +-
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/jsonExpressions.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/jsonExpressions.scala
index 9fca09b46a99..b155987242b3 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/jsonExpressions.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/jsonExpressions.scala
@@ -411,7 +411,7 @@ class GetJsonObjectEvaluator(cachedPath: UTF8String) {
         p.nextToken()
         arrayIndex(p, () => evaluatePath(p, g, style, xs))(idx)
 
-      case (FIELD_NAME, Named(name) :: xs) if p.getCurrentName == name =>
+      case (FIELD_NAME, Named(name) :: xs) if p.currentName == name =>
         // exact field match
         if (p.nextToken() != JsonToken.VALUE_NULL) {
           evaluatePath(p, g, style, xs)
@@ -546,7 +546,7 @@ case class JsonTuple(children: Seq[Expression])
     while (parser.nextToken() != JsonToken.END_OBJECT) {
       if (parser.getCurrentToken == JsonToken.FIELD_NAME) {
         // check to see if this field is desired in the output
-        val jsonField = parser.getCurrentName
+        val jsonField = parser.currentName
         var idx = fieldNames.indexOf(jsonField)
         if (idx >= 0) {
           // it is, copy the child tree to the correct location in the output 
row
@@ -1056,7 +1056,7 @@ case class JsonObjectKeys(child: Expression) extends 
UnaryExpression with Codege
     // traverse until the end of input and ensure it returns valid key
     while(parser.nextValue() != null && parser.currentName() != null) {
       // add current fieldName to the ArrayBuffer
-      arrayBufferOfKeys += UTF8String.fromString(parser.getCurrentName)
+      arrayBufferOfKeys += UTF8String.fromString(parser.currentName)
 
       // skip all the children of inner object or array
       parser.skipChildren()
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/json/JacksonParser.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/json/JacksonParser.scala
index 36f37888b084..a16a23cf0049 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/json/JacksonParser.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/json/JacksonParser.scala
@@ -231,7 +231,7 @@ class JacksonParser(
               Float.PositiveInfinity
             case "-INF" | "-Infinity" if options.allowNonNumericNumbers =>
               Float.NegativeInfinity
-            case _ => throw StringAsDataTypeException(parser.getCurrentName, 
parser.getText,
+            case _ => throw StringAsDataTypeException(parser.currentName, 
parser.getText,
               FloatType)
           }
       }
@@ -250,7 +250,7 @@ class JacksonParser(
               Double.PositiveInfinity
             case "-INF" | "-Infinity" if options.allowNonNumericNumbers =>
               Double.NegativeInfinity
-            case _ => throw StringAsDataTypeException(parser.getCurrentName, 
parser.getText,
+            case _ => throw StringAsDataTypeException(parser.currentName, 
parser.getText,
               DoubleType)
           }
       }
@@ -430,7 +430,7 @@ class JacksonParser(
     case token =>
       // We cannot parse this token based on the given data type. So, we throw 
a
       // RuntimeException and this exception will be caught by `parse` method.
-      throw CannotParseJSONFieldException(parser.getCurrentName, 
parser.getText, token, dataType)
+      throw CannotParseJSONFieldException(parser.currentName, parser.getText, 
token, dataType)
   }
 
   /**
@@ -451,7 +451,7 @@ class JacksonParser(
     lazy val bitmask = ResolveDefaultColumns.existenceDefaultsBitmask(schema)
     resetExistenceDefaultsBitmask(schema, bitmask)
     while (!skipRow && nextUntil(parser, JsonToken.END_OBJECT)) {
-      schema.getFieldIndex(parser.getCurrentName) match {
+      schema.getFieldIndex(parser.currentName) match {
         case Some(index) =>
           try {
             row.update(index, fieldConverters(index).apply(parser))
@@ -493,7 +493,7 @@ class JacksonParser(
     var badRecordException: Option[Throwable] = None
 
     while (nextUntil(parser, JsonToken.END_OBJECT)) {
-      keys += UTF8String.fromString(parser.getCurrentName)
+      keys += UTF8String.fromString(parser.currentName)
       try {
         values += fieldConverter.apply(parser)
       } catch {
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/json/JsonInferSchema.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/json/JsonInferSchema.scala
index bc7038fc71d4..12c1be7c0de7 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/json/JsonInferSchema.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/json/JsonInferSchema.scala
@@ -194,7 +194,7 @@ class JsonInferSchema(options: JSONOptions) extends 
Serializable with Logging {
         val builder = Array.newBuilder[StructField]
         while (nextUntil(parser, END_OBJECT)) {
           builder += StructField(
-            parser.getCurrentName,
+            parser.currentName,
             inferField(parser),
             nullable = true)
         }
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryExecutionErrors.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryExecutionErrors.scala
index 6d30606b232b..7506ff8df0b5 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryExecutionErrors.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryExecutionErrors.scala
@@ -1238,7 +1238,7 @@ private[sql] object QueryExecutionErrors extends 
QueryErrorsBase with ExecutionE
 
   def cannotParseJSONFieldError(parser: JsonParser, jsonType: JsonToken, 
dataType: DataType)
   : SparkRuntimeException = {
-    cannotParseJSONFieldError(parser.getCurrentName, parser.getText, jsonType, 
dataType)
+    cannotParseJSONFieldError(parser.currentName, parser.getText, jsonType, 
dataType)
   }
 
   def cannotParseJSONFieldError(


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

Reply via email to