提交 ddc2c0e9 authored 作者: thomasmueller's avatar thomasmueller

Merge branch 'master' of https://github.com/h2database/h2database

...@@ -23,6 +23,10 @@ Change Log ...@@ -23,6 +23,10 @@ Change Log
<ul> <ul>
<li>Issue #654: List ENUM type values in INFORMATION_SCHEMA.COLUMNS <li>Issue #654: List ENUM type values in INFORMATION_SCHEMA.COLUMNS
</li> </li>
<li>Issue #650: Simple nested SELECT causes error for table with TIMESTAMP WITH TIMEZONE column
</li>
<li>Issue #654: List ENUM type values in INFORMATION_SCHEMA.COLUMNS
</li>
<li>Issue #668: Fail of an update command on large table with ENUM column <li>Issue #668: Fail of an update command on large table with ENUM column
</li> </li>
<li>Issue #662: column called CONSTRAINT is not properly escaped when storing to metadata <li>Issue #662: column called CONSTRAINT is not properly escaped when storing to metadata
......
...@@ -162,6 +162,7 @@ import org.h2.value.ValueNull; ...@@ -162,6 +162,7 @@ import org.h2.value.ValueNull;
import org.h2.value.ValueString; import org.h2.value.ValueString;
import org.h2.value.ValueTime; import org.h2.value.ValueTime;
import org.h2.value.ValueTimestamp; import org.h2.value.ValueTimestamp;
import org.h2.value.ValueTimestampTimeZone;
/** /**
* The parser is used to convert a SQL statement string to an command object. * The parser is used to convert a SQL statement string to an command object.
...@@ -3128,6 +3129,17 @@ public class Parser { ...@@ -3128,6 +3129,17 @@ public class Parser {
read("FOR"); read("FOR");
Sequence sequence = readSequence(); Sequence sequence = readSequence();
r = new SequenceValue(sequence); r = new SequenceValue(sequence);
} else if (equalsToken("TIMESTAMP", name) && readIf("WITH")) {
read("TIME");
read("ZONE");
if (currentTokenType != VALUE
|| currentValue.getType() != Value.STRING) {
throw getSyntaxError();
}
String timestamp = currentValue.getString();
read();
r = ValueExpression
.get(ValueTimestampTimeZone.parse(timestamp));
} else if (currentTokenType == VALUE && } else if (currentTokenType == VALUE &&
currentValue.getType() == Value.STRING) { currentValue.getType() == Value.STRING) {
if (equalsToken("DATE", name) || if (equalsToken("DATE", name) ||
......
...@@ -9,7 +9,6 @@ import java.util.ArrayList; ...@@ -9,7 +9,6 @@ import java.util.ArrayList;
import org.h2.api.ErrorCode; import org.h2.api.ErrorCode;
import org.h2.command.CommandInterface; import org.h2.command.CommandInterface;
import org.h2.command.dml.Query; import org.h2.command.dml.Query;
import org.h2.engine.Constants;
import org.h2.engine.Database; import org.h2.engine.Database;
import org.h2.engine.Session; import org.h2.engine.Session;
import org.h2.expression.Parameter; import org.h2.expression.Parameter;
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
*/ */
package org.h2.mvstore.db; package org.h2.mvstore.db;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
......
...@@ -343,6 +343,7 @@ public abstract class Table extends SchemaObjectBase { ...@@ -343,6 +343,7 @@ public abstract class Table extends SchemaObjectBase {
return null; return null;
} }
@Override
public String getCreateSQLForCopy(Table table, String quotedName) { public String getCreateSQLForCopy(Table table, String quotedName) {
throw DbException.throwInternalError(toString()); throw DbException.throwInternalError(toString());
} }
......
...@@ -2,3 +2,15 @@ ...@@ -2,3 +2,15 @@
-- and the EPL 1.0 (http://h2database.com/html/license.html). -- and the EPL 1.0 (http://h2database.com/html/license.html).
-- Initial Developer: H2 Group -- Initial Developer: H2 Group
-- --
CREATE TABLE tab_with_timezone(x TIMESTAMP WITH TIME ZONE);
> ok
INSERT INTO tab_with_timezone(x) VALUES ('2017-01-01');
> update count: 1
SELECT "Query".* FROM (select * from tab_with_timezone where x > '2016-01-01') AS "Query";
> X
> ------------------------
> 2017-01-01 00:00:00.0+00
...@@ -9,7 +9,6 @@ import java.sql.PreparedStatement; ...@@ -9,7 +9,6 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Statement; import java.sql.Statement;
import org.h2.test.utils.SelfDestructor; import org.h2.test.utils.SelfDestructor;
/** /**
...@@ -38,6 +37,7 @@ public class TestHaltApp extends TestHalt { ...@@ -38,6 +37,7 @@ public class TestHaltApp extends TestHalt {
} }
} }
@Override
protected void execute(Statement stat, String sql) throws SQLException { protected void execute(Statement stat, String sql) throws SQLException {
traceOperation("execute: " + sql); traceOperation("execute: " + sql);
super.execute(stat, sql); super.execute(stat, sql);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论