From 70342222819e78b054001f385bf6c679f24e1591 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=8B=E6=98=9F=E5=8D=9A?= Date: Fri, 24 Jun 2016 19:53:08 +0800 Subject: [PATCH 1/4] [SPARK-14172][SQL] Hive table partition predicate not passed down correctly --- .../org/apache/spark/sql/catalyst/planning/patterns.scala | 8 +++++--- .../apache/spark/sql/hive/execution/PruningSuite.scala | 8 ++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala index f42e67ca6ec2..ed413ae7d7fc 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala @@ -64,10 +64,12 @@ object PhysicalOperation extends PredicateHelper { val substitutedFields = fields.map(substitute(aliases)).asInstanceOf[Seq[NamedExpression]] (Some(substitutedFields), filters, other, collectAliases(substitutedFields)) - case Filter(condition, child) if condition.deterministic => + case Filter(condition, child) => + val (deterministicFilters, nondeterministicFilters) = splitConjunctivePredicates(condition) + .partition(_.deterministic) val (fields, filters, other, aliases) = collectProjectsAndFilters(child) - val substitutedCondition = substitute(aliases)(condition) - (fields, filters ++ splitConjunctivePredicates(substitutedCondition), other, aliases) + val substitutedFilters = deterministicFilters.map(substitute(aliases)(_)) + (fields, filters ++ deterministicFilters, other, aliases) case BroadcastHint(child) => collectProjectsAndFilters(child) diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/PruningSuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/PruningSuite.scala index 24df73b40ea0..0897fdf01c2b 100644 --- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/PruningSuite.scala +++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/PruningSuite.scala @@ -141,6 +141,14 @@ class PruningSuite extends HiveComparisonTest with BeforeAndAfter { Seq("2008-04-08", "11"), Seq("2008-04-09", "11"))) + createPruningTest("Partition pruning - with nondeterministic fields", + "SELECT value, hr FROM srcpart1 WHERE ds = '2008-04-08' AND rand(7) < 1", + Seq("value", "hr"), + Seq("value", "hr"), + Seq( + Seq("2008-04-08", "11"), + Seq("2008-04-08", "12"))) + def createPruningTest( testCaseName: String, sql: String, From 4549ad5d585587ab8ac01f28a468b3f01f36a209 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=8B=E6=98=9F=E5=8D=9A?= Date: Sat, 25 Jun 2016 10:53:29 +0800 Subject: [PATCH 2/4] should collect substituded filters. --- .../scala/org/apache/spark/sql/catalyst/planning/patterns.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala index ed413ae7d7fc..0110c4a2c1aa 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala @@ -69,7 +69,7 @@ object PhysicalOperation extends PredicateHelper { .partition(_.deterministic) val (fields, filters, other, aliases) = collectProjectsAndFilters(child) val substitutedFilters = deterministicFilters.map(substitute(aliases)(_)) - (fields, filters ++ deterministicFilters, other, aliases) + (fields, filters ++ substitutedFilters, other, aliases) case BroadcastHint(child) => collectProjectsAndFilters(child) From e932bc44f18183962b8cf943eba18e324d71c77e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=8B=E6=98=9F=E5=8D=9A?= Date: Wed, 29 Jun 2016 12:51:42 +0800 Subject: [PATCH 3/4] deterministic parts placed before any non-deterministic predicates should be PPDed. --- .../spark/sql/catalyst/planning/patterns.scala | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala index 0110c4a2c1aa..d96fe1f13d48 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala @@ -65,10 +65,17 @@ object PhysicalOperation extends PredicateHelper { (Some(substitutedFields), filters, other, collectAliases(substitutedFields)) case Filter(condition, child) => - val (deterministicFilters, nondeterministicFilters) = splitConjunctivePredicates(condition) - .partition(_.deterministic) + // Deterministic parts of filter condition placed before non-deterministic predicates could + // be pushed down safely. + var isPredicatePushdownAble = true + val predicatePushdownFilters = splitConjunctivePredicates(condition).filter { + predicate => { + isPredicatePushdownAble = isPredicatePushdownAble && predicate.deterministic + isPredicatePushdownAble + } + } val (fields, filters, other, aliases) = collectProjectsAndFilters(child) - val substitutedFilters = deterministicFilters.map(substitute(aliases)(_)) + val substitutedFilters = predicatePushdownFilters.map(substitute(aliases)(_)) (fields, filters ++ substitutedFilters, other, aliases) case BroadcastHint(child) => From db28228800a4d7fe0aafa15543084de4539a8930 Mon Sep 17 00:00:00 2001 From: jiangxingbo Date: Wed, 20 Jul 2016 16:54:17 +0800 Subject: [PATCH 4/4] refactor to be more clear. --- .../sql/catalyst/planning/patterns.scala | 16 +- ...ry test-0-f653711179faad98dc27d1e9c49c190c | 1000 +++++++++++++++++ .../sql/hive/execution/PruningSuite.scala | 4 +- 3 files changed, 1009 insertions(+), 11 deletions(-) create mode 100644 sql/hive/src/test/resources/golden/Partition pruning - with non-deterministic fields - query test-0-f653711179faad98dc27d1e9c49c190c diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala index d96fe1f13d48..5f329cff8dec 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/patterns.scala @@ -65,17 +65,15 @@ object PhysicalOperation extends PredicateHelper { (Some(substitutedFields), filters, other, collectAliases(substitutedFields)) case Filter(condition, child) => + val (fields, filters, other, aliases) = collectProjectsAndFilters(child) + // Deterministic parts of filter condition placed before non-deterministic predicates could // be pushed down safely. - var isPredicatePushdownAble = true - val predicatePushdownFilters = splitConjunctivePredicates(condition).filter { - predicate => { - isPredicatePushdownAble = isPredicatePushdownAble && predicate.deterministic - isPredicatePushdownAble - } - } - val (fields, filters, other, aliases) = collectProjectsAndFilters(child) - val substitutedFilters = predicatePushdownFilters.map(substitute(aliases)(_)) + val (pushDown, rest) = + splitConjunctivePredicates(condition).span(_.deterministic) + + val substitutedFilters = pushDown.map(substitute(aliases)(_)) + (fields, filters ++ substitutedFilters, other, aliases) case BroadcastHint(child) => diff --git a/sql/hive/src/test/resources/golden/Partition pruning - with non-deterministic fields - query test-0-f653711179faad98dc27d1e9c49c190c b/sql/hive/src/test/resources/golden/Partition pruning - with non-deterministic fields - query test-0-f653711179faad98dc27d1e9c49c190c new file mode 100644 index 000000000000..fa83b599a266 --- /dev/null +++ b/sql/hive/src/test/resources/golden/Partition pruning - with non-deterministic fields - query test-0-f653711179faad98dc27d1e9c49c190c @@ -0,0 +1,1000 @@ +val_0 11 +val_0 11 +val_0 11 +val_0 12 +val_0 12 +val_0 12 +val_10 11 +val_10 12 +val_100 11 +val_100 11 +val_100 12 +val_100 12 +val_103 11 +val_103 11 +val_103 12 +val_103 12 +val_104 11 +val_104 11 +val_104 12 +val_104 12 +val_105 11 +val_105 12 +val_11 11 +val_11 12 +val_111 11 +val_111 12 +val_113 11 +val_113 11 +val_113 12 +val_113 12 +val_114 11 +val_114 12 +val_116 11 +val_116 12 +val_118 11 +val_118 11 +val_118 12 +val_118 12 +val_119 11 +val_119 11 +val_119 11 +val_119 12 +val_119 12 +val_119 12 +val_12 11 +val_12 11 +val_12 12 +val_12 12 +val_120 11 +val_120 11 +val_120 12 +val_120 12 +val_125 11 +val_125 11 +val_125 12 +val_125 12 +val_126 11 +val_126 12 +val_128 11 +val_128 11 +val_128 11 +val_128 12 +val_128 12 +val_128 12 +val_129 11 +val_129 11 +val_129 12 +val_129 12 +val_131 11 +val_131 12 +val_133 11 +val_133 12 +val_134 11 +val_134 11 +val_134 12 +val_134 12 +val_136 11 +val_136 12 +val_137 11 +val_137 11 +val_137 12 +val_137 12 +val_138 11 +val_138 11 +val_138 11 +val_138 11 +val_138 12 +val_138 12 +val_138 12 +val_138 12 +val_143 11 +val_143 12 +val_145 11 +val_145 12 +val_146 11 +val_146 11 +val_146 12 +val_146 12 +val_149 11 +val_149 11 +val_149 12 +val_149 12 +val_15 11 +val_15 11 +val_15 12 +val_15 12 +val_150 11 +val_150 12 +val_152 11 +val_152 11 +val_152 12 +val_152 12 +val_153 11 +val_153 12 +val_155 11 +val_155 12 +val_156 11 +val_156 12 +val_157 11 +val_157 12 +val_158 11 +val_158 12 +val_160 11 +val_160 12 +val_162 11 +val_162 12 +val_163 11 +val_163 12 +val_164 11 +val_164 11 +val_164 12 +val_164 12 +val_165 11 +val_165 11 +val_165 12 +val_165 12 +val_166 11 +val_166 12 +val_167 11 +val_167 11 +val_167 11 +val_167 12 +val_167 12 +val_167 12 +val_168 11 +val_168 12 +val_169 11 +val_169 11 +val_169 11 +val_169 11 +val_169 12 +val_169 12 +val_169 12 +val_169 12 +val_17 11 +val_17 12 +val_170 11 +val_170 12 +val_172 11 +val_172 11 +val_172 12 +val_172 12 +val_174 11 +val_174 11 +val_174 12 +val_174 12 +val_175 11 +val_175 11 +val_175 12 +val_175 12 +val_176 11 +val_176 11 +val_176 12 +val_176 12 +val_177 11 +val_177 12 +val_178 11 +val_178 12 +val_179 11 +val_179 11 +val_179 12 +val_179 12 +val_18 11 +val_18 11 +val_18 12 +val_18 12 +val_180 11 +val_180 12 +val_181 11 +val_181 12 +val_183 11 +val_183 12 +val_186 11 +val_186 12 +val_187 11 +val_187 11 +val_187 11 +val_187 12 +val_187 12 +val_187 12 +val_189 11 +val_189 12 +val_19 11 +val_19 12 +val_190 11 +val_190 12 +val_191 11 +val_191 11 +val_191 12 +val_191 12 +val_192 11 +val_192 12 +val_193 11 +val_193 11 +val_193 11 +val_193 12 +val_193 12 +val_193 12 +val_194 11 +val_194 12 +val_195 11 +val_195 11 +val_195 12 +val_195 12 +val_196 11 +val_196 12 +val_197 11 +val_197 11 +val_197 12 +val_197 12 +val_199 11 +val_199 11 +val_199 11 +val_199 12 +val_199 12 +val_199 12 +val_2 11 +val_2 12 +val_20 11 +val_20 12 +val_200 11 +val_200 11 +val_200 12 +val_200 12 +val_201 11 +val_201 12 +val_202 11 +val_202 12 +val_203 11 +val_203 11 +val_203 12 +val_203 12 +val_205 11 +val_205 11 +val_205 12 +val_205 12 +val_207 11 +val_207 11 +val_207 12 +val_207 12 +val_208 11 +val_208 11 +val_208 11 +val_208 12 +val_208 12 +val_208 12 +val_209 11 +val_209 11 +val_209 12 +val_209 12 +val_213 11 +val_213 11 +val_213 12 +val_213 12 +val_214 11 +val_214 12 +val_216 11 +val_216 11 +val_216 12 +val_216 12 +val_217 11 +val_217 11 +val_217 12 +val_217 12 +val_218 11 +val_218 12 +val_219 11 +val_219 11 +val_219 12 +val_219 12 +val_221 11 +val_221 11 +val_221 12 +val_221 12 +val_222 11 +val_222 12 +val_223 11 +val_223 11 +val_223 12 +val_223 12 +val_224 11 +val_224 11 +val_224 12 +val_224 12 +val_226 11 +val_226 12 +val_228 11 +val_228 12 +val_229 11 +val_229 11 +val_229 12 +val_229 12 +val_230 11 +val_230 11 +val_230 11 +val_230 11 +val_230 11 +val_230 12 +val_230 12 +val_230 12 +val_230 12 +val_230 12 +val_233 11 +val_233 11 +val_233 12 +val_233 12 +val_235 11 +val_235 12 +val_237 11 +val_237 11 +val_237 12 +val_237 12 +val_238 11 +val_238 11 +val_238 12 +val_238 12 +val_239 11 +val_239 11 +val_239 12 +val_239 12 +val_24 11 +val_24 11 +val_24 12 +val_24 12 +val_241 11 +val_241 12 +val_242 11 +val_242 11 +val_242 12 +val_242 12 +val_244 11 +val_244 12 +val_247 11 +val_247 12 +val_248 11 +val_248 12 +val_249 11 +val_249 12 +val_252 11 +val_252 12 +val_255 11 +val_255 11 +val_255 12 +val_255 12 +val_256 11 +val_256 11 +val_256 12 +val_256 12 +val_257 11 +val_257 12 +val_258 11 +val_258 12 +val_26 11 +val_26 11 +val_26 12 +val_26 12 +val_260 11 +val_260 12 +val_262 11 +val_262 12 +val_263 11 +val_263 12 +val_265 11 +val_265 11 +val_265 12 +val_265 12 +val_266 11 +val_266 12 +val_27 11 +val_27 12 +val_272 11 +val_272 11 +val_272 12 +val_272 12 +val_273 11 +val_273 11 +val_273 11 +val_273 12 +val_273 12 +val_273 12 +val_274 11 +val_274 12 +val_275 11 +val_275 12 +val_277 11 +val_277 11 +val_277 11 +val_277 11 +val_277 12 +val_277 12 +val_277 12 +val_277 12 +val_278 11 +val_278 11 +val_278 12 +val_278 12 +val_28 11 +val_28 12 +val_280 11 +val_280 11 +val_280 12 +val_280 12 +val_281 11 +val_281 11 +val_281 12 +val_281 12 +val_282 11 +val_282 11 +val_282 12 +val_282 12 +val_283 11 +val_283 12 +val_284 11 +val_284 12 +val_285 11 +val_285 12 +val_286 11 +val_286 12 +val_287 11 +val_287 12 +val_288 11 +val_288 11 +val_288 12 +val_288 12 +val_289 11 +val_289 12 +val_291 11 +val_291 12 +val_292 11 +val_292 12 +val_296 11 +val_296 12 +val_298 11 +val_298 11 +val_298 11 +val_298 12 +val_298 12 +val_298 12 +val_30 11 +val_30 12 +val_302 11 +val_302 12 +val_305 11 +val_305 12 +val_306 11 +val_306 12 +val_307 11 +val_307 11 +val_307 12 +val_307 12 +val_308 11 +val_308 12 +val_309 11 +val_309 11 +val_309 12 +val_309 12 +val_310 11 +val_310 12 +val_311 11 +val_311 11 +val_311 11 +val_311 12 +val_311 12 +val_311 12 +val_315 11 +val_315 12 +val_316 11 +val_316 11 +val_316 11 +val_316 12 +val_316 12 +val_316 12 +val_317 11 +val_317 11 +val_317 12 +val_317 12 +val_318 11 +val_318 11 +val_318 11 +val_318 12 +val_318 12 +val_318 12 +val_321 11 +val_321 11 +val_321 12 +val_321 12 +val_322 11 +val_322 11 +val_322 12 +val_322 12 +val_323 11 +val_323 12 +val_325 11 +val_325 11 +val_325 12 +val_325 12 +val_327 11 +val_327 11 +val_327 11 +val_327 12 +val_327 12 +val_327 12 +val_33 11 +val_33 12 +val_331 11 +val_331 11 +val_331 12 +val_331 12 +val_332 11 +val_332 12 +val_333 11 +val_333 11 +val_333 12 +val_333 12 +val_335 11 +val_335 12 +val_336 11 +val_336 12 +val_338 11 +val_338 12 +val_339 11 +val_339 12 +val_34 11 +val_34 12 +val_341 11 +val_341 12 +val_342 11 +val_342 11 +val_342 12 +val_342 12 +val_344 11 +val_344 11 +val_344 12 +val_344 12 +val_345 11 +val_345 12 +val_348 11 +val_348 11 +val_348 11 +val_348 11 +val_348 11 +val_348 12 +val_348 12 +val_348 12 +val_348 12 +val_348 12 +val_35 11 +val_35 11 +val_35 11 +val_35 12 +val_35 12 +val_35 12 +val_351 11 +val_351 12 +val_353 11 +val_353 11 +val_353 12 +val_353 12 +val_356 11 +val_356 12 +val_360 11 +val_360 12 +val_362 11 +val_362 12 +val_364 11 +val_364 12 +val_365 11 +val_365 12 +val_366 11 +val_366 12 +val_367 11 +val_367 11 +val_367 12 +val_367 12 +val_368 11 +val_368 12 +val_369 11 +val_369 11 +val_369 11 +val_369 12 +val_369 12 +val_369 12 +val_37 11 +val_37 11 +val_37 12 +val_37 12 +val_373 11 +val_373 12 +val_374 11 +val_374 12 +val_375 11 +val_375 12 +val_377 11 +val_377 12 +val_378 11 +val_378 12 +val_379 11 +val_379 12 +val_382 11 +val_382 11 +val_382 12 +val_382 12 +val_384 11 +val_384 11 +val_384 11 +val_384 12 +val_384 12 +val_384 12 +val_386 11 +val_386 12 +val_389 11 +val_389 12 +val_392 11 +val_392 12 +val_393 11 +val_393 12 +val_394 11 +val_394 12 +val_395 11 +val_395 11 +val_395 12 +val_395 12 +val_396 11 +val_396 11 +val_396 11 +val_396 12 +val_396 12 +val_396 12 +val_397 11 +val_397 11 +val_397 12 +val_397 12 +val_399 11 +val_399 11 +val_399 12 +val_399 12 +val_4 11 +val_4 12 +val_400 11 +val_400 12 +val_401 11 +val_401 11 +val_401 11 +val_401 11 +val_401 11 +val_401 12 +val_401 12 +val_401 12 +val_401 12 +val_401 12 +val_402 11 +val_402 12 +val_403 11 +val_403 11 +val_403 11 +val_403 12 +val_403 12 +val_403 12 +val_404 11 +val_404 11 +val_404 12 +val_404 12 +val_406 11 +val_406 11 +val_406 11 +val_406 11 +val_406 12 +val_406 12 +val_406 12 +val_406 12 +val_407 11 +val_407 12 +val_409 11 +val_409 11 +val_409 11 +val_409 12 +val_409 12 +val_409 12 +val_41 11 +val_41 12 +val_411 11 +val_411 12 +val_413 11 +val_413 11 +val_413 12 +val_413 12 +val_414 11 +val_414 11 +val_414 12 +val_414 12 +val_417 11 +val_417 11 +val_417 11 +val_417 12 +val_417 12 +val_417 12 +val_418 11 +val_418 12 +val_419 11 +val_419 12 +val_42 11 +val_42 11 +val_42 12 +val_42 12 +val_421 11 +val_421 12 +val_424 11 +val_424 11 +val_424 12 +val_424 12 +val_427 11 +val_427 12 +val_429 11 +val_429 11 +val_429 12 +val_429 12 +val_43 11 +val_43 12 +val_430 11 +val_430 11 +val_430 11 +val_430 12 +val_430 12 +val_430 12 +val_431 11 +val_431 11 +val_431 11 +val_431 12 +val_431 12 +val_431 12 +val_432 11 +val_432 12 +val_435 11 +val_435 12 +val_436 11 +val_436 12 +val_437 11 +val_437 12 +val_438 11 +val_438 11 +val_438 11 +val_438 12 +val_438 12 +val_438 12 +val_439 11 +val_439 11 +val_439 12 +val_439 12 +val_44 11 +val_44 12 +val_443 11 +val_443 12 +val_444 11 +val_444 12 +val_446 11 +val_446 12 +val_448 11 +val_448 12 +val_449 11 +val_449 12 +val_452 11 +val_452 12 +val_453 11 +val_453 12 +val_454 11 +val_454 11 +val_454 11 +val_454 12 +val_454 12 +val_454 12 +val_455 11 +val_455 12 +val_457 11 +val_457 12 +val_458 11 +val_458 11 +val_458 12 +val_458 12 +val_459 11 +val_459 11 +val_459 12 +val_459 12 +val_460 11 +val_460 12 +val_462 11 +val_462 11 +val_462 12 +val_462 12 +val_463 11 +val_463 11 +val_463 12 +val_463 12 +val_466 11 +val_466 11 +val_466 11 +val_466 12 +val_466 12 +val_466 12 +val_467 11 +val_467 12 +val_468 11 +val_468 11 +val_468 11 +val_468 11 +val_468 12 +val_468 12 +val_468 12 +val_468 12 +val_469 11 +val_469 11 +val_469 11 +val_469 11 +val_469 11 +val_469 12 +val_469 12 +val_469 12 +val_469 12 +val_469 12 +val_47 11 +val_47 12 +val_470 11 +val_470 12 +val_472 11 +val_472 12 +val_475 11 +val_475 12 +val_477 11 +val_477 12 +val_478 11 +val_478 11 +val_478 12 +val_478 12 +val_479 11 +val_479 12 +val_480 11 +val_480 11 +val_480 11 +val_480 12 +val_480 12 +val_480 12 +val_481 11 +val_481 12 +val_482 11 +val_482 12 +val_483 11 +val_483 12 +val_484 11 +val_484 12 +val_485 11 +val_485 12 +val_487 11 +val_487 12 +val_489 11 +val_489 11 +val_489 11 +val_489 11 +val_489 12 +val_489 12 +val_489 12 +val_489 12 +val_490 11 +val_490 12 +val_491 11 +val_491 12 +val_492 11 +val_492 11 +val_492 12 +val_492 12 +val_493 11 +val_493 12 +val_494 11 +val_494 12 +val_495 11 +val_495 12 +val_496 11 +val_496 12 +val_497 11 +val_497 12 +val_498 11 +val_498 11 +val_498 11 +val_498 12 +val_498 12 +val_498 12 +val_5 11 +val_5 11 +val_5 11 +val_5 12 +val_5 12 +val_5 12 +val_51 11 +val_51 11 +val_51 12 +val_51 12 +val_53 11 +val_53 12 +val_54 11 +val_54 12 +val_57 11 +val_57 12 +val_58 11 +val_58 11 +val_58 12 +val_58 12 +val_64 11 +val_64 12 +val_65 11 +val_65 12 +val_66 11 +val_66 12 +val_67 11 +val_67 11 +val_67 12 +val_67 12 +val_69 11 +val_69 12 +val_70 11 +val_70 11 +val_70 11 +val_70 12 +val_70 12 +val_70 12 +val_72 11 +val_72 11 +val_72 12 +val_72 12 +val_74 11 +val_74 12 +val_76 11 +val_76 11 +val_76 12 +val_76 12 +val_77 11 +val_77 12 +val_78 11 +val_78 12 +val_8 11 +val_8 12 +val_80 11 +val_80 12 +val_82 11 +val_82 12 +val_83 11 +val_83 11 +val_83 12 +val_83 12 +val_84 11 +val_84 11 +val_84 12 +val_84 12 +val_85 11 +val_85 12 +val_86 11 +val_86 12 +val_87 11 +val_87 12 +val_9 11 +val_9 12 +val_90 11 +val_90 11 +val_90 11 +val_90 12 +val_90 12 +val_90 12 +val_92 11 +val_92 12 +val_95 11 +val_95 11 +val_95 12 +val_95 12 +val_96 11 +val_96 12 +val_97 11 +val_97 11 +val_97 12 +val_97 12 +val_98 11 +val_98 11 +val_98 12 +val_98 12 diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/PruningSuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/PruningSuite.scala index 0897fdf01c2b..9f9539aacf01 100644 --- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/PruningSuite.scala +++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/PruningSuite.scala @@ -141,8 +141,8 @@ class PruningSuite extends HiveComparisonTest with BeforeAndAfter { Seq("2008-04-08", "11"), Seq("2008-04-09", "11"))) - createPruningTest("Partition pruning - with nondeterministic fields", - "SELECT value, hr FROM srcpart1 WHERE ds = '2008-04-08' AND rand(7) < 1", + createPruningTest("Partition pruning - with non-deterministic fields", + "SELECT value, hr FROM srcpart1 WHERE ds = '2008-04-08' AND rand(7) < 0.1", Seq("value", "hr"), Seq("value", "hr"), Seq(