Ya corregi el procedimiento y no ya no existe el problema anterior. quedo asi:
    
Código SQL:
Ver original- CREATE OR REPLACE FUNCTION p_update_locales_in_count() RETURNS BOOLEAN AS $BODY$ 
- DECLARE  
-     query_count         RECORD; 
-     query_has_locales   RECORD; 
- BEGIN 
-     FOR query_count IN SELECT neighborhood_code,city_code FROM  conteo_manzanas_barrio_co LOOP 
-      
-         FOR query_has_locales IN SELECT has_locales FROM sm_city WHERE pk_city = query_count.city_code LOOP 
-          
-             IF query_has_locales.has_locales THEN 
-                 SELECT  pk_locale,name FROM sm_locale WHERE fk_pk_city = query_count.city_code; 
-                  
-                 UPDATE  conteo_manzanas_barrio_co  
-                 SET     locale_code = pk_locale, locale_name = name  
-                 WHERE   neighborhood_code = query_count.neighborhood_code; 
-             END IF;  
-          
-         END LOOP; 
-          
-     END LOOP; 
-   
-     RETURNS TRUE;    
- END $BODY$ 
- LANGUAGE plpgsql; 
AHORA LO QUE NO ES COMO LLAMARLO PUES LO ESTOY LLAMANDO ASI: 
SELECT * FROM p_update_locales_in_count() 
Y ME ARroja este error:    
Código ERROR:
Ver original- Error de SQL:
 
-   
- ERROR:  SELECT query has no destination for result data
 
- HINT:  If you want to discard the results, use PERFORM instead.
 
- CONTEXT:  PL/pgSQL function "p_update_locales_in_count" line 10 at SQL statement
 
-   
- En la declaración:
 
- SELECT * FROM p_update_locales_in_count() 
como debo llamarlo o que debo cambiarle?