Skip site navigation (1) Skip section navigation (2)

Token separation

From: Tim Landscheidt <tim(at)tim-landscheidt(dot)de>
To: pgsql-sql(at)postgresql(dot)org
Subject: Token separation
Date: 2012-01-15 08:02:27
Message-ID: m3ipkd1jho.fsf@passepartout.tim-landscheidt.de (view raw or flat)
Thread:
Lists: pgsql-sql
Hi,

I just tried to input a hexadecimal number in PostgreSQL
(8.4) and was rather surprised by the result:

| tim=# SELECT 0x13;
|  x13
| -----
|    0
| (1 Zeile)

| tim=# SELECT 0abc;
|  abc
| -----
|    0
| (1 Zeile)

| tim=#

The documentation says:

| A token can be a key word, an identifier, a quoted identifi-
| er, a literal (or constant), or a special character symbol.
| Tokens are normally separated by whitespace (space, tab,
| newline), but need not be if there is no ambiguity (which is
| generally only the case if a special character is adjacent
| to some other token type).

Is this behaviour really conforming to the standard?  Even
stranger is what MySQL (5.1.59) makes out of it:

| mysql> SELECT 0x40;
| +------+
| | 0x40 |
| +------+
| | @    |
| +------+
| 1 row in set (0.00 sec)

| mysql> SELECT 0abc;
| ERROR 1054 (42S22): Unknown column '0abc' in 'field list'
| mysql>

Tim


Responses

pgsql-sql by date

Next:From: Tom LaneDate: 2012-01-15 17:15:58
Subject: Re: Token separation
Previous:From: Alok ThakurDate: 2012-01-14 09:18:17
Subject: sql query problem

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group