Thread: tuple properties out of TupleTableSlot
I'm a beginning developer to postgresql working on a CS Master's project trying to implement a new join operator. My questionis how to effectively break down a TupleTableSlot into it's properties. I've been messing around with it for hoursnow and thought the code below would return the attribute name for table but instead just returns some binary info. For example, If I have table TABLE1 with columns (ID, SCORE), I was thinking that the below code would return ID and SCORE as they are the column names. I also need to be able to retrieve the data stored in these columns (select id, score from table1;). Any tips onwhere to look or find the information I'm looking for would be much appreciated. TupleTableSlot *slot; TupleDesc tuple_type; tuple_type = slot->ttc_tupleDescriptor; for (i = 0; i < tuple_type->natts; i++) { printf("The attname name is %c",tuple_type->attrs[i]->attname.data); } Thank You.
"Schoudel, Brian" <BrianS@uillinois.edu> writes: > I'm a beginning developer to postgresql working on a CS Master's project trying to implement a new join operator. My questionis how to effectively break down a TupleTableSlot into it's properties. I've been messing around with it for hoursnow and thought the code below would return the attribute name for table but instead just returns some binary info. The code looks ok as far as it goes ... it's not using NameStr() which I would consider good style, but that's just cosmetic. What context is this being called in, and where are you getting the slot from? I think you're probably not really using a valid slot ... regards, tom lane
Tom, Just for testing, I stuffed it into ExecEvalVar under the switch statement in execQual.c. This was a chosen spot I was fairlycertain I could get some kind of output. TupleTableSlot *slot; TupleDesc tuple_type; The above portion is actually part of the delivered source code. Maybe I need to as you said wrap a NameStr() around it? Thanks -----Original Message----- From: Tom Lane [mailto:tgl@sss.pgh.pa.us] Sent: Saturday, December 11, 2004 12:47 PM To: Schoudel, Brian Cc: pgsql-hackers@postgresql.org Subject: Re: [HACKERS] tuple properties out of TupleTableSlot "Schoudel, Brian" <BrianS@uillinois.edu> writes: > I'm a beginning developer to postgresql working on a CS Master's project trying to implement a new join operator. My questionis how to effectively break down a TupleTableSlot into it's properties. I've been messing around with it for hoursnow and thought the code below would return the attribute name for table but instead just returns some binary info. The code looks ok as far as it goes ... it's not using NameStr() which I would consider good style, but that's just cosmetic. What context is this being called in, and where are you getting the slot from? I think you're probably not really using a valid slot ... regards, tom lane
"Schoudel, Brian" <BrianS@uillinois.edu> writes: > Just for testing, I stuffed it into ExecEvalVar under the switch statement in execQual.c. This was a chosen spot I wasfairly certain I could get some kind of output. Oh. In that case you're probably going to be looking at a tupledesc that was synthesized by ExecTypeFromTL from a targetlist constructed by the planner --- and except at the top level of the plan, the planner doesn't bother to assign column names to generated targetlist entries. So I'd expect you always get empty-string names, unless you test with a trivial one-node scan plan. regards, tom lane