Re: [HACKERS] Try to fix endless loop in ecpg with informix mode - Mailing list pgsql-hackers

From 高增琦
Subject Re: [HACKERS] Try to fix endless loop in ecpg with informix mode
Date
Msg-id CAFmBtr07GAjS_TSiLhampZghz92vCEgWsjGG+3WuSS=kiB+sdQ@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] Try to fix endless loop in ecpg with informix mode  (Michael Meskes <meskes@postgresql.org>)
Responses Re: [HACKERS] Try to fix endless loop in ecpg with informix mode  (Michael Meskes <meskes@postgresql.org>)
List pgsql-hackers
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 <meskes@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



--

pgsql-hackers by date:

Previous
From: Craig Ringer
Date:
Subject: Re: [HACKERS] ArrayLists instead of List (for some things)
Next
From: Satyanarayana Narlapuram
Date:
Subject: Re: [HACKERS] Client Connection redirection support for PostgreSQL