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,