Commit 85712da9 authored by Tom Lane's avatar Tom Lane

Mike Ansley's fixes for long queries. This change just

corrects flex myinput() routine so that it doesn't assume there is only
one bufferload of data.  We still have the issue of getting rid of
YY_USES_REJECT so that the scanner can cope with tokens larger than its
initial buffer size.
parent f1de4f95
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.52 1999/07/17 20:17:26 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.53 1999/09/07 00:13:27 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -491,11 +491,8 @@ int ...@@ -491,11 +491,8 @@ int
input() input()
{ {
if (parseCh == NULL) if (parseCh == NULL)
{
parseCh = parseString; parseCh = parseString;
return(*parseCh++); if (*parseCh == '\0')
}
else if (*parseCh == '\0')
return(0); return(0);
else else
return(*parseCh++); return(*parseCh++);
...@@ -520,20 +517,17 @@ myinput(char* buf, int max) ...@@ -520,20 +517,17 @@ myinput(char* buf, int max)
int len, copylen; int len, copylen;
if (parseCh == NULL) if (parseCh == NULL)
{
len = strlen(parseString);
if (len >= max)
copylen = max - 1;
else
copylen = len;
if (copylen > 0)
memcpy(buf, parseString, copylen);
buf[copylen] = '\0';
parseCh = parseString; parseCh = parseString;
return copylen; len = strlen(parseCh); /* remaining data available */
} if (len >= max)
copylen = max - 1;
else else
return 0; /* end of string */ copylen = len;
if (copylen > 0)
memcpy(buf, parseCh, copylen);
buf[copylen] = '\0';
parseCh += copylen;
return copylen;
} }
#endif /* FLEX_SCANNER */ #endif /* FLEX_SCANNER */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment