sending row data to frontend - reg
Hi All,
we are trying to modify the source code of postgresql to support a new
command pivot <colA> <colB> <tablename>
we are doing the following steps:
1. After parsing the input, we are able to get the values entered by the
user for column A , column B and tablename.
2. Then, from postgresmain, we call exec_simple_query with a new query
"select * from tablename"
3. Then we read the result of execution of this query from
sendrowdescriptionmessage and printtup functions and also, don't allow these
to send the result of the select query to the frontend
4. now, we do the required changes needed for the pivot command
5. after this, from executorrun, we call sendrowdescriptionmessage function
( with modifications) to send the newly calculated row description - this is
working fine
6. Now, we want to send the newly calculated row data to the frontend. We
are not able to do this...
is there any way to send the row values, without invoking the executeplan
again? - since executeplan is overwriting the earlier sent rowdescription
(which we are not able to figure out why ! )
Can anyone help us?
we would be grateful, if you could give any pointers in this regard.
Thanking you in advance,
Rose.
"Rose Catherine K" <rosecatherinek@gmail.com> writes:
we are trying to modify the source code of postgresql to support a new
command pivot <colA> <colB> <tablename>
we are doing the following steps:
1. After parsing the input, we are able to get the values entered by the
user for column A , column B and tablename.
2. Then, from postgresmain, we call exec_simple_query with a new query
"select * from tablename"
3. Then we read the result of execution of this query from
sendrowdescriptionmessage and printtup functions and also, don't allow these
to send the result of the select query to the frontend
4. now, we do the required changes needed for the pivot command
5. after this, from executorrun, we call sendrowdescriptionmessage function
( with modifications) to send the newly calculated row description - this is
working fine
6. Now, we want to send the newly calculated row data to the frontend. We
are not able to do this...
It sounds to me like you've kluged the I/O support stuff to the point
that it doesn't work at all. Leave that alone and use SPI to execute
your internal query.
As a general style suggestion, if you are touching postgres.c at all
to add a new command, you are putting it in the wrong place. The guts
of it should be under backend/commands/. I think you ought to look at
existing utility commands that return rows, such as EXPLAIN or SHOW,
for guidance.
regards, tom lane