TupleDescInitEntry failing to initialize varlen members

Started by Alvaro Herreraover 14 years ago2 messageshackers
Jump to latest
#1Alvaro Herrera
alvherre@2ndquadrant.com

Hi,

I just noticed in gdb that TupleDescInitEntry does not initialize
attacl, attoptions, attfdwoptions. This is probably not very serious
(otherwise we'd have bugs about it), but it is noticeable in tupdescs
constructed by the executor, at least ExecTypeFromTL:

(gdb) print *tupDesc->attrs[2]
$6 = {attrelid = 0, attname = {data = "c", '\000' <repeats 62 times>}, atttypid = 1114,
attstattarget = -1, attlen = 8, attnum = 3, attphysnum = 3, attlognum = 3, attndims = 0,
attcacheoff = -1, atttypmod = -1, attbyval = 1 '\001', attstorage = 112 'p', attalign = 100 'd',
attnotnull = 0 '\000', atthasdef = 0 '\000', attisdropped = 0 '\000', attislocal = 1 '\001',
attinhcount = 0, attcollation = 0, attacl = {2139062142}, attoptions = {{
vl_len_ = "\177\177\177\177", vl_dat = "\177"}}, attfdwoptions = {{
vl_len_ = "\177\177\177\177", vl_dat = "\177"}}}

Does anybody think this is worth fixing?

--
Álvaro Herrera <alvherre@alvh.no-ip.org>

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Alvaro Herrera (#1)
Re: TupleDescInitEntry failing to initialize varlen members

Alvaro Herrera <alvherre@alvh.no-ip.org> writes:

I just noticed in gdb that TupleDescInitEntry does not initialize
attacl, attoptions, attfdwoptions.

Indeed not, because it's not building a tuple. It's building an array
of C structs, and there's nothing useful to do with those fields.

(Robert's proposal to not even have such fields be C-visible might make
you feel better.)

regards, tom lane