提交 18602ef4 authored 作者: Noel Grandin's avatar Noel Grandin

remove STORE_LOCAL_TIME code

this has been hardcoded to false for quite some time now
上级 d4ed1a5d
...@@ -93,15 +93,6 @@ public class Data { ...@@ -93,15 +93,6 @@ public class Data {
private static final long MILLIS_PER_MINUTE = 1000 * 60; private static final long MILLIS_PER_MINUTE = 1000 * 60;
/**
* Can not store the local time, because doing so with old database files
* that didn't do it could result in an ArrayIndexOutOfBoundsException. The
* reason is that adding a row to a page only allocated space for the new
* row, but didn't take into account that existing rows now can use more
* space, due to the changed format.
*/
private static final boolean STORE_LOCAL_TIME = false;
/** /**
* The data itself. * The data itself.
*/ */
...@@ -487,48 +478,20 @@ public class Data { ...@@ -487,48 +478,20 @@ public class Data {
break; break;
} }
case Value.TIME: case Value.TIME:
if (STORE_LOCAL_TIME) { writeByte((byte) type);
writeByte((byte) LOCAL_TIME); writeVarLong(DateTimeUtils.getTimeLocalWithoutDst(v.getTime()));
ValueTime t = (ValueTime) v;
long nanos = t.getNanos();
long millis = nanos / 1_000_000;
nanos -= millis * 1_000_000;
writeVarLong(millis);
writeVarLong(nanos);
} else {
writeByte((byte) type);
writeVarLong(DateTimeUtils.getTimeLocalWithoutDst(v.getTime()));
}
break; break;
case Value.DATE: { case Value.DATE: {
if (STORE_LOCAL_TIME) { writeByte((byte) type);
writeByte((byte) LOCAL_DATE); long x = DateTimeUtils.getTimeLocalWithoutDst(v.getDate());
long x = ((ValueDate) v).getDateValue(); writeVarLong(x / MILLIS_PER_MINUTE);
writeVarLong(x);
} else {
writeByte((byte) type);
long x = DateTimeUtils.getTimeLocalWithoutDst(v.getDate());
writeVarLong(x / MILLIS_PER_MINUTE);
}
break; break;
} }
case Value.TIMESTAMP: { case Value.TIMESTAMP: {
if (STORE_LOCAL_TIME) { Timestamp ts = v.getTimestamp();
writeByte((byte) LOCAL_TIMESTAMP); writeByte((byte) type);
ValueTimestamp ts = (ValueTimestamp) v; writeVarLong(DateTimeUtils.getTimeLocalWithoutDst(ts));
long dateValue = ts.getDateValue(); writeVarInt(ts.getNanos() % 1_000_000);
writeVarLong(dateValue);
long nanos = ts.getTimeNanos();
long millis = nanos / 1_000_000;
nanos -= millis * 1_000_000;
writeVarLong(millis);
writeVarLong(nanos);
} else {
Timestamp ts = v.getTimestamp();
writeByte((byte) type);
writeVarLong(DateTimeUtils.getTimeLocalWithoutDst(ts));
writeVarInt(ts.getNanos() % 1_000_000);
}
break; break;
} }
case Value.TIMESTAMP_TZ: { case Value.TIMESTAMP_TZ: {
...@@ -1012,31 +975,12 @@ public class Data { ...@@ -1012,31 +975,12 @@ public class Data {
return 1 + getVarIntLen(scale) + getVarIntLen(bytes.length) + bytes.length; return 1 + getVarIntLen(scale) + getVarIntLen(bytes.length) + bytes.length;
} }
case Value.TIME: case Value.TIME:
if (STORE_LOCAL_TIME) {
long nanos = ((ValueTime) v).getNanos();
long millis = nanos / 1_000_000;
nanos -= millis * 1_000_000;
return 1 + getVarLongLen(millis) + getVarLongLen(nanos);
}
return 1 + getVarLongLen(DateTimeUtils.getTimeLocalWithoutDst(v.getTime())); return 1 + getVarLongLen(DateTimeUtils.getTimeLocalWithoutDst(v.getTime()));
case Value.DATE: { case Value.DATE: {
if (STORE_LOCAL_TIME) {
long dateValue = ((ValueDate) v).getDateValue();
return 1 + getVarLongLen(dateValue);
}
long x = DateTimeUtils.getTimeLocalWithoutDst(v.getDate()); long x = DateTimeUtils.getTimeLocalWithoutDst(v.getDate());
return 1 + getVarLongLen(x / MILLIS_PER_MINUTE); return 1 + getVarLongLen(x / MILLIS_PER_MINUTE);
} }
case Value.TIMESTAMP: { case Value.TIMESTAMP: {
if (STORE_LOCAL_TIME) {
ValueTimestamp ts = (ValueTimestamp) v;
long dateValue = ts.getDateValue();
long nanos = ts.getTimeNanos();
long millis = nanos / 1_000_000;
nanos -= millis * 1_000_000;
return 1 + getVarLongLen(dateValue) + getVarLongLen(millis) +
getVarLongLen(nanos);
}
Timestamp ts = v.getTimestamp(); Timestamp ts = v.getTimestamp();
return 1 + getVarLongLen(DateTimeUtils.getTimeLocalWithoutDst(ts)) + return 1 + getVarLongLen(DateTimeUtils.getTimeLocalWithoutDst(ts)) +
getVarIntLen(ts.getNanos() % 1_000_000); getVarIntLen(ts.getNanos() % 1_000_000);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论