On Fri, Aug 30, 2013 at 2:13 PM,  <maxim.bo...@gmail.com> wrote:
> However, I think error message should filter dropped column and strange null
> values (because if a table has a lot dropped column this error message
> quickly become completely unreadable).
Yes, this is not really user-friendly. This comes from
ExecBuildSlotValueDescription@execMain.c when generating a string
representation of a tuple. Attached is a patch to make this function
aware of dropped columns when generating the string (usable down to
9.2). However, after some debugging I am seeing that the dropped
column is not seen inside TupleDesc (only the column name is correct)
when calling this function in executor.
Breakpoint 1, ExecBuildSlotValueDescription (slot=0x7fc26412b8e0,
maxfieldlen=64) at execMain.c:1636
1636        TupleDesc    tupdesc = slot->tts_tupleDescriptor;
(gdb) p *tupdesc->attrs[0]
$1 = {
  attrelid = 0,
  attname = {
    data = "id", '\0' <repeats 61 times>
  },
  atttypid = 23,
  attstattarget = -1,
  attlen = 4,
  attnum = 1,
  attndims = 0,
  attcacheoff = 0,
  atttypmod = -1,
  attbyval = 1 '\001',
  attstorage = 112 'p',
  attalign = 105 'i',
  attnotnull = 0 '\0',
  atthasdef = 0 '\0',
  attisdropped = 0 '\0',
  attislocal = 1 '\001',
  attinhcount = 0,
  attcollation = 0
}
(gdb) p *tupdesc->attrs[1]
$2 = {
  attrelid = 0,
  attname = {
    data = "........pg.dropped.2........", '\0' <repeats 35 times>
  },
  atttypid = 23,
  attstattarget = -1,
  attlen = 4,
  attnum = 2,
  attndims = 0,
  attcacheoff = -1,
  atttypmod = -1,
  attbyval = 1 '\001',
  attstorage = 112 'p',
  attalign = 105 'i',
  attnotnull = 0 '\0',
  atthasdef = 0 '\0',
  attisdropped = 0 '\0',
  attislocal = 1 '\001',
  attinhcount = 0,
  attcollation = 0
}
attisdropped is not set to true, only attname is updated to its new value.

When removing an attribute in RemoveAttributeById, it is written in
comment that updating a pg_attribute row triggers a relcache flush for
target relation, but obviously it is not happening. I am missing
something perhaps?
-- 
Michael

Attachment: 20130901_dropped_column_gen.patch
Description: Binary data

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to