Обсуждение: sending row data to frontend - reg

Поиск
Список
Период
Сортировка

sending row data to frontend - reg

От
"Rose Catherine K"
Дата:
Hi All,<br /><br />we are trying to modify the source code of postgresql to support a new command pivot <colA>
<colB><tablename><br />we are doing the following steps:<br />1. After parsing the input, we are able to
getthe values entered by the user for column A , column B and tablename. <br />2. Then, from postgresmain, we call
exec_simple_querywith a new query "select * from tablename"<br />3. Then we read the result of execution of this query
fromsendrowdescriptionmessage and printtup functions and also, don't allow these to send the result of the select query
tothe frontend <br />4. now, we do the required changes needed for the pivot command <br />5. after this, from
executorrun, we call sendrowdescriptionmessage function ( with modifications) to send the newly calculated row
description- this is working fine <br />6. Now, we want to send the newly calculated row data to the frontend. We are
notable to do this...<br />is there any way to send the row values, without invoking the executeplan again? - since
executeplanis overwriting the earlier sent rowdescription (which we are not able to figure out why ! ) <br /><br />Can
anyonehelp us? <br />we would be grateful, if you could give any pointers in this regard.<br /><br />Thanking you in
advance,<br/>Rose.<br /><br /> 

Re: sending row data to frontend - reg

От
Tom Lane
Дата:
"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