Error al ejecutar función postgresql que utiliza DBLINK usando toba

Hola,

Tengo que ejecutar (desde toba) una función postgresql que utiliza la extensión dblink de postgresql.
La función anda ok si la ejecuto desde pgadmin o desde php por fuera de toba (con un pg_query), al ejecutarla desde toba devuelve un error indicando que no encuentra la extensión dblink.

Por las dudás activé la extensión dblink en la base toba y en las dos bases que intervienen en la función pero el problema persiste.

La ejecución de las consultas sobre toba se realiza de alguna manera en particular que pueda estar generando que no se encuentre la extensión dblink?

Adjunto una versión resumida de la función (porque la función original es muy larga y no tiene sentido copiarla entera):



CREATE OR REPLACE FUNCTION calchaqui.actualizar_querandi(connstring text)
  RETURNS integer AS
$BODY$
DECLARE passed integer;
DECLARE query text;

BEGIN
	CREATE EXTENSION IF NOT EXISTS dblink;
	
	DELETE FROM querandi.inf_inmuebles;
	
	INSERT INTO querandi.inf_inmuebles
                    SELECT inm.*
                        FROM dblink($1,
                        'SELECT * FROM querandi.inf_inmuebles') AS inm(
                        cod_inf_inmueble integer,
			cod_institucion integer,
                        descripcion varchar(255),
                        calle_nombre_numero varchar(255),
                        localidad integer,
                        cod_situacion_dominio integer,
			cod_inf_ubicacion integer,
			valuacion_tecnica_contable numeric(12,0),
                        unidad_economica character(10),
			superficie_terreno numeric(10,0),
			unidad_superficie_terreno character(1),
			superficie_construida numeric(10,0),
			unidad_superficie_construida character(1),
			superficie_no_construida numeric(10,0),
			unidad_superficie_no_construida character(1),
			fot_normativo numeric(3,2),
			fot_real numeric(3,2),
			fos_normativo numeric(3,2),
			fos_real numeric(3,2),
			fecha_alta date,
			fecha_ultima_modificacion date,
			otra_situacion_dominio varchar(255),
			observaciones text,
			nombre_archivo character varying,
			archivo bytea,
			anio integer
                    );

        passed = 1;
	
        RETURN passed;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION calchaqui.actualizar_querandi(text)
  OWNER TO postgres;

Saludos
Leo

Hola Leo,

el tema es que Toba no utiliza pg_query… sino PDO y lamentablemente no encontre un solo ejemplo en la web donde junten dblink con PDO.

Tampoco encontre un lugar donde explicitamente se diga que no funciona, inclusive no hay ningun bug reportado en php.net al respecto… pero si no esta funcionando es probable que tenga que ver con eso.

No se como desgloza internamente la SQL PDO… pero pareciera ser que algo hace, porque si le pasara la misma directamente a la libreria no deberias tener este inconveniente.

Saludos

Richard, muchas gracias por la respuesta.