diff options
Diffstat (limited to 'src/backend/nodes/read.c')
-rw-r--r-- | src/backend/nodes/read.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/backend/nodes/read.c b/src/backend/nodes/read.c index a3b314386ba..34b8cfb27e3 100644 --- a/src/backend/nodes/read.c +++ b/src/backend/nodes/read.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/read.c,v 1.8 1998/01/07 08:07:58 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/read.c,v 1.9 1998/01/07 15:32:31 momjian Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -94,9 +94,8 @@ nodeTokenType(char *token, int length) retval = (*token != '.') ? T_Integer : T_Float; } - /* make "" == NULL, not T_String. Is this a problem? 1998/1/7 bjm */ else if (isalpha(*token) || *token == '_' || - (token[0] == '\"' && token[1] == '\"')) + (token[0] == '<' && token[1] == '>')) retval = ATOM_TOKEN; else if (*token == '(') retval = LEFT_PAREN; @@ -145,16 +144,19 @@ lsptok(char *string, int *length) return (NULL); *length = 1; - if (*local_str == '\"') + if (*local_str == '"') { - for (local_str++; *local_str != '\"'; (*length)++, local_str++) + for (local_str++; *local_str != '"'; (*length)++, local_str++) ; - if (*length == 1) - *length = 0; /* if "", return zero length */ - else - (*length)++; + (*length)++; local_str++; } + /* NULL */ + else if (local_str[0] == '<' && local_str[1] == '>' ) + { + *length = 0; + local_str += 2; + } else if (*local_str == ')' || *local_str == '(' || *local_str == '}' || *local_str == '{') { @@ -231,7 +233,7 @@ nodeRead(bool read_car_only) case AT_SYMBOL: break; case ATOM_TOKEN: - if (!strncmp(token, "\"\"", 2)) + if (!strncmp(token, "<>", 2)) { this_value = NULL; |