Skip to content

Commit 4577fa8

Browse files
committed
'fix-code-style.etc'
1 parent 3a20aa6 commit 4577fa8

File tree

2 files changed

+82
-92
lines changed

2 files changed

+82
-92
lines changed

sql/catalyst/src/main/scala/org/apache/spark/sql/internal/SQLConf.scala

Lines changed: 74 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -621,7 +621,7 @@ object SQLConf {
621621
.stringConf
622622
.transform(_.toUpperCase(Locale.ROOT))
623623
.checkValues(ParquetOutputTimestampType.values.map(_.toString))
624-
.createWithDefault(ParquetOutputTimestampType.INT96.toString)
624+
.createWithDefault(ParquetOutputTimestampType.TIMESTAMP_MICROS.toString)
625625

626626
val PARQUET_COMPRESSION = buildConf("spark.sql.parquet.compression.codec")
627627
.doc("Sets the compression codec used when writing Parquet files. If either `compression` or " +
@@ -845,10 +845,8 @@ object SQLConf {
845845
.doc("When true, enable the metadata-only query optimization that use the table's metadata " +
846846
"to produce the partition columns instead of table scans. It applies when all the columns " +
847847
"scanned are partition columns and the query has an aggregate operator that satisfies " +
848-
"distinct semantics. By default the optimization is disabled, and deprecated as of Spark " +
849-
"3.0 since it may return incorrect results when the files are empty, see also SPARK-26709." +
850-
"It will be removed in the future releases. If you must use, use 'SparkSessionExtensions' " +
851-
"instead to inject it as a custom rule.")
848+
"distinct semantics. By default the optimization is disabled, since it may return " +
849+
"incorrect results when the files are empty.")
852850
.version("2.1.1")
853851
.booleanConf
854852
.createWithDefault(false)
@@ -2065,18 +2063,16 @@ object SQLConf {
20652063
.booleanConf
20662064
.createWithDefault(true)
20672065

2068-
val NESTED_PREDICATE_PUSHDOWN_FILE_SOURCE_LIST =
2069-
buildConf("spark.sql.optimizer.nestedPredicatePushdown.supportedFileSources")
2066+
val NESTED_PREDICATE_PUSHDOWN_ENABLED =
2067+
buildConf("spark.sql.optimizer.nestedPredicatePushdown.enabled")
20702068
.internal()
2071-
.doc("A comma-separated list of data source short names or fully qualified data source " +
2072-
"implementation class names for which Spark tries to push down predicates for nested " +
2073-
"columns and/or names containing `dots` to data sources. This configuration is only " +
2074-
"effective with file-based data source in DSv1. Currently, Parquet implements " +
2075-
"both optimizations while ORC only supports predicates for names containing `dots`. The " +
2076-
"other data sources don't support this feature yet. So the default value is 'parquet,orc'.")
2069+
.doc("When true, Spark tries to push down predicates for nested columns and or names " +
2070+
"containing `dots` to data sources. Currently, Parquet implements both optimizations " +
2071+
"while ORC only supports predicates for names containing `dots`. The other data sources" +
2072+
"don't support this feature yet.")
20772073
.version("3.0.0")
2078-
.stringConf
2079-
.createWithDefault("parquet,orc")
2074+
.booleanConf
2075+
.createWithDefault(true)
20802076

20812077
val SERIALIZER_NESTED_SCHEMA_PRUNING_ENABLED =
20822078
buildConf("spark.sql.optimizer.serializer.nestedSchemaPruning.enabled")
@@ -2228,6 +2224,15 @@ object SQLConf {
22282224
.booleanConf
22292225
.createWithDefault(false)
22302226

2227+
val LEGACY_CREATE_HIVE_TABLE_BY_DEFAULT_ENABLED =
2228+
buildConf("spark.sql.legacy.createHiveTableByDefault.enabled")
2229+
.internal()
2230+
.doc("When set to true, CREATE TABLE syntax without a provider will use hive " +
2231+
s"instead of the value of ${DEFAULT_DATA_SOURCE_NAME.key}.")
2232+
.version("3.0.0")
2233+
.booleanConf
2234+
.createWithDefault(false)
2235+
22312236
val LEGACY_BUCKETED_TABLE_SCAN_OUTPUT_ORDERING =
22322237
buildConf("spark.sql.legacy.bucketedTableScan.outputOrdering")
22332238
.internal()
@@ -2519,85 +2524,70 @@ object SQLConf {
25192524
.booleanConf
25202525
.createWithDefault(false)
25212526

2522-
val LEGACY_PARQUET_REBASE_MODE_IN_WRITE =
2523-
buildConf("spark.sql.legacy.parquet.datetimeRebaseModeInWrite")
2527+
val LEGACY_PARQUET_REBASE_DATETIME_IN_WRITE =
2528+
buildConf("spark.sql.legacy.parquet.rebaseDateTimeInWrite.enabled")
25242529
.internal()
2525-
.doc("When LEGACY, Spark will rebase dates/timestamps from Proleptic Gregorian calendar " +
2526-
"to the legacy hybrid (Julian + Gregorian) calendar when writing Parquet files. " +
2527-
"When CORRECTED, Spark will not do rebase and write the dates/timestamps as it is. " +
2528-
"When EXCEPTION, which is the default, Spark will fail the writing if it sees " +
2529-
"ancient dates/timestamps that are ambiguous between the two calendars.")
2530+
.doc("When true, rebase dates/timestamps from Proleptic Gregorian calendar " +
2531+
"to the hybrid calendar (Julian + Gregorian) in write. " +
2532+
"The rebasing is performed by converting micros/millis/days to " +
2533+
"a local date/timestamp in the source calendar, interpreting the resulted date/" +
2534+
"timestamp in the target calendar, and getting the number of micros/millis/days " +
2535+
"since the epoch 1970-01-01 00:00:00Z.")
25302536
.version("3.0.0")
2531-
.stringConf
2532-
.transform(_.toUpperCase(Locale.ROOT))
2533-
.checkValues(LegacyBehaviorPolicy.values.map(_.toString))
2534-
.createWithDefault(LegacyBehaviorPolicy.EXCEPTION.toString)
2535-
2536-
val LEGACY_PARQUET_REBASE_MODE_IN_READ =
2537-
buildConf("spark.sql.legacy.parquet.datetimeRebaseModeInRead")
2538-
.internal()
2539-
.doc("When LEGACY, Spark will rebase dates/timestamps from the legacy hybrid (Julian + " +
2540-
"Gregorian) calendar to Proleptic Gregorian calendar when reading Parquet files. " +
2541-
"When CORRECTED, Spark will not do rebase and read the dates/timestamps as it is. " +
2542-
"When EXCEPTION, which is the default, Spark will fail the reading if it sees " +
2543-
"ancient dates/timestamps that are ambiguous between the two calendars. This config is " +
2544-
"only effective if the writer info (like Spark, Hive) of the Parquet files is unknown.")
2545-
.version("3.0.0")
2546-
.stringConf
2547-
.transform(_.toUpperCase(Locale.ROOT))
2548-
.checkValues(LegacyBehaviorPolicy.values.map(_.toString))
2549-
.createWithDefault(LegacyBehaviorPolicy.EXCEPTION.toString)
2537+
.booleanConf
2538+
.createWithDefault(false)
25502539

2551-
val LEGACY_AVRO_REBASE_MODE_IN_WRITE =
2552-
buildConf("spark.sql.legacy.avro.datetimeRebaseModeInWrite")
2540+
val LEGACY_PARQUET_REBASE_DATETIME_IN_READ =
2541+
buildConf("spark.sql.legacy.parquet.rebaseDateTimeInRead.enabled")
25532542
.internal()
2554-
.doc("When LEGACY, Spark will rebase dates/timestamps from Proleptic Gregorian calendar " +
2555-
"to the legacy hybrid (Julian + Gregorian) calendar when writing Avro files. " +
2556-
"When CORRECTED, Spark will not do rebase and write the dates/timestamps as it is. " +
2557-
"When EXCEPTION, which is the default, Spark will fail the writing if it sees " +
2558-
"ancient dates/timestamps that are ambiguous between the two calendars.")
2543+
.doc("When true, rebase dates/timestamps " +
2544+
"from the hybrid calendar to Proleptic Gregorian calendar in read. " +
2545+
"The rebasing is performed by converting micros/millis/days to " +
2546+
"a local date/timestamp in the source calendar, interpreting the resulted date/" +
2547+
"timestamp in the target calendar, and getting the number of micros/millis/days " +
2548+
"since the epoch 1970-01-01 00:00:00Z.")
25592549
.version("3.0.0")
2560-
.stringConf
2561-
.transform(_.toUpperCase(Locale.ROOT))
2562-
.checkValues(LegacyBehaviorPolicy.values.map(_.toString))
2563-
.createWithDefault(LegacyBehaviorPolicy.EXCEPTION.toString)
2564-
2565-
val LEGACY_AVRO_REBASE_MODE_IN_READ =
2566-
buildConf("spark.sql.legacy.avro.datetimeRebaseModeInRead")
2567-
.internal()
2568-
.doc("When LEGACY, Spark will rebase dates/timestamps from the legacy hybrid (Julian + " +
2569-
"Gregorian) calendar to Proleptic Gregorian calendar when reading Avro files. " +
2570-
"When CORRECTED, Spark will not do rebase and read the dates/timestamps as it is. " +
2571-
"When EXCEPTION, which is the default, Spark will fail the reading if it sees " +
2572-
"ancient dates/timestamps that are ambiguous between the two calendars. This config is " +
2573-
"only effective if the writer info (like Spark, Hive) of the Avro files is unknown.")
2550+
.booleanConf
2551+
.createWithDefault(false)
2552+
2553+
val LEGACY_AVRO_REBASE_DATETIME_IN_WRITE =
2554+
buildConf("spark.sql.legacy.avro.rebaseDateTimeInWrite.enabled")
2555+
.internal()
2556+
.doc("When true, rebase dates/timestamps from Proleptic Gregorian calendar " +
2557+
"to the hybrid calendar (Julian + Gregorian) in write. " +
2558+
"The rebasing is performed by converting micros/millis/days to " +
2559+
"a local date/timestamp in the source calendar, interpreting the resulted date/" +
2560+
"timestamp in the target calendar, and getting the number of micros/millis/days " +
2561+
"since the epoch 1970-01-01 00:00:00Z.")
25742562
.version("3.0.0")
2575-
.stringConf
2576-
.transform(_.toUpperCase(Locale.ROOT))
2577-
.checkValues(LegacyBehaviorPolicy.values.map(_.toString))
2578-
.createWithDefault(LegacyBehaviorPolicy.EXCEPTION.toString)
2563+
.booleanConf
2564+
.createWithDefault(false)
25792565

2580-
val SCRIPT_TRANSFORMATION_EXIT_TIMEOUT =
2581-
buildConf("spark.sql.scriptTransformation.exitTimeoutInSeconds")
2566+
val LEGACY_AVRO_REBASE_DATETIME_IN_READ =
2567+
buildConf("spark.sql.legacy.avro.rebaseDateTimeInRead.enabled")
25822568
.internal()
2583-
.doc("Timeout for executor to wait for the termination of transformation script when EOF.")
2569+
.doc("When true, rebase dates/timestamps " +
2570+
"from the hybrid calendar to Proleptic Gregorian calendar in read. " +
2571+
"The rebasing is performed by converting micros/millis/days to " +
2572+
"a local date/timestamp in the source calendar, interpreting the resulted date/" +
2573+
"timestamp in the target calendar, and getting the number of micros/millis/days " +
2574+
"since the epoch 1970-01-01 00:00:00Z.")
25842575
.version("3.0.0")
2585-
.timeConf(TimeUnit.SECONDS)
2586-
.checkValue(_ > 0, "The timeout value must be positive")
2587-
.createWithDefault(10L)
2576+
.booleanConf
2577+
.createWithDefault(false)
25882578

2589-
val NUMERIC_CONVERT_TO_TIMESTAMP_ENABLE =
2579+
val LEGACY_NUMERIC_CONVERT_TO_TIMESTAMP_ENABLE =
25902580
buildConf("spark.sql.legacy.numericConvertToTimestampEnable")
25912581
.internal()
25922582
.doc("when true,use legacy numberic can convert to timestamp")
25932583
.version("3.0.0")
25942584
.booleanConf
25952585
.createWithDefault(false)
25962586

2597-
val NUMERIC_CONVERT_TO_TIMESTAMP_IN_SECONDS =
2587+
val LEGACY_NUMERIC_CONVERT_TO_TIMESTAMP_IN_SECONDS =
25982588
buildConf("spark.sql.legacy.numericConvertToTimestampInSeconds")
25992589
.internal()
2600-
.doc("The legacy only works when NUMERIC_CONVERT_TO_TIMESTAMP_ENABLE is true." +
2590+
.doc("The legacy only works when LEGACY_NUMERIC_CONVERT_TO_TIMESTAMP_ENABLE is true." +
26012591
"when true,the value will be interpreted as seconds,which follow spark style," +
26022592
"when false,value is interpreted as milliseconds,which follow hive style")
26032593
.version("3.0.0")
@@ -2633,10 +2623,7 @@ object SQLConf {
26332623
DeprecatedConfig(ARROW_FALLBACK_ENABLED.key, "3.0",
26342624
s"Use '${ARROW_PYSPARK_FALLBACK_ENABLED.key}' instead of it."),
26352625
DeprecatedConfig(SHUFFLE_TARGET_POSTSHUFFLE_INPUT_SIZE.key, "3.0",
2636-
s"Use '${ADVISORY_PARTITION_SIZE_IN_BYTES.key}' instead of it."),
2637-
DeprecatedConfig(OPTIMIZER_METADATA_ONLY.key, "3.0",
2638-
"Avoid to depend on this optimization to prevent a potential correctness issue. " +
2639-
"If you must use, use 'SparkSessionExtensions' instead to inject it as a custom rule.")
2626+
s"Use '${ADVISORY_PARTITION_SIZE_IN_BYTES.key}' instead of it.")
26402627
)
26412628

26422629
Map(configs.map { cfg => cfg.key -> cfg } : _*)
@@ -3129,6 +3116,8 @@ class SQLConf extends Serializable with Logging {
31293116

31303117
def nestedSchemaPruningEnabled: Boolean = getConf(NESTED_SCHEMA_PRUNING_ENABLED)
31313118

3119+
def nestedPredicatePushdownEnabled: Boolean = getConf(NESTED_PREDICATE_PUSHDOWN_ENABLED)
3120+
31323121
def serializerNestedSchemaPruningEnabled: Boolean =
31333122
getConf(SERIALIZER_NESTED_SCHEMA_PRUNING_ENABLED)
31343123

@@ -3162,6 +3151,9 @@ class SQLConf extends Serializable with Logging {
31623151
def allowNegativeScaleOfDecimalEnabled: Boolean =
31633152
getConf(SQLConf.LEGACY_ALLOW_NEGATIVE_SCALE_OF_DECIMAL_ENABLED)
31643153

3154+
def createHiveTableByDefaultEnabled: Boolean =
3155+
getConf(SQLConf.LEGACY_CREATE_HIVE_TABLE_BY_DEFAULT_ENABLED)
3156+
31653157
def truncateTableIgnorePermissionAcl: Boolean =
31663158
getConf(SQLConf.TRUNCATE_TABLE_IGNORE_PERMISSION_ACL)
31673159

@@ -3183,16 +3175,14 @@ class SQLConf extends Serializable with Logging {
31833175

31843176
def integerGroupingIdEnabled: Boolean = getConf(SQLConf.LEGACY_INTEGER_GROUPING_ID)
31853177

3186-
31873178
def parquetRebaseDateTimeInReadEnabled: Boolean = {
31883179
getConf(SQLConf.LEGACY_PARQUET_REBASE_DATETIME_IN_READ)
31893180
}
31903181

3191-
def numericConvertToTimestampEnable: Boolean = getConf(NUMERIC_CONVERT_TO_TIMESTAMP_ENABLE)
3192-
3193-
def numericConvertToTimestampInSeconds: Boolean = getConf(NUMERIC_CONVERT_TO_TIMESTAMP_IN_SECONDS)
3194-
3182+
def numericConvertToTimestampEnable: Boolean = getConf(LEGACY_NUMERIC_CONVERT_TO_TIMESTAMP_ENABLE)
31953183

3184+
def numericConvertToTimestampInSeconds: Boolean =
3185+
getConf(LEGACY_NUMERIC_CONVERT_TO_TIMESTAMP_IN_SECONDS)
31963186

31973187
/** ********************** SQLConf functionality methods ************ */
31983188

sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1302,8 +1302,8 @@ class CastSuite extends CastSuiteBase {
13021302

13031303
test("SPARK-31710:Add legacy when casting long to timestamp") {
13041304
withSQLConf(
1305-
SQLConf.NUMERIC_CONVERT_TO_TIMESTAMP_ENABLE.key -> "true",
1306-
SQLConf.NUMERIC_CONVERT_TO_TIMESTAMP_IN_SECONDS.key -> "false") {
1305+
SQLConf.LEGACY_NUMERIC_CONVERT_TO_TIMESTAMP_ENABLE.key -> "true",
1306+
SQLConf.LEGACY_NUMERIC_CONVERT_TO_TIMESTAMP_IN_SECONDS.key -> "false") {
13071307
def checkLongToTimestamp(l: Long, expected: Long): Unit = {
13081308
checkEvaluation(cast(l, TimestampType), expected)
13091309
}
@@ -1314,8 +1314,8 @@ class CastSuite extends CastSuiteBase {
13141314
checkLongToTimestamp(123L, 123000L)
13151315
}
13161316
withSQLConf(
1317-
SQLConf.NUMERIC_CONVERT_TO_TIMESTAMP_ENABLE.key -> "true",
1318-
SQLConf.NUMERIC_CONVERT_TO_TIMESTAMP_IN_SECONDS.key -> "true") {
1317+
SQLConf.LEGACY_NUMERIC_CONVERT_TO_TIMESTAMP_ENABLE.key -> "true",
1318+
SQLConf.LEGACY_NUMERIC_CONVERT_TO_TIMESTAMP_IN_SECONDS.key -> "true") {
13191319
def checkLongToTimestamp(l: Long, expected: Long): Unit = {
13201320
checkEvaluation(cast(l, TimestampType), expected)
13211321
}
@@ -1327,8 +1327,8 @@ class CastSuite extends CastSuiteBase {
13271327
}
13281328

13291329
withSQLConf(
1330-
SQLConf.NUMERIC_CONVERT_TO_TIMESTAMP_ENABLE.key -> "false",
1331-
SQLConf.NUMERIC_CONVERT_TO_TIMESTAMP_IN_SECONDS.key -> "false") {
1330+
SQLConf.LEGACY_NUMERIC_CONVERT_TO_TIMESTAMP_ENABLE.key -> "false",
1331+
SQLConf.LEGACY_NUMERIC_CONVERT_TO_TIMESTAMP_IN_SECONDS.key -> "false") {
13321332
def checkByteToTimestamp(b: Byte, expected: Long): Unit = {
13331333
assert(!cast(b, TimestampType).resolved)
13341334
}
@@ -1360,8 +1360,8 @@ class CastSuite extends CastSuiteBase {
13601360
}
13611361

13621362
withSQLConf(
1363-
SQLConf.NUMERIC_CONVERT_TO_TIMESTAMP_ENABLE.key -> "false",
1364-
SQLConf.NUMERIC_CONVERT_TO_TIMESTAMP_IN_SECONDS.key -> "true") {
1363+
SQLConf.LEGACY_NUMERIC_CONVERT_TO_TIMESTAMP_ENABLE.key -> "false",
1364+
SQLConf.LEGACY_NUMERIC_CONVERT_TO_TIMESTAMP_IN_SECONDS.key -> "true") {
13651365
def checkByteToTimestamp(b: Byte, expected: Long): Unit = {
13661366
assert(!cast(b, TimestampType).resolved)
13671367
}

0 commit comments

Comments
 (0)