From 86c3353d7df8e55920484ad97edbf2d068d88e2b Mon Sep 17 00:00:00 2001 From: yangjie01 Date: Fri, 10 Jan 2025 13:32:31 +0800 Subject: [PATCH 1/2] init --- .../apache/spark/sql/catalyst/json/JacksonParser.scala | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 19e2c4228236e..3eb137103837d 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 @@ -293,7 +293,8 @@ class JacksonParser( case _: StringType => (parser: JsonParser) => { // This must be enabled if we will retrieve the bytes directly from the raw content: val oldFeature = parser.getFeatureMask - parser.setFeatureMask(oldFeature | JsonParser.Feature.INCLUDE_SOURCE_IN_LOCATION.getMask) + val featureToAdd = JsonParser.Feature.INCLUDE_SOURCE_IN_LOCATION.getMask + parser.overrideStdFeatures(oldFeature | featureToAdd, featureToAdd) val result = parseJsonToken[UTF8String](parser, dataType) { case VALUE_STRING => UTF8String.fromString(parser.getText) @@ -338,8 +339,10 @@ class JacksonParser( UTF8String.fromBytes(writer.toByteArray) } } - // Reset back to the original configuration: - parser.setFeatureMask(oldFeature) + // Reset back to the original configuration using `~0` as the mask, + // which is a bitmask with all bits set, effectively allowing all features to be reset. + // This ensures that every feature is restored to its previous state as defined by `oldFeature`. + parser.overrideStdFeatures(oldFeature, ~0) result } From 8abefc7a87e8540c3d43757e63a2c0b0c613403d Mon Sep 17 00:00:00 2001 From: yangjie01 Date: Fri, 10 Jan 2025 13:54:51 +0800 Subject: [PATCH 2/2] fix format --- .../org/apache/spark/sql/catalyst/json/JacksonParser.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 3eb137103837d..1cd4b4cd29bcf 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 @@ -340,8 +340,9 @@ class JacksonParser( } } // Reset back to the original configuration using `~0` as the mask, - // which is a bitmask with all bits set, effectively allowing all features to be reset. - // This ensures that every feature is restored to its previous state as defined by `oldFeature`. + // which is a bitmask with all bits set, effectively allowing all features + // to be reset. This ensures that every feature is restored to its previous + // state as defined by `oldFeature`. parser.overrideStdFeatures(oldFeature, ~0) result }