From: | Uncle George <gatgul(at)voicenet(dot)com> |
---|---|
To: | pgsql-hackers(at)postgreSQL(dot)org, pgsql-ports(at)postgreSQL(dot)org |
Subject: | RedHat6.0 & Alpha |
Date: | 1999-07-20 00:21:10 |
Message-ID: | 3793C0F6.3ECB814E@voicenet.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-ports |
In the regression test rules.sql there is this SQL command
update rtest_v1 set a = rtest_t3.a + 20 where b = rtest_t3.b;
Which causes my alpha port to go core. The above line can be reduced to:
update rtest_v1 set a = rtest_t3.a + 20 ;
which also causes the same problem. It seems that the 64 bit address
((Expr*)nodeptr)->oper gets truncated ( high 32 bits ) somewhere along the way.
I was able to locate the errant code in rewriteManip.c:712. but There seems to be a
bigger problem other than eraseing the upper 32bit address. It seems that
FindMatchingNew() returns a node of type T_Expr, rather than the expected type of
T_Var. Once u realize this then u can see why the now MISCAST "(Var *)
*nodePtr)->varlevelsup = this_varlevelsup" will cause a problem. On my alpha this erases
a portion in the address in the T_Expr. On the redhat 5.2/i386 this code seems to be
benign, BUT YOU ARE ERASEING SOMETHING that doesn't belong to to T_Expr !
So what gives?
gat
Maybe an assert() will help in finding some of the miscast returned types? Wuddya think?
sure would catch some of the boo-boo's hanging around
rewriteManip.c:
if (this_varno == info->new_varno &&
this_varlevelsup == sublevels_up)
{
n = FindMatchingNew(targetlist,
((Var *) node)->varattno);
if (n == NULL)
{
if (info->event == CMD_UPDATE)
{
*nodePtr = n = copyObject(node);
((Var *) n)->varno = info->current_varno;
((Var *) n)->varnoold = info->current_varno;
}
else
*nodePtr = make_null(((Var *) node)->vartype);
}
else
{
*nodePtr = copyObject(n);
((Var *) *nodePtr)->varlevelsup = this_varlevelsup; /* This
line zaps the address */
}
}
From | Date | Subject | |
---|---|---|---|
Next Message | Ryan Kirkpatrick | 1999-07-20 01:04:44 | Re: [PORTS] RedHat6.0 & Alpha |
Previous Message | Ross J. Reedstrom | 1999-07-19 22:20:15 | pg_dump quoting bug |
From | Date | Subject | |
---|---|---|---|
Next Message | Vincenzo Venuto | 1999-07-20 01:02:13 | Port to OS/2 completed ... |
Previous Message | Unprivileged user | 1999-07-19 20:11:41 | Port Bug Report: Could't build binaries and shared libraries |