Re: I think that my data is saved correctly, but when printing again,other data appears

Поиск
Список
Период
Сортировка
От Yessica Brinkmann
Тема Re: I think that my data is saved correctly, but when printing again,other data appears
Дата
Msg-id CABrYqSNNhfY0QxKZKaDh3FAtEmZ4LzqO3Zq98-+pbFG32u84BQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: I think that my data is saved correctly, but when printing again,other data appears  (Jony Cohen <jony.cohenjo@gmail.com>)
Ответы Re: I think that my data is saved correctly, but when printing again,other data appears  (Joe Conway <mail@joeconway.com>)
Список pgsql-general
Thank you so much for the answers.
By telling me this: "MemoryContextStrdup enables you to create a copy of a string in an explicitly specified memory context." I better understood the function of MemoryContextStrdup.
And thank you very much to Mr. Jony Cohen for giving me the reference of his work. I really was already researching about his work, and I included it in the state of the art of my thesis, but I didn't look at the source code.
I will be looking at the source code for a help, and especially in this case to see for the moment, the maintenance of the context for its subsequent restoration.
Regards, 
Yessica Brinkmann 

El dom., 27 oct. 2019 a las 19:42, Jony Cohen (<jony.cohenjo@gmail.com>) escribió:
Hi,
Worked on something similar a few years back, have a look - it might give you a few pointers :)
It's on similar lines to what you are looking at (I kept it updated up to PG version 9.4/9.5)

My main focus was to add support for more index types: partial, functional, CTE, composites etc...
(I also had to keep the original context to restore it - so I think you will find a sample to what you are looking for... )

there's also https://github.com/HypoPG/hypopg which is actively maintained.
I think you will find code samples even up to the latest versions here...

Regards,
 - Jony

On Sat, Oct 26, 2019 at 4:06 AM Yessica Brinkmann <yessica.brinkmann@gmail.com> wrote:
Good evening, sorry for the delay in answering. I have a part-time job and I was at it.
I understand what you tell me about the "data" value is just a pointer into the tupdesc associated with the SPI result, and that disappears the moment I do SPI_finish ().
What I do not understand well is how to use CurrentMemoryContext and MemoryContextStrdup, since there are not many examples of using them on the Internet (most are only definitions) and it is the first time I have heard of this, although I already understand this part now of contexts, because I was reading on the subject.
Could you please give me an example of use?
Best Regards,
Yessica Brinkmann

El vie., 25 oct. 2019 a las 12:24, Yessica Brinkmann (<yessica.brinkmann@gmail.com>) escribió:
Thank you so much for your answer. I will be testing the indicated and then I give you return.
Best regards,

Yessica Brinkmann


-------- Mensaje original --------
Asunto: Re: I think that my data is saved correctly, but when printing again, other data appears
De: Tom Lane
Para: Yessica Brinkmann
CC: pgsql-general@lists.postgresql.org


Yessica Brinkmann writes:
> I have a function called get_columnnames, which runs on a Postgresql server
> and returns the names of the columns of a table in a Postgresql database.
> In the first foreach, in the statement: idxcd-> varattnames [cont] = data;
> column names are saved. Those column names are saved correctly. I could
> verify this by printing some values.
> But later, in the following foreach, when I reprint the values of the names
> of the columns that had been saved in the idxcd-> varattnames [cont] = data
> statement; They appear to me with errors.

Yeah, because the "data" value is just a pointer into the tupdesc
associated with the SPI result, and that disappears the moment you
do SPI_finish(). You'd need to do something to copy the strings
into a longer-lived context. A plain pstrdup() won't suffice
because you're in a short-lived SPI context already inside that
loop; but you could save CurrentMemoryContext before starting up
SPI and then use MemoryContextStrdup.

regards, tom lane

В списке pgsql-general по дате отправления:

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: SQL pretty pritner?
Следующее
От: Joe Conway
Дата:
Сообщение: Re: I think that my data is saved correctly, but when printing again,other data appears