Re: initdb issue on 64-bit Windows - (Was: [pgsql-packagers] PG 9.6beta2 tarballs are ready)

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: initdb issue on 64-bit Windows - (Was: [pgsql-packagers] PG 9.6beta2 tarballs are ready)
Дата
Msg-id 2303.1466862058@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: initdb issue on 64-bit Windows - (Was: [pgsql-packagers] PG 9.6beta2 tarballs are ready)  (Craig Ringer <craig@2ndquadrant.com>)
Ответы Re: initdb issue on 64-bit Windows - (Was: [pgsql-packagers] PG 9.6beta2 tarballs are ready)  ("Haroon ." <contact.mharoon@gmail.com>)
Список pgsql-hackers
Craig Ringer <craig@2ndquadrant.com> writes:
> On 24 June 2016 at 21:34, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> TBH, this looks more like a compiler bug than anything else.

> I tend to agree. Especially since valgrind has no complaints on x64 linux,
> and neither does DrMemory for 32-bit builds with the same toolchain on the
> same Windows and same SDK.

If that is the explanation, I'm suspicious that it's got something to do
with the interaction of a static inline-able (single-call-site) function
and taking the address of a formal parameter.  We certainly have multiple
other instances of each thing, but maybe not both at the same place.
This leads to a couple of suggestions for dodging the problem:

1. Make get_foreign_key_join_selectivity non-static so that it doesn't
get inlined, along the lines of
                       List *restrictlist);
-static Selectivity get_foreign_key_join_selectivity(PlannerInfo *root,
+extern Selectivity get_foreign_key_join_selectivity(PlannerInfo *root,                             Relids
outer_relids,
... */
-static Selectivity
+Selectivityget_foreign_key_join_selectivity(PlannerInfo *root,

2. Don't pass the original formal parameter to
get_foreign_key_join_selectivity, ie do something like
static doublecalc_joinrel_size_estimate(PlannerInfo *root,                           RelOptInfo *outer_rel,
             RelOptInfo *inner_rel,                           double outer_rows,                           double
inner_rows,                          SpecialJoinInfo *sjinfo,
 
-                            List *restrictlist)
+                            List *orig_restrictlist){    JoinType    jointype = sjinfo->jointype;
+    List       *restrictlist = orig_restrictlist;    Selectivity fkselec;    Selectivity jselec;    Selectivity
pselec;

Obviously, if either of those things do make the problem go away, it's
a compiler bug.  If not, we'll need to dig deeper.
        regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Julien Rouhaud
Дата:
Сообщение: Re: Rename max_parallel_degree?
Следующее
От: Tom Lane
Дата:
Сообщение: Re: initdb issue on 64-bit Windows - (Was: [pgsql-packagers] PG 9.6beta2 tarballs are ready)