Em seg., 30 de ago. de 2021 às 07:44, David Rowley <dgrowle...@gmail.com>
escreveu:

> On Wed, 30 Jun 2021 at 02:33, Ranier Vilela <ranier...@gmail.com> wrote:
> > hash_choose_num_partitions function has issues.
> > There are at least two path calls made with used_bits = 0.
> > See at hashagg_spill_init.
>
> > On Windows 64 bits (HEAD) fails with partition_prune:
> > parallel group (11 tests):  reloptions hash_part partition_info explain
> compression resultcache indexing partition_join partition_aggregate
> partition_prune tuplesort
> >      partition_join               ... ok         3495 ms
> >      partition_prune              ... FAILED     4926 ms
> >
> > diff -w -U3
> C:/dll/postgres/postgres_head/src/test/regress/expected/partition_prune.out
> C:/dll/postgres/postgres_head/src/test/regress/results/partition_prune.out
> > ---
> C:/dll/postgres/postgres_head/src/test/regress/expected/partition_prune.out
> 2021-06-23 11:11:26.489575100 -0300
> > +++
> C:/dll/postgres/postgres_head/src/test/regress/results/partition_prune.out
> 2021-06-29 10:54:43.103775700 -0300
> > @@ -2660,7 +2660,7 @@
> >
> --------------------------------------------------------------------------
> >   Nested Loop (actual rows=3 loops=1)
> >     ->  Seq Scan on tbl1 (actual rows=5 loops=1)
> > -   ->  Append (actual rows=1 loops=5)
> > +   ->  Append (actual rows=0 loops=5)
> >           ->  Index Scan using tprt1_idx on tprt_1 (never executed)
> >                 Index Cond: (col1 = tbl1.col1)
> >           ->  Index Scan using tprt2_idx on tprt_2 (actual rows=1
> loops=2)
> >
> > With patch attached:
> > parallel group (11 tests):  partition_info hash_part resultcache
> reloptions explain compression indexing partition_aggregate partition_join
> tuplesort partition_prune
> >      partition_join               ... ok         3013 ms
> >      partition_prune              ... ok         3959 ms
>
> This failure was reported to me along with this thread so I had a look at
> it.
>
Thanks.


> Firstly, I'm a bit confused as to why you think making a change in
> nodeAgg.c would have any effect on a plan that does not contain any
> aggregate node.
>
Yeah, they are unrelated.
For some reason, when checking the regress, partion_prune was ok and I
mistakenly made a connection with the changes, which is wrong.


> As for the regression test failure. I can recreate it, but I did have
> to install VS2019 version 16.9.3 from
> https://docs.microsoft.com/en-us/visualstudio/releases/2019/history
>
> This basically boils down to the 16.9.3 compiler outputting "0" for:
>
> #include <stdio.h>
>
> int main(void)
> {
>     printf("%.0f\n", 0.59999999999999998);
>     return 0;
> }
>
> but we expect it to output "1".
>
> We name use of the provided sprintf() function in snprintf.c line 1188
> with:
>
> vallen = sprintf(convert, fmt, prec, value);
>
> I don't see the problem in more recent versions of VS2019, but I
> didn't go to the trouble of figuring out exactly which version this
> was fixed in.
>
Regarding this test, with the last msvc, compiled for Debug, it still
occurs:
     partition_join               ... ok         4267 ms
     partition_prune              ... FAILED     5270 ms
     reloptions                   ... ok          755 ms
     hash_part                    ... ok          494 ms

I still believe it's the compiler problem.

regards,
Ranier Vilela

Reply via email to