parseboot.patch

text/plain

Filename: parseboot.patch
Type: text/plain
Part: 0
Message: remove floats from bootstrap scanner/parser

Patch

Format: unified
File+
src/backend/bootstrap/bootparse.y 2 8
src/backend/bootstrap/bootscanner.l 0 8
diff --git a/src/backend/bootstrap/bootparse.y b/src/backend/bootstrap/bootparse.y
index d28af23..33d9f0b 100644
--- a/src/backend/bootstrap/bootparse.y
+++ b/src/backend/bootstrap/bootparse.y
@@ -105,11 +105,11 @@ static int num_columns_read = 0;
 
 %type <list>  boot_index_params
 %type <ielem> boot_index_param
-%type <str>   boot_const boot_ident
+%type <str>   boot_ident
 %type <ival>  optbootstrap optsharedrelation optwithoutoids boot_column_nullness
 %type <oidval> oidspec optoideq optrowtypeoid
 
-%token <str> CONST_P ID
+%token <str> ID
 %token OPEN XCLOSE XCREATE INSERT_TUPLE
 %token XDECLARE INDEX ON USING XBUILD INDICES UNIQUE XTOAST
 %token COMMA EQUALS LPAREN RPAREN
@@ -464,16 +464,10 @@ boot_column_val_list:
 boot_column_val:
 		  boot_ident
 			{ InsertOneValue($1, num_columns_read++); }
-		| boot_const
-			{ InsertOneValue($1, num_columns_read++); }
 		| NULLVAL
 			{ InsertOneNull(num_columns_read++); }
 		;
 
-boot_const :
-		  CONST_P { $$ = yylval.str; }
-		;
-
 boot_ident :
 		  ID	{ $$ = yylval.str; }
 		;
diff --git a/src/backend/bootstrap/bootscanner.l b/src/backend/bootstrap/bootscanner.l
index 9cfd19c..6467882 100644
--- a/src/backend/bootstrap/bootscanner.l
+++ b/src/backend/bootstrap/bootscanner.l
@@ -66,7 +66,6 @@ static int	yyline = 1;			/* line number for error reporting */
 
 D		[0-9]
 oct		\\{D}{D}{D}
-Exp		[Ee][-+]?{D}+
 id		([A-Za-z0-9_]|{oct}|\-)+
 sid		\"([^\"])*\"
 arrayid [A-Za-z0-9_]+\[{D}*\]
@@ -127,13 +126,6 @@ insert			{ return(INSERT_TUPLE); }
 					return(ID);
 				}
 
-(-)?{D}+"."{D}*({Exp})? |
-(-)?{D}*"."{D}+({Exp})? |
-(-)?{D}+{Exp}			{
-							yylval.str = pstrdup(yytext);
-							return(CONST_P);
-						}
-
 .				{
 					elog(ERROR, "syntax error at line %d: unexpected character \"%s\"", yyline, yytext);
 				}