Buenas tardes, Realmente no me funciona. Me vuelve a dar el mismo error, Spi_error_connect en ambas funciones. Si bien, ahora ya no se llaman más de una función a la otra. Tanto get_ndistinct como get_columnnames ya son independientes, como se ve en el archivo funciones_modif.c. Y también ya probé el PG_TRY();, PG_CATCH(); y PG_END_TRY(); para hacerlo igual a la llamada del save_advice( List* candidates ) desde la función manejadora. Por si eso haya causado algún problema. Agradeceré mucho una ayuda por favor. Saludos cordiales, Yessica
El mié., 18 sept. 2019 a las 13:53, Yessica Brinkmann (< yessica.brinkm...@gmail.com>) escribió: > Así quedarían las funciones, como en el archivo adjunto, en caso de > hacerlas por separado...para que no se llame a las funciones una desde la > otra. > Sin embargo, ahora me di cuenta también de que save_advice( List* > candidates ) al ser llamada en la función principal manejadora, > usa PG_TRY();, PG_CATCH(); y PG_END_TRY(); para manejar errores, talvez > esa parte me hace falta a mí también para que las funciones get_ndistinctic > y get_columnnames puedan tener cada una su manejo de error. Porque yo > estaba llamándolas directamente, como se puede ver en el código fuente > adjunto. > Voy a estar probando de esta manera también para ver si es por esto que me > está dando el Spi_error_connect. > Muchas gracias y saludos, > Yessica > > El mié., 18 sept. 2019 a las 12:17, Yessica Brinkmann (< > yessica.brinkm...@gmail.com>) escribió: > >> Ya probé también sacar la llamada a get_columnnames de la función >> get_ndistintic y hacer ambas llamadas a funciones por separado, para que no >> se llame a una de las funciones desde la otra. Y le saqué el SPI_push y >> SPI_pop. Pero en ese caso igual obtengo el error Spi_error_connect en ambas >> funciones. Estaba pensando también en modificar el código de tal manera que >> se hagan ambos Selects en una misma conexión, pero creo que igual me daría >> el error este de Spi_error_connect, ya que al hacer llamadas a funciones >> por separado, igual aparece. >> Saludos cordiales, >> Yessica >> >> El mié., 18 sept. 2019 6:50, Yessica Brinkmann < >> yessica.brinkm...@gmail.com> escribió: >> >>> Muchas gracias por la respuesta! >>> El log ya lo encontré. Estaba en /home/postgres >>> Y ahora mismo, el error del SPI_connect me está dando en la segunda >>> función. Antes me daba error en las dos funciones. Pero después de que el >>> sr. Álvaro Herrera me recomendó usar SPI_push y SPI_pop ya pasa al >>> SPI_execute en la primera función. >>> Saludos cordiales, >>> Yessica >>> >>> >>> El mié., 18 sept. 2019 6:31, Francisco Olarte <fola...@peoplecall.com> >>> escribió: >>> >>>> Yessica: >>>> >>>> On Tue, Sep 17, 2019 at 9:20 PM Yessica Brinkmann >>>> <yessica.brinkm...@gmail.com> wrote: >>>> > Estuve haciendo algunas verificaciones y lastimosamente pude darme >>>> cuenta de que luego de ejecutar el Index Adviser básicamente no me aparece >>>> nada en el directorio /var/log/postgresql, es decir dicho directorio >>>> aparece vacío, sin ningún archivo. Realmente veo que dicho directorio >>>> existe, sin embargo luego de levantar el servidor Postgresql y ejecutar el >>>> Index Adviser me aparece vacío, no hay allí ningún archivo de log. No sé a >>>> qué se deberá esto realmente. Como les comentaba, no soy buena usando >>>> Linux, pero me veo obligada a usarlo. >>>> >>>> Esto no es problema de Linux, el mismo problema lo tendrias en windows >>>> o cualquier otro sistema. Si NO hay log al levantar el servidor en un >>>> directorio es que o tienes programado el servidor para no usar log o >>>> no lo manda a ese directorio. Mira la configuracion que estas usando. >>>> >>>> Es IMPOSIBLE que te podamos decir como dado que no sabemos que haces >>>> para "levantar el servidor de Postgresql" o "ejecutar el Index >>>> Adviser". Ni sabemos como lo has instalado, ni nada por el estilo. Ahi >>>> da igual que seas Linux, BSD, Windows o CP/M, poco te van a poder >>>> decir. Postgres es un sistema complejo, y lo ejecutes en SO >>>> sencillitos como Linus o complicados como Windows hay muchas formas de >>>> hacerlo, sin saber un minimo no se te puede orientar mucho. >>>> >>>> .... >>>> >>>> > Finalmente, copio el código fuente de la función que contiene el >>>> Insert que funciona con el SPI_connect(), y a continuación, las dos >>>> funciones que yo estoy intentando escribir, que tienen Selects, y con las >>>> cuales obtengo el SPI_ERROR_CONNECT. >>>> >>>> Tras copiarlas, reindentarlas y mirarlas un poco veo una diferencia >>>> clara, la primera funcion hace un connect-finish, la segunda tiene eso >>>> en un bucle. El error de spi_connect te da en la primera ejecucion o >>>> en la segunda? ( lo digo porque he mirado la doc y no dice nada de si >>>> se puede hacer c-f-c-f... o solo c-f ). >>>> >>>> Francisco Olarte. >>>> >>>