Hi, I found the last commit changed as:
``` /* skip invalid characters */ do { (*scan_length)++; - } while (**scan_length != ' ' && **scan_length != '\0' && isdigit(**scan_length)); + } while (isdigit(**scan_length)); return false; } ``` It will still return false if we got non-digital characters after ".", then it will error out "invalid input syntax for type int" for "a" . (if input is "7.a") Although this error message is not wrong, I think it should be better to give error message as "invalid input syntax for type int" for "7.a". This could be done by delete "return false;" after "while(...)", let the following if to decide which to return. 2017-11-02 15:25 GMT+08:00 Michael Meskes <mes...@postgresql.org>: > > I am afraid the changes may separate "7.a" to "7" and "a", then error > > out > > with "invalid input syntax for type int" for "a". > > Which is correct, is it not? > > > How about changes as below? (use following the if to decide true or > > false) > > ... > > return false; > > + } while (isdigit(**scan_length)); > > Yes, this is certainly correct and better than what I committed. What > was I thinking yesterday? > > I think the same function is used for identifying garbage in floats > which might ask for different logic. Let me check. > > Michael > -- > Michael Meskes > Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org) > Meskes at (Debian|Postgresql) dot Org > Jabber: michael at xmpp dot meskes dot org > VfL Borussia! Força Barça! SF 49ers! Use Debian GNU/Linux, PostgreSQL > -- GaoZengqi pgf...@gmail.com zengqi...@gmail.com