Tony Papadimitriou wrote:
> I really don't know what the standard says, but here are two different
> opinions in implementation.
>
> MySQL example:
You know that the "SQL" in "MySQL" is actually the abbreviation of
"something quite loose"? ;-)
Anyway, it appears even MySQL conforms to SQL-92
On 12/14/17, 12:08 PM, "sqlite-users on behalf of Simon Slavin"
wrote:
> Just to remind you that if something is not documented it can change. The
> next version of SQLite might decide that 1 / 2 is 0. So don’t
On 12/14/17, Tony Papadimitriou wrote:
>
> MySQL example:
> mysql> select 1/2;
> ++
> | 1/2|
> ++
> | 0.5000 |
> ++
> 1 row in set (0.13 sec)
MySQL is the only database engine that behaves this way. All others
do integer arithmetic on integer values.
On 14 Dec 2017, at 5:03pm, Tony Papadimitriou wrote:
> SQLite3 (https://sqlite.org/datatype3.html) -- "Otherwise, an expression has
> no affinity. "
> It seems that 'no affinity' gets translated to integer affinity, then.
Just to remind you that if something is not documented
-Original Message-
From: J. King
Someone please correct me if I'm wrong, but I believe it's mandated by the
SQL standard that integer division is used when both operands are integers.
I really don't know what the standard says, but here are two different
opinions in implementation.
Someone please correct me if I'm wrong, but I believe it's mandated by the SQL
standard that integer division is used when both operands are integers.
Your synthetic example doesn't use a fixed table, but if it did the easiest
solution for you would probably be to define any columns where you
[mailto:sqlite-users-boun...@mailinglists.sqlite.org] On
Behalf Of Tony Papadimitriou
Sent: Thursday, December 14, 2017 11:36 AM
To: sqlite-users@mailinglists.sqlite.org
Subject: [sqlite] Is this a bug with expression evaluation?
I’ve noticed this (very annoying) behavior:
select column1*(24/100
I’ve noticed this (very annoying) behavior:
select column1*(24/100) wrong from (values(100));
Removing the parentheses yields the correct result:
select column1*24/100 correct from (values(100));
This obviously behaves like integer math is used and (24/100) gets truncated to
zero.
If I add a
8 matches
Mail list logo