From: | darcy(at)druid(dot)net (D'Arcy J(dot)M(dot) Cain) |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: User functions and AIX |
Date: | 2001-05-28 19:06:07 |
Message-ID: | 20010528190607.E9CD21AAA@druid.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Thus spake Tom Lane
> darcy(at)druid(dot)net (D'Arcy J.M. Cain) writes:
> > The top of the backtrace looks like this.
>
> > #0 0x0 in ?? () from (unknown load module)
> > #1 0xd1087a60 in chkpass_in (fcinfo=0x0) at chkpass.c:88
> > #2 0x10045cf4 in or_clause (clause=0x0) at clauses.c:211
> > #3 0x10075d68 in int82ge (fcinfo=0x1015cfc8) at int8.c:343
> > #4 0x1005909c in _readArrayRef () at readfuncs.c:924
> > #5 0x10059b68 in _readSeqScan () at readfuncs.c:600
>
> I don't believe a word of that backtrace, and neither should you.
> The alleged call arcs at levels below #1 do not exist in the code.
> Ergo, I doubt the top two levels can be trusted either.
Can you clarify? I see or_clause takes a clause arg and I assumed that
the fcinfo is hidden in the macro. I don't understand how the arg for
chkpass_in can be NULL. I'm also not sure why these functions are involved
in reading the chkpass type.
Hmm. I just rebooted and reran the test (SELECT 'hello'::chkpass) and
it gave me a different stacktrace. It looks like this.
#0 0x0 in ?? () from (unknown load module)
#1 0xd1085a60 in chkpass_in (fcinfo=0x0) at chkpass.c:88
#2 0x1004b874 in OidFunctionCall3 (functionId=269952520, arg1=269952532,
arg2=269952540, arg3=269952548) at fmgr.c:1136
#3 0x1007f350 in stringTypeDatum (tp=0x10172694, string=0x101726a0 "pendant",
atttypmod=269952680) at parse_type.c:181
#4 0x10060630 in parser_typecast_constant (expr=0x10172794,
typename=0x101727a0) at parse_expr.c:876
#5 0x10061188 in transformExpr (pstate=0x10172910, expr=0x10172920,
precedence=269953332) at parse_expr.c:118
#6 0x10076f28 in transformTargetEntry (pstate=0x258, node=0x5c,
expr=0x2ff1df70, colname=0x101729f4 "inner", resjunk=16 '\020')
at parse_target.c:56
#7 0x10077198 in transformTargetList (pstate=0x10172ab8,
targetlist=0x10172ac0) at parse_target.c:158
#8 0x10093c10 in transformSelectStmt (pstate=0x10172b80, stmt=0x10172b88)
at analyze.c:1835
#9 0x1009497c in transformStmt (pstate=0x20000890, parseTree=0x2001f43c)
at analyze.c:226
#10 0x10094ca4 in parse_analyze (parseTree=0x100195f8,
parentParseState=0x200008a4) at analyze.c:86
I still can't follow the logic through the code. And chkpass_in is still
being called with a null pointer according to this.
--
D'Arcy J.M. Cain <darcy(at){druid|vex}.net> | Democracy is three wolves
http://www.druid.net/darcy/ | and a sheep voting on
+1 416 425 1212 (DoD#0082) (eNTP) | what's for dinner.
From | Date | Subject | |
---|---|---|---|
Next Message | D'Arcy J.M. Cain | 2001-05-28 19:07:34 | Re: New/old style trigger API |
Previous Message | Tom Lane | 2001-05-28 18:37:32 | Re: charin(), text_char() should return something else for empty input |