Skip to content

Commit cf376e3

Browse files
committed
Temp
1 parent 9e6e8bf commit cf376e3

1 file changed

Lines changed: 77 additions & 0 deletions

File tree

backends-velox/src-iceberg/test/scala/org/apache/gluten/execution/enhanced/VeloxIcebergSuite.scala

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,4 +465,81 @@ class VeloxIcebergSuite extends IcebergSuite {
465465
)
466466
}
467467
}
468+
test("iceberg show stats has non-empty min max for store sales table") {
469+
withTable("store_sales_10_rows") {
470+
spark.sql("""
471+
|CREATE TABLE store_sales_10_rows (
472+
| ss_sold_date_sk INT,
473+
| ss_sold_time_sk INT,
474+
| ss_item_sk INT,
475+
| ss_customer_sk INT,
476+
| ss_cdemo_sk INT,
477+
| ss_hdemo_sk INT,
478+
| ss_addr_sk INT,
479+
| ss_store_sk INT,
480+
| ss_promo_sk INT,
481+
| ss_ticket_number BIGINT,
482+
| ss_quantity INT,
483+
| ss_wholesale_cost DECIMAL(7,2),
484+
| ss_list_price DECIMAL(7,2),
485+
| ss_sales_price DECIMAL(7,2),
486+
| ss_ext_discount_amt DECIMAL(7,2),
487+
| ss_ext_sales_price DECIMAL(7,2),
488+
| ss_ext_wholesale_cost DECIMAL(7,2),
489+
| ss_ext_list_price DECIMAL(7,2),
490+
| ss_ext_tax DECIMAL(7,2),
491+
| ss_coupon_amt DECIMAL(7,2),
492+
| ss_net_paid DECIMAL(7,2),
493+
| ss_net_paid_inc_tax DECIMAL(7,2),
494+
| ss_net_profit DECIMAL(7,2)
495+
|) USING iceberg
496+
|""".stripMargin)
497+
498+
spark.sql(
499+
"""
500+
|INSERT INTO store_sales_10_rows VALUES
501+
|(2450899, null, 174781, null, null, 5105, 712262, null, null, 875206344, null, 75.64, 105.13, null, 0.00, null, 3328.16, 4625.72, null, 0.00, null, null, null),
502+
|(2450899, 45381, 240260, 63498438, 1296795, 5105, 712262, 542, 1925, 875206344, 13, 5.12, 7.27, 2.18, 0.00, 28.34, 66.56, 94.51, 1.98, 0.00, 28.34, 30.32, -38.22),
503+
|(2450899, 45381, 360506, 63498438, 1296795, 5105, 712262, 542, 332, 875206344, 69, 36.45, 70.34, 16.17, 0.00, 1115.73, 2515.05, 4853.46, 22.31, 0.00, 1115.73, 1138.04, -1399.32),
504+
|(2450899, 45381, 197360, 63498438, 1296795, 5105, 712262, 542, 1486, 875206344, 50, 92.87, 167.16, 58.50, 0.00, 2925.00, 4643.50, 8358.00, 204.75, 0.00, 2925.00, 3129.75, -1718.50),
505+
|(2450899, 45381, 58255, 63498438, 1296795, 5105, 712262, 542, 359, 875206344, 100, 85.99, 105.76, 47.59, 523.49, 4759.00, 8599.00, 10576.00, 296.48, 523.49, 4235.51, 4531.99, -4363.49),
506+
|(2450899, 45381, 219500, 63498438, 1296795, 5105, 712262, 542, 8, 875206344, 77, 80.61, 121.72, 26.77, 2020.06, 2061.29, 6206.97, 9372.44, 1.64, 2020.06, 41.23, 42.87, -6165.74),
507+
|(2450899, 45381, 60157, 63498438, 1296795, 5105, 712262, 542, 484, 875206344, 9, 44.58, 62.85, 50.28, 0.00, 452.52, 401.22, 565.65, 27.15, 0.00, 452.52, 479.67, 51.30),
508+
|(2450899, 45381, 132362, 63498438, 1296795, 5105, 712262, 542, 1575, 875206344, 86, 30.79, 31.71, 25.68, 0.00, 2208.48, 2647.94, 2727.06, 22.08, 0.00, 2208.48, 2230.56, -439.46),
509+
|(2450899, 45381, 41590, 63498438, 1296795, 5105, 712262, 542, 441, 875206344, 40, 79.99, 137.58, 12.38, 0.00, 495.20, 3199.60, 5503.20, 9.90, 0.00, 495.20, 505.10, -2704.40)
510+
|""".stripMargin)
511+
512+
spark.sql("ANALYZE store_sales_10_rows")
513+
514+
withSQLConf("spark.sql.statistics.ignoreStatsCalculatorFailures" -> "false") {
515+
val stats = spark.sql("SHOW STATS FOR store_sales_10_rows")
516+
517+
val statsByColumn =
518+
stats.collect().map(row => row.getAs[String]("column_name") -> row).toMap
519+
520+
Seq(
521+
"ss_sold_date_sk",
522+
"ss_item_sk",
523+
"ss_ticket_number",
524+
"ss_quantity",
525+
"ss_wholesale_cost",
526+
"ss_list_price",
527+
"ss_sales_price",
528+
"ss_ext_sales_price",
529+
"ss_net_profit"
530+
).foreach {
531+
colName =>
532+
val row = statsByColumn(colName)
533+
534+
assert(
535+
Option(row.getAs[Any]("min")).exists(_.toString.nonEmpty),
536+
s"Expected non-empty min for $colName in SHOW STATS output: $row")
537+
538+
assert(
539+
Option(row.getAs[Any]("max")).exists(_.toString.nonEmpty),
540+
s"Expected non-empty max for $colName in SHOW STATS output: $row")
541+
}
542+
}
543+
}
544+
}
468545
}

0 commit comments

Comments
 (0)