Cita: ERROR: no existe la columna «tipocomponente» en la relación «tipocomponente» at character 27
Si creas la función logueado en la base de datos, no es necesario anteceder el nombre de la base de datos en el llamado a las tablas ni campos. Ademas, cuando llamas a precio (supongo que es una columna) lo llamas como bd.campo... a que tabla pertenecería precios?? debería ser bd.tabla.campo... pero como te digo, esto no es necesario si estas conectado a la base de datos al momento de ejecutar la función.
Prueba y nos cuentas.
Un saludo.