On Thu, Jan 26, 2023 at 07:21:16PM -0500, Tom Lane wrote: > Well, if you looked further than the first few rows, it wouldn't be > "always zero". But the select from the partitioned table will read > the first partition first, and that partition will have the rows > with d1=0, by definition. > > =# explain select * from case_test2 limit 10; > QUERY PLAN > > > -------------------------------------------------------------------------------- > ----------- > Limit (cost=0.00..0.19 rows=10 width=8) > -> Append (cost=0.00..1987.90 rows=102260 width=8) > -> Seq Scan on case_test2_0 case_test2_1 (cost=0.00..478.84 > rows=3318 > 4 width=8) > -> Seq Scan on case_test2_1 case_test2_2 (cost=0.00..480.86 > rows=3328 > 6 width=8) > -> Seq Scan on case_test2_2 case_test2_3 (cost=0.00..484.30 > rows=3353 > 0 width=8) > -> Seq Scan on case_test2_3 case_test2_4 (cost=0.00..32.60 > rows=2260 > width=8) > (6 rows) > > The result appears sorted by d1, but that's an implementation artifact.
Wow, thanks. Not sure how I missed something so obvious. I just saw it myself by generating only 10 rows and noticing the numbers were always increasing. -- Bruce Momjian <br...@momjian.us> https://momjian.us EDB https://enterprisedb.com Embrace your flaws. They make you human, rather than perfect, which you will never be.