-------- Mensaje original --------
Me asalta una pregunta sobre 2 procedimientos almacenados en postgresql que comparten el mismo nombre
"existe_producto", sin embargo los argumentos que requieren son distintos (uno es
bigint y el otro es
character varying).
Por lo visto el del
bigint encuntra el producto que coincida con el
barcode indicado (de obtener resultado da true) y
el del
character varying encuentra el producto que coincida con el
codigo_corto que se le indica (de obtener resultado da true).
Por lo que averigüé esas funciones fueron creadas en funciones.sql en el directorio /db por Jonathan Gonzales el 2007-10-16 originalmente con los nombres:
existe_producto_por_codigo (actual linea 203) y
existe_producto_por_nombre (actual linea 224) respectivamente.
[
Commit f59aca2bacfbc459ea60b9caaf307b30ac410282]
y modificado por Felipe Reyes el 2007-11- 17 dejandolos con el nombre
existe_producto.
[
Commit 1bd2dd941c77ffbc49eba69e2f2c642a869a647a]
Por mi inexperiencia en postgresql no se como postgres puede diferenciar entre las 2 funciones a la hora de buscar un producto (es algo así como la sobrecarga de la POO?).
El saber como es que trabajan estos procedimientos es de vital importancia, puesto que con Jaime queremos que
el código corto sea alfanumérico (alphanumeric, varchar, char o lo que sea) por la potencia que esto ofrece en la usabilidad.
Por mi parte he hecho pruebas con códigos cortos con caracteres y topo en las funciones ya mensionadas,
recibiendo este mensaje:
ERROR: error de sintaxis en o cerca de «a»
LÍNEA 1: SELECT existe_producto(1a);
^
********** Error **********
ERROR: error de sintaxis en o cerca de «a»
SQL state: 42601
Character: 25
Espero puedan ayudarme,
y si me responden, de paso cambio todos los label_* por lbl_* =P...
Saludos!