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

The SQL state of the following exceptions has been changed: From 90009, 90010,…

The SQL state of the following exceptions has been changed: From 90009, 90010, 90011 to 22007: "Cannot parse DATE/TIME/TIMESTAMP constant ...".
上级 f5bb771c
...@@ -18,7 +18,9 @@ Change Log ...@@ -18,7 +18,9 @@ Change Log
<h1>Change Log</h1> <h1>Change Log</h1>
<h2>Next Version (unreleased)</h2> <h2>Next Version (unreleased)</h2>
<ul><li>There is a problem when opening a database file in a timezone that has different <ul><li>The SQL state of the following exceptions has been changed:
From 90009, 90010, 90011 to 22007: "Cannot parse DATE/TIME/TIMESTAMP constant ...".
</li><li>There is a problem when opening a database file in a timezone that has different
daylight saving rules: the time part of dates where the daylight saving doesn't match daylight saving rules: the time part of dates where the daylight saving doesn't match
will differ. This is not a problem within regions that use the same rules (such as, within will differ. This is not a problem within regions that use the same rules (such as, within
USA, or within Europe), even if the timezone itself is different. As a workaround, export the USA, or within Europe), even if the timezone itself is different. As a workaround, export the
......
...@@ -462,34 +462,16 @@ public class ErrorCode { ...@@ -462,34 +462,16 @@ public class ErrorCode {
public static final int INVALID_VALUE_2 = 90008; public static final int INVALID_VALUE_2 = 90008;
/** /**
* The error with code <code>90009</code> is thrown when * The error with code <code>22007</code> is thrown when
* a text can not be converted to a date constant. * a text can not be converted to a date, time, or timestamp constant.
* Example: * Examples:
* <pre> * <pre>
* CALL DATE '2007-January-01'; * CALL DATE '2007-January-01';
* </pre>
*/
public static final int DATE_CONSTANT_2 = 90009;
/**
* The error with code <code>90010</code> is thrown when
* a text can not be converted to a time constant.
* Example:
* <pre>
* CALL TIME '14:61:00'; * CALL TIME '14:61:00';
* </pre>
*/
public static final int TIME_CONSTANT_2 = 90010;
/**
* The error with code <code>90011</code> is thrown when
* a text can not be converted to a timestamp constant.
* Example:
* <pre>
* CALL TIMESTAMP '2001-02-30 12:00:00'; * CALL TIMESTAMP '2001-02-30 12:00:00';
* </pre> * </pre>
*/ */
public static final int TIMESTAMP_CONSTANT_2 = 90011; public static final int INVALID_DATETIME_CONSTANT_2 = 22007;
/** /**
* The error with code <code>90012</code> is thrown when * The error with code <code>90012</code> is thrown when
...@@ -1867,7 +1849,7 @@ public class ErrorCode { ...@@ -1867,7 +1849,7 @@ public class ErrorCode {
*/ */
public static final int RESULT_SET_READONLY = 90140; public static final int RESULT_SET_READONLY = 90140;
// next are 90005, 90006, 90021, 90039, 90051, 90056, 90110, 90122, 90141 // next are 90005, 90006, 90009, 90010, 90011, 90021, 90039, 90051, 90056, 90110, 90122, 90141
private ErrorCode() { private ErrorCode() {
// utility class // utility class
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
21S02=Počet sloupců nesouhlasí 21S02=Počet sloupců nesouhlasí
22001=Příliš dlouhá hodnota pro sloupec {0}: {1} 22001=Příliš dlouhá hodnota pro sloupec {0}: {1}
22003=Číselná hodnota je mimo rozsah: {0} 22003=Číselná hodnota je mimo rozsah: {0}
22007=Nelze zpracovat konstantu {0} {1}
22012=Dělení nulou: {0} 22012=Dělení nulou: {0}
22018=Chyba při převodu dat {0} 22018=Chyba při převodu dat {0}
22025=Chyba v LIKE escapování: {0} 22025=Chyba v LIKE escapování: {0}
...@@ -33,9 +34,6 @@ ...@@ -33,9 +34,6 @@
90004=Hexadecimální řetězec obsahuje neplatný znak: {0} 90004=Hexadecimální řetězec obsahuje neplatný znak: {0}
90007=Tento objekt byl již uzavřen 90007=Tento objekt byl již uzavřen
90008=Neplatná hodnota {0} pro parametr {1} 90008=Neplatná hodnota {0} pro parametr {1}
90009=Nelze zpracovat konstantu datumu {0}, příčina: {1}
90010=Nelze zpracovat konstantu času {0}, příčina: {1}
90011=Nelze zpracovat konstantu časového razítka {0}, příčina: {1}
90012=Parametr {0} není nastaven 90012=Parametr {0} není nastaven
90013=Databáze {0} nenalezena 90013=Databáze {0} nenalezena
90014=Chyba zpracování {0} 90014=Chyba zpracování {0}
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
21S02=Anzahl der Felder stimmt nicht überein 21S02=Anzahl der Felder stimmt nicht überein
22001=Wert zu gross / lang für Feld {0}: {1} 22001=Wert zu gross / lang für Feld {0}: {1}
22003=Zahlenwert ausserhalb des Bereichs: {0} 22003=Zahlenwert ausserhalb des Bereichs: {0}
22007=Kann {0} {1} nicht umwandeln
22012=Division durch 0: {0} 22012=Division durch 0: {0}
22018=Datenumwandlungsfehler beim Umwandeln von {0} 22018=Datenumwandlungsfehler beim Umwandeln von {0}
22025=Fehler in LIKE ESCAPE: {0} 22025=Fehler in LIKE ESCAPE: {0}
...@@ -33,9 +34,6 @@ ...@@ -33,9 +34,6 @@
90004=Hexadezimal Zahl enthält unerlaubtes Zeichen: {0} 90004=Hexadezimal Zahl enthält unerlaubtes Zeichen: {0}
90007=Das Objekt wurde bereits geschlossen 90007=Das Objekt wurde bereits geschlossen
90008=Unerlaubter Wert {0} für Parameter {1} 90008=Unerlaubter Wert {0} für Parameter {1}
90009=Kann Datum {0} nicht umwandeln, Grund: {1}
90010=Kann Zeit {0} nicht umwandeln, Grund: {1}
90011=Kann Zeitstempel {0} nicht umwandeln, Grund: {1}
90012=Parameter {0} wurde nicht gesetzt 90012=Parameter {0} wurde nicht gesetzt
90013=Datenbank {0} nicht gefunden 90013=Datenbank {0} nicht gefunden
90014=Fehler beim Parsen von {0} 90014=Fehler beim Parsen von {0}
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
21S02=Column count does not match 21S02=Column count does not match
22001=Value too long for column {0}: {1} 22001=Value too long for column {0}: {1}
22003=Numeric value out of range: {0} 22003=Numeric value out of range: {0}
22007=Cannot parse {0} constant {1}
22012=Division by zero: {0} 22012=Division by zero: {0}
22018=Data conversion error converting {0} 22018=Data conversion error converting {0}
22025=Error in LIKE ESCAPE: {0} 22025=Error in LIKE ESCAPE: {0}
...@@ -33,9 +34,6 @@ ...@@ -33,9 +34,6 @@
90004=Hexadecimal string contains non-hex character: {0} 90004=Hexadecimal string contains non-hex character: {0}
90007=The object is already closed 90007=The object is already closed
90008=Invalid value {0} for parameter {1} 90008=Invalid value {0} for parameter {1}
90009=Cannot parse date constant {0}, cause: {1}
90010=Cannot parse time constant {0}, cause: {1}
90011=Cannot parse timestamp constant {0}, cause: {1}
90012=Parameter {0} is not set 90012=Parameter {0} is not set
90013=Database {0} not found 90013=Database {0} not found
90014=Error parsing {0} 90014=Error parsing {0}
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
21S02=La cantidad de columnas no coincide 21S02=La cantidad de columnas no coincide
22001=Valor demasiado largo para la columna {0}: {1} 22001=Valor demasiado largo para la columna {0}: {1}
22003=Valor numerico fuera de rango: {0} 22003=Valor numerico fuera de rango: {0}
22007=Imposible interpretar la constante {0} {1}
22012=División por cero: {0} 22012=División por cero: {0}
22018=Conversión de datos fallida, convirtiendo {0} 22018=Conversión de datos fallida, convirtiendo {0}
22025=Error en LIKE ESCAPE: {0} 22025=Error en LIKE ESCAPE: {0}
...@@ -33,9 +34,6 @@ ...@@ -33,9 +34,6 @@
90004=Cadena Hexadecimal contiene caracteres invalidos: {0} 90004=Cadena Hexadecimal contiene caracteres invalidos: {0}
90007=El objeto ya está cerrado 90007=El objeto ya está cerrado
90008=Valor Invalido {0} para el parametro {1} 90008=Valor Invalido {0} para el parametro {1}
90009=Imposible interpretar la constante de fecha {0}, causa: {1}
90010=Imposible interpretar la constante de hora {0}, causa: {1}
90011=Imposible interpretar la constante de fecha y hora timestamp {0}, causa: {1}
90012=Parametro {0} no está fijado 90012=Parametro {0} no está fijado
90013=Database {0} no encontrada 90013=Database {0} no encontrada
90014=Error interpretando {0} 90014=Error interpretando {0}
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
21S02=列番号が一致しません 21S02=列番号が一致しません
22001=列 {0} の値が長過ぎます: {1} 22001=列 {0} の値が長過ぎます: {1}
22003=範囲外の数値です: {0} 22003=範囲外の数値です: {0}
22007={0} 定数 {1} を解析できません
22012=ゼロで除算しました: {0} 22012=ゼロで除算しました: {0}
22018=データ変換中にエラーが発生しました {0} 22018=データ変換中にエラーが発生しました {0}
22025=LIKE ESCAPE にエラーがあります: {0} 22025=LIKE ESCAPE にエラーがあります: {0}
...@@ -33,9 +34,6 @@ ...@@ -33,9 +34,6 @@
90004=16進文字列に不正な文字が含まれています: {0} 90004=16進文字列に不正な文字が含まれています: {0}
90007=オブジェクトはすでに閉じられています 90007=オブジェクトはすでに閉じられています
90008=パラメータ {1} に対する値 {0} が不正です 90008=パラメータ {1} に対する値 {0} が不正です
90009=日付定数 {0} を解析できません
90010=時間定数 {0} を解析できません
90011=タイムスタンプ定数 {0} を解析できません
90012=パラメータ {0} がセットされていません 90012=パラメータ {0} がセットされていません
90013=データベース {0} が見つかりません 90013=データベース {0} が見つかりません
90014=解析エラー {0} 90014=解析エラー {0}
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
21S02=Niezgodna ilosc kolumn 21S02=Niezgodna ilosc kolumn
22001=Wartosc za dluga dla kolumny {0}: {1} 22001=Wartosc za dluga dla kolumny {0}: {1}
22003=Wartosc numeryczna poza zakresem: {0} 22003=Wartosc numeryczna poza zakresem: {0}
22007=#Cannot parse {0} constant {1}
22012=Dzielenie przez zero: {0} 22012=Dzielenie przez zero: {0}
22018=Blad konwersji danych {0} 22018=Blad konwersji danych {0}
22025=Blad w LIKE ESCAPE: {0} 22025=Blad w LIKE ESCAPE: {0}
...@@ -33,9 +34,6 @@ ...@@ -33,9 +34,6 @@
90004=Hexadecimal string contains non hex character: {0} 90004=Hexadecimal string contains non hex character: {0}
90007=Objekt jest zamkniety 90007=Objekt jest zamkniety
90008=Nieprawidlowa wartosc {0} parametru {1} 90008=Nieprawidlowa wartosc {0} parametru {1}
90009=#Cannot parse date constant {0}, cause: {1}
90010=#Cannot parse time constant {0}, cause: {1}
90011=#Cannot parse timestamp constant {0}, cause: {1}
90012=Parametr o numerze {0} nie jest ustalony 90012=Parametr o numerze {0} nie jest ustalony
90013=Baza danych {0} nie znaleziona 90013=Baza danych {0} nie znaleziona
90014=Blad parsowania {0} 90014=Blad parsowania {0}
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
21S02=A quantidade de colunas não corresponde 21S02=A quantidade de colunas não corresponde
22001=Valor muito longo para a coluna {0}: {1} 22001=Valor muito longo para a coluna {0}: {1}
22003=Valor númerico não esta dentro do limite: {0} 22003=Valor númerico não esta dentro do limite: {0}
22007=Não é possível converter {1} para {0}
22012=Divisão por zero: {0} 22012=Divisão por zero: {0}
22018=Erro na conversão de dado, convertendo {0} 22018=Erro na conversão de dado, convertendo {0}
22025=Erro em LIKE ESCAPE: {0} 22025=Erro em LIKE ESCAPE: {0}
...@@ -33,9 +34,6 @@ ...@@ -33,9 +34,6 @@
90004=Sequência Hexadecimal contêm caracteres inválidos: {0} 90004=Sequência Hexadecimal contêm caracteres inválidos: {0}
90007=O objeto está fechado 90007=O objeto está fechado
90008=Valor inválido {0} para o parâmetro {1} 90008=Valor inválido {0} para o parâmetro {1}
90009=Não é possível converter {0} para date, causa: {1}
90010=Não é possível converter {0} para time, causa: {1}
90011=Não é possível converter {0} para timestamp, causa: {1}
90012=Parâmetro {0} não esta definido 90012=Parâmetro {0} não esta definido
90013=Base de dados {0} não encontrada 90013=Base de dados {0} não encontrada
90014=Erro na conversão {0} 90014=Erro na conversão {0}
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
21S02=Неверное количество столбцов 21S02=Неверное количество столбцов
22001=Значение слишком длинное для поля {0}: {1} 22001=Значение слишком длинное для поля {0}: {1}
22003=Численное значение вне допустимого диапазона: {0} 22003=Численное значение вне допустимого диапазона: {0}
22007=Невозможно преобразование строки {1} в тип {0}
22012=Деление на ноль: {0} 22012=Деление на ноль: {0}
22018=Ошибка преобразования данных при конвертации {0} 22018=Ошибка преобразования данных при конвертации {0}
22025=Ошибка в LIKE ESCAPE: {0} 22025=Ошибка в LIKE ESCAPE: {0}
...@@ -33,9 +34,6 @@ ...@@ -33,9 +34,6 @@
90004=Шестнадцатиричная строка содержит нешестнадцатиричные символы: {0} 90004=Шестнадцатиричная строка содержит нешестнадцатиричные символы: {0}
90007=Объект уже закрыт 90007=Объект уже закрыт
90008=Недопустимое значение {0} для параметра {1} 90008=Недопустимое значение {0} для параметра {1}
90009=Невозможно преобразование строки {0} в тип date, причина: {1}
90010=Невозможно преобразование строки {0} в тип time, причина: {1}
90011=Невозможно преобразование строки {0} в тип timestamp, причина: {1}
90012=Параметр {0} не установлен 90012=Параметр {0} не установлен
90013=База данных {0} не найдена 90013=База данных {0} не найдена
90014=Ошибка при разборе {0} 90014=Ошибка при разборе {0}
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
21S02=Počet stĺpcov sa nezhoduje 21S02=Počet stĺpcov sa nezhoduje
22001=Hodnota je príliš dlhá pre stĺpec {0}: {1} 22001=Hodnota je príliš dlhá pre stĺpec {0}: {1}
22003=Číselná hodnota mimo rozsah: {0} 22003=Číselná hodnota mimo rozsah: {0}
22007=Nemožem rozobrať {0} konštantu {1}
22012=Delenie nulou: {0} 22012=Delenie nulou: {0}
22018=Chyba konverzie dát pre {0} 22018=Chyba konverzie dát pre {0}
22025=Chyba v LIKE ESCAPE: {0} 22025=Chyba v LIKE ESCAPE: {0}
...@@ -33,9 +34,6 @@ ...@@ -33,9 +34,6 @@
90004=Hexadecimálny reťazec obsahuje nepovolené znaky pre šestnáskovú sústavu: {0} 90004=Hexadecimálny reťazec obsahuje nepovolené znaky pre šestnáskovú sústavu: {0}
90007=Objekt už je zatvorený 90007=Objekt už je zatvorený
90008=Nesprávna hodnota {0} parametra {1} 90008=Nesprávna hodnota {0} parametra {1}
90009=Nemožem rozobrať dátumovú (date) konštantu {0}, dôvod: {1}
90010=Nemožem rozobrať časovú (time) konštantu {0}, dôvod: {1}
90011=Nemožem rozobrať časovú pečiatku (timestamp) {0}, dôvod: {1}
90012=Parameter {0} nie je nastavený 90012=Parameter {0} nie je nastavený
90013=Databáza {0} nenájdená 90013=Databáza {0} nenájdená
90014=Chyba rozobrania (parse) {0} 90014=Chyba rozobrania (parse) {0}
......
...@@ -18,6 +18,7 @@ import java.util.Locale; ...@@ -18,6 +18,7 @@ import java.util.Locale;
import java.util.TimeZone; import java.util.TimeZone;
import org.h2.constant.ErrorCode; import org.h2.constant.ErrorCode;
import org.h2.message.DbException; import org.h2.message.DbException;
import org.h2.value.DataType;
import org.h2.value.Value; import org.h2.value.Value;
import org.h2.value.ValueDate; import org.h2.value.ValueDate;
import org.h2.value.ValueTime; import org.h2.value.ValueTime;
...@@ -232,10 +233,9 @@ public class DateTimeUtils { ...@@ -232,10 +233,9 @@ public class DateTimeUtils {
* *
* @param original the original string * @param original the original string
* @param type the value type (Value.TIME, TIMESTAMP, or DATE) * @param type the value type (Value.TIME, TIMESTAMP, or DATE)
* @param errorCode the error code to use if an error occurs
* @return the date object * @return the date object
*/ */
public static java.util.Date parseDateTime(String original, int type, int errorCode) { public static java.util.Date parseDateTime(String original, int type) {
String s = original; String s = original;
if (s == null) { if (s == null) {
return null; return null;
...@@ -263,7 +263,8 @@ public class DateTimeUtils { ...@@ -263,7 +263,8 @@ public class DateTimeUtils {
int s1 = s.indexOf('-', 1); int s1 = s.indexOf('-', 1);
int s2 = s.indexOf('-', s1 + 1); int s2 = s.indexOf('-', s1 + 1);
if (s1 <= 0 || s2 <= s1) { if (s1 <= 0 || s2 <= s1) {
throw DbException.get(errorCode, s, "format yyyy-mm-dd"); throw DbException.get(ErrorCode.INVALID_DATETIME_CONSTANT_2,
DataType.getDataType(type).name, s);
} }
year = Integer.parseInt(s.substring(0, s1)); year = Integer.parseInt(s.substring(0, s1));
month = Integer.parseInt(s.substring(s1 + 1, s2)); month = Integer.parseInt(s.substring(s1 + 1, s2));
...@@ -276,7 +277,8 @@ public class DateTimeUtils { ...@@ -276,7 +277,8 @@ public class DateTimeUtils {
int s2 = s.indexOf(':', s1 + 1); int s2 = s.indexOf(':', s1 + 1);
int s3 = s.indexOf('.', s2 + 1); int s3 = s.indexOf('.', s2 + 1);
if (s1 <= 0 || s2 <= s1) { if (s1 <= 0 || s2 <= s1) {
throw DbException.get(errorCode, s, "format hh:mm:ss"); throw DbException.get(ErrorCode.INVALID_DATETIME_CONSTANT_2,
DataType.getDataType(type).name, original);
} }
if (s.endsWith("Z")) { if (s.endsWith("Z")) {
...@@ -291,7 +293,9 @@ public class DateTimeUtils { ...@@ -291,7 +293,9 @@ public class DateTimeUtils {
String tzName = "GMT" + s.substring(timeZoneStart); String tzName = "GMT" + s.substring(timeZoneStart);
tz = TimeZone.getTimeZone(tzName); tz = TimeZone.getTimeZone(tzName);
if (!tz.getID().startsWith(tzName)) { if (!tz.getID().startsWith(tzName)) {
throw DbException.get(errorCode, new String[] { s, tz.getID() + " <>" + tzName }); throw DbException.get(ErrorCode.INVALID_DATETIME_CONSTANT_2,
DataType.getDataType(type).name,
original + " (" + tz.getID() + " <>" + tzName + ")");
} }
s = s.substring(0, timeZoneStart).trim(); s = s.substring(0, timeZoneStart).trim();
} }
...@@ -352,7 +356,8 @@ public class DateTimeUtils { ...@@ -352,7 +356,8 @@ public class DateTimeUtils {
throw DbException.throwInternalError("type:" + type); throw DbException.throwInternalError("type:" + type);
} }
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
throw DbException.get(errorCode, e, original, e.toString()); throw DbException.get(ErrorCode.INVALID_DATETIME_CONSTANT_2,
e, DataType.getDataType(type).name, original);
} }
} }
......
...@@ -10,7 +10,6 @@ import java.sql.Date; ...@@ -10,7 +10,6 @@ import java.sql.Date;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.Calendar; import java.util.Calendar;
import org.h2.constant.ErrorCode;
import org.h2.util.DateTimeUtils; import org.h2.util.DateTimeUtils;
/** /**
...@@ -42,7 +41,7 @@ public class ValueDate extends Value { ...@@ -42,7 +41,7 @@ public class ValueDate extends Value {
* @return the date * @return the date
*/ */
public static Date parseDate(String s) { public static Date parseDate(String s) {
return (Date) DateTimeUtils.parseDateTime(s, Value.DATE, ErrorCode.DATE_CONSTANT_2); return (Date) DateTimeUtils.parseDateTime(s, Value.DATE);
} }
public Date getDate() { public Date getDate() {
......
...@@ -9,7 +9,6 @@ package org.h2.value; ...@@ -9,7 +9,6 @@ package org.h2.value;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Time; import java.sql.Time;
import org.h2.constant.ErrorCode;
import org.h2.util.DateTimeUtils; import org.h2.util.DateTimeUtils;
/** /**
...@@ -41,7 +40,7 @@ public class ValueTime extends Value { ...@@ -41,7 +40,7 @@ public class ValueTime extends Value {
* @return the time * @return the time
*/ */
public static Time parseTime(String s) { public static Time parseTime(String s) {
return (Time) DateTimeUtils.parseDateTime(s, Value.TIME, ErrorCode.TIME_CONSTANT_2); return (Time) DateTimeUtils.parseDateTime(s, Value.TIME);
} }
public Time getTime() { public Time getTime() {
......
...@@ -12,8 +12,6 @@ import java.sql.SQLException; ...@@ -12,8 +12,6 @@ import java.sql.SQLException;
import java.sql.Time; import java.sql.Time;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.Calendar; import java.util.Calendar;
import org.h2.constant.ErrorCode;
import org.h2.message.DbException; import org.h2.message.DbException;
import org.h2.util.DateTimeUtils; import org.h2.util.DateTimeUtils;
import org.h2.util.MathUtils; import org.h2.util.MathUtils;
...@@ -79,7 +77,7 @@ public class ValueTimestamp extends Value { ...@@ -79,7 +77,7 @@ public class ValueTimestamp extends Value {
* @return the timestamp * @return the timestamp
*/ */
public static Timestamp parseTimestamp(String s) { public static Timestamp parseTimestamp(String s) {
return (Timestamp) DateTimeUtils.parseDateTime(s, Value.TIMESTAMP, ErrorCode.TIMESTAMP_CONSTANT_2); return (Timestamp) DateTimeUtils.parseDateTime(s, Value.TIMESTAMP);
} }
public int getType() { public int getType() {
......
...@@ -339,13 +339,7 @@ java org.h2.test.TestAll timer ...@@ -339,13 +339,7 @@ java org.h2.test.TestAll timer
System.setProperty("h2.delayWrongPasswordMin", "0"); System.setProperty("h2.delayWrongPasswordMin", "0");
System.setProperty("h2.delayWrongPasswordMax", "0"); System.setProperty("h2.delayWrongPasswordMax", "0");
// System.setProperty("h2.lobInDatabase", "true"); System.setProperty("h2.storeLocalTime", "true");
// test.nestedJoins = true;
// System.setProperty("h2.largeTransactions", "true");
// System.setProperty("h2.analyzeAuto", "100");
// System.setProperty("h2.optimizeOr", "true");
// System.setProperty("h2.queryCacheSize", "100");
// System.setProperty("h2.dropRestrict", "true");
// speedup // speedup
// System.setProperty("h2.syncMethod", ""); // System.setProperty("h2.syncMethod", "");
......
...@@ -14,7 +14,6 @@ import java.sql.Statement; ...@@ -14,7 +14,6 @@ import java.sql.Statement;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.TimeZone; import java.util.TimeZone;
import org.h2.constant.ErrorCode;
import org.h2.constant.SysProperties; import org.h2.constant.SysProperties;
import org.h2.test.TestBase; import org.h2.test.TestBase;
import org.h2.test.unit.TestDate; import org.h2.test.unit.TestDate;
...@@ -123,7 +122,7 @@ public class TestDateStorage extends TestBase { ...@@ -123,7 +122,7 @@ public class TestDateStorage extends TestBase {
private static void test(int year, int month, int day, int hour) { private static void test(int year, int month, int day, int hour) {
DateTimeUtils.parseDateTime(year + "-" + month + "-" + day + " " + hour + ":00:00", DateTimeUtils.parseDateTime(year + "-" + month + "-" + day + " " + hour + ":00:00",
Value.TIMESTAMP, ErrorCode.TIMESTAMP_CONSTANT_2); Value.TIMESTAMP);
} }
private void testAllTimeZones() throws SQLException { private void testAllTimeZones() throws SQLException {
......
...@@ -124,8 +124,8 @@ public class TestDate extends TestBase { ...@@ -124,8 +124,8 @@ public class TestDate extends TestBase {
} }
private void testDateTimeUtils() { private void testDateTimeUtils() {
java.sql.Timestamp ts1 = (Timestamp) DateTimeUtils.parseDateTime("-999-08-07 13:14:15.16", Value.TIMESTAMP, 0); java.sql.Timestamp ts1 = (Timestamp) DateTimeUtils.parseDateTime("-999-08-07 13:14:15.16", Value.TIMESTAMP);
java.sql.Timestamp ts2 = (Timestamp) DateTimeUtils.parseDateTime("19999-08-07 13:14:15.16", Value.TIMESTAMP, 0); java.sql.Timestamp ts2 = (Timestamp) DateTimeUtils.parseDateTime("19999-08-07 13:14:15.16", Value.TIMESTAMP);
java.sql.Time t1 = DateTimeUtils.cloneAndNormalizeTime(new java.sql.Time(ts1.getTime())); java.sql.Time t1 = DateTimeUtils.cloneAndNormalizeTime(new java.sql.Time(ts1.getTime()));
java.sql.Time t2 = DateTimeUtils.cloneAndNormalizeTime(new java.sql.Time(ts2.getTime())); java.sql.Time t2 = DateTimeUtils.cloneAndNormalizeTime(new java.sql.Time(ts2.getTime()));
java.sql.Date d1 = DateTimeUtils.cloneAndNormalizeDate(new java.sql.Date(ts1.getTime())); java.sql.Date d1 = DateTimeUtils.cloneAndNormalizeDate(new java.sql.Date(ts1.getTime()));
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论