Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit43f4b34

Browse files
committed
Fix reading of most-negative integer value nodes
The main parser checks whether a literal fits into an int whendeciding whether it should be put into an Integer or Float node. Theparser processes integer literals without signs. So a most-negativeinteger literal will not fit into Integer and will end up as a Floatnode.The node tokenizer did this differently. It included the sign whenchecking whether the literal fit into int. So a most-negative integerwould indeed fit that way and end up as an Integer node.In order to preserve the node structure correctly, we need the nodetokenizer to also analyze integer literals without sign.There are a number of test cases in the regression tests that have amost-negative integer argument of some utility statement, so thisissue is easily reproduced under WRITE_READ_PARSE_PLAN_TREES.Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>Discussion:https://www.postgresql.org/message-id/flat/4159834.1657405226@sss.pgh.pa.us
1 parent03bf971 commit43f4b34

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

‎src/backend/nodes/read.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ nodeTokenType(const char *token, int length)
267267
char*endptr;
268268

269269
errno=0;
270-
(void)strtoint(token,&endptr,10);
270+
(void)strtoint(numptr,&endptr,10);
271271
if (endptr!=token+length||errno==ERANGE)
272272
returnT_Float;
273273
returnT_Integer;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp