Mmm bueno, en realidad, el error que pasó fue el de get_distinct. En esa función fue que le puse el SPI_push y SPI_pop, y ya realiza el SPI_execute. Pero sigue dándome el mismo error SPI_ERROR_CONNECT en la función get_columnnames. En dicha función, si se pone el SPI_push y SPI_pop (probé nomás de onda), se pierde la conexión con el servidor, supongo que por un desborde de la pila. Alguna idea de porqué sigue apareciendo SPI_ERROR_CONNECT en la función get_columnnames? Saludos cordiales, Yessica
El mié., 18 sept. 2019 a las 4:21, Yessica Brinkmann (< yessica.brinkm...@gmail.com>) escribió: > Muchísimas gracias! Ya pasó el error del SPI_connect(). > Ya retorna SPI_OK_CONNECT con el SPI_push y SPI_pop. > Saludos cordiales, > Yessica > > El mar., 17 sept. 2019 a las 22:52, Yessica Brinkmann (< > yessica.brinkm...@gmail.com>) escribió: > >> Muchísimas gracias! Probaré lo de SPI_push y SPI_pop. Mil gracias por >> tomarte el tiempo de leer mi código y aún indentarlo. >> Saludos cordiales, >> Yessica >> >> El mar., 17 sept. 2019 22:10, Alvaro Herrera <alvhe...@2ndquadrant.com> >> escribió: >> >>> Yessica Brinkmann escribió: >>> > Buenos días, >>> > Quisiera hacer una consulta al grupo por favor. >>> > Alguien ha usado SPI_connect() para conectarse a Postgresql desde un >>> > programa? >>> > Saben por si acaso en qué casos da error? >>> >>> Hmm, si estás invocando tu función desde otra función que ya hace >>> SPI_connect, entonces tienes que hacer SPI_push antes de invocar el >>> SPI_connect, y un SPI_pop después del SPI_finish. Así creas un nuevo >>> "contexto" para que SPI pueda procesar limpiamente tu consulta. Me >>> parece que el ejemplo claro es que get_distinct está llamando a >>> get_columnnames sin un SPI_push. >>> >>> Consejo aparte: no necesitas el snprintf con strlen etc; eso es lo que >>> appendStringInfo() puede hacer por ti en forma más sencilla. >>> >>> (Para mostrar código fuente recomiendo ponerlo en un archivo adjunto en >>> vez de copiar/pegar al mail, porque el programa de mail lo va a >>> reformatear y queda ilegible. Para poder leer tu código tuve que >>> pasarlo por pgindent ... va de vuelta como archivo adjunto.) >>> >>> Saludos >>> >>> -- >>> Álvaro Herrera https://www.2ndQuadrant.com/ >>> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services >>> >>