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.
REL7_0_PATCHES
Tom Lane 27 years ago
parent f1de4f9532
commit 85712da90d
  1. 28
      src/backend/parser/scan.l

@ -8,7 +8,7 @@
*
*
* 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
input()
{
if (parseCh == NULL)
{
parseCh = parseString;
return(*parseCh++);
}
else if (*parseCh == '\0')
if (*parseCh == '\0')
return(0);
else
return(*parseCh++);
@ -520,20 +517,17 @@ myinput(char* buf, int max)
int len, copylen;
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;
return copylen;
}
len = strlen(parseCh); /* remaining data available */
if (len >= max)
copylen = max - 1;
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 */

Loading…
Cancel
Save