> sh> psql
> psql (9.3.2)
> Type "help" for help.
> # CREATE EXTENTION isn;
> # SELECT ISMN 'M123456782';
> M-1234-5678-5
> # SELECT ISMN 'M123456785';
> ERROR: invalid check digit for ISMN number: "M123456785", should be 2
> LINE 1: SELECT ISMN 'M123456785';
With the attached one liner patch compiled with pgxs:
# SELECT ISMN 'M123456785'; M-1234-5678-5
I'm not sure whether the policy is to update the version number of the
extension for such a change. As the library is always "isn.so", two
versions cannot live in parallel anyway. If it is useful, the second patch
attached also upgrade the version number.
Also, I notice that there is no test for this module, so I do not know
whether I've broken anything, or whether there are other simular bugs.
ISTM that it is not the case because I could test other types.
Because of the complexity of the code (there are embedded automata with
plenty of gotos and pointer arithmetic), I find this astoundingly unwise.
If the code was cleaner/simpler, it would just find it very unwise:-) Thus
I would suggest to add to some todo list: "check that all extensions have
regression tests, and add some if not."
--
Fabien.