提交 abdb1dbb authored 作者: Thomas Mueller's avatar Thomas Mueller

The expression trunc(number) threw a NullPointerException.

上级 b924fc10
...@@ -26,6 +26,7 @@ Change Log ...@@ -26,6 +26,7 @@ Change Log
is no longer supported. This is to simplify the MVTableEngine. is no longer supported. This is to simplify the MVTableEngine.
</li><li>New column "information_schema.tables.row_count_estimate". </li><li>New column "information_schema.tables.row_count_estimate".
</li><li>Issue 468: trunc(timestamp) could return the wrong value (+12 hours), and trunc(number) throw a NullPointerException. </li><li>Issue 468: trunc(timestamp) could return the wrong value (+12 hours), and trunc(number) throw a NullPointerException.
</li><li>The expression trunc(number) threw a NullPointerException.
</li><li>Fixed a deadlock when updating LOB's concurrently. See TestLob.testDeadlock2(). </li><li>Fixed a deadlock when updating LOB's concurrently. See TestLob.testDeadlock2().
</li><li>Fixed a deadlock related to very large temporary result sets. </li><li>Fixed a deadlock related to very large temporary result sets.
</li><li>Add "-list" command line option to Shell tool so that result-list-mode can be triggered when reading from a file. </li><li>Add "-list" command line option to Shell tool so that result-list-mode can be triggered when reading from a file.
......
...@@ -1040,7 +1040,7 @@ public class Function extends Expression implements FunctionCall { ...@@ -1040,7 +1040,7 @@ public class Function extends Expression implements FunctionCall {
result = ValueTimestamp.get(new java.sql.Timestamp(c.getTimeInMillis())); result = ValueTimestamp.get(new java.sql.Timestamp(c.getTimeInMillis()));
} else { } else {
double d = v0.getDouble(); double d = v0.getDouble();
int p = v1.getInt(); int p = v1 == null ? 0 : v1.getInt();
double f = Math.pow(10., p); double f = Math.pow(10., p);
double g = d * f; double g = d * f;
result = ValueDouble.get(((d < 0) ? Math.ceil(g) : Math.floor(g)) / f); result = ValueDouble.get(((d < 0) ? Math.ceil(g) : Math.floor(g)) / f);
......
select trunc(1.3);
> 1.0;
select trunc(timestamp '2001-01-01 14:00:00.0'); select trunc(timestamp '2001-01-01 14:00:00.0');
> 2001-01-01 00:00:00.0; > 2001-01-01 00:00:00.0;
select 1 from(select 2 from(select 1) a right join dual b) c; select 1 from(select 2 from(select 1) a right join dual b) c;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论