|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.derby.iapi.types.DataType
org.apache.derby.iapi.types.SQLTimestamp
This contains an instance of a SQL Timestamp object.
SQLTimestamp is stored in 3 ints - an encoded date, an encoded time and nanoseconds encodedDate = 0 indicates a null WSCTimestamp SQLTimestamp is similar to SQLTimestamp, but it does conserves space by not keeping a GregorianCalendar object PERFORMANCE OPTIMIZATION: We only instantiate the value field when required due to the overhead of the Date methods. Thus, use isNull() instead of "value == null" and getTimestamp() instead of using value directly.
| Field Summary | |
private static int |
BASE_MEMORY_USAGE
|
(package private) static char |
DATE_SEPARATOR
|
private static char[] |
DATE_SEPARATORS
|
private static char[] |
DATE_TIME_SEPARATORS
|
private static char[] |
DATE_TIME_SEPARATORS_OR_END
|
private int |
encodedDate
|
private int |
encodedTime
|
private static char[] |
END_OF_STRING
|
(package private) static int |
FRACTION_TO_NANO
|
private static char |
IBM_DATE_TIME_SEPARATOR
|
private static char |
IBM_TIME_SEPARATOR
|
(package private) static int |
MAX_FRACTION_DIGITS
|
private int |
nanos
|
private static char |
ODBC_DATE_TIME_SEPARATOR
|
private static char |
ODBC_TIME_SEPARATOR
|
(package private) static int |
ONE_BILLION
|
private static char[] |
TIME_SEPARATORS
|
private static char[] |
TIME_SEPARATORS_OR_END
|
private java.lang.String |
valueString
|
| Fields inherited from interface org.apache.derby.iapi.types.DateTimeDataValue |
DAY_FIELD, DAY_INTERVAL, FRAC_SECOND_INTERVAL, HOUR_FIELD, HOUR_INTERVAL, MINUTE_FIELD, MINUTE_INTERVAL, MONTH_FIELD, MONTH_INTERVAL, QUARTER_INTERVAL, SECOND_FIELD, SECOND_INTERVAL, WEEK_INTERVAL, YEAR_FIELD, YEAR_INTERVAL |
| Fields inherited from interface org.apache.derby.iapi.types.Orderable |
ORDER_OP_EQUALS, ORDER_OP_GREATEROREQUALS, ORDER_OP_GREATERTHAN, ORDER_OP_LESSOREQUALS, ORDER_OP_LESSTHAN |
| Constructor Summary | |
|
SQLTimestamp()
no-arg constructor required by Formattable |
|
SQLTimestamp(DataValueDescriptor date,
DataValueDescriptor time)
|
(package private) |
SQLTimestamp(int encodedDate,
int encodedTime,
int nanos)
|
|
SQLTimestamp(java.lang.String timestampStr,
boolean isJDBCEscape,
LocaleFinder localeFinder)
Construct a timestamp from a string. |
|
SQLTimestamp(java.lang.String timestampStr,
boolean isJDBCEscape,
LocaleFinder localeFinder,
java.util.Calendar cal)
Construct a timestamp from a string. |
|
SQLTimestamp(java.sql.Timestamp value)
|
| Method Summary | |
private void |
addInternal(int calIntervalType,
int count,
SQLTimestamp tsResult)
|
int |
compare(DataValueDescriptor other)
Compare this Orderable with a given Orderable for the purpose of index positioning. |
boolean |
compare(int op,
DataValueDescriptor other,
boolean orderedNulls,
boolean unknownRV)
Compare this Orderable with a given Orderable for the purpose of qualification and sorting. |
private static int |
computeEncodedDate(java.util.Date value,
java.util.Calendar currentCal)
computeEncodedDate sets the date in a Calendar object and then uses the SQLDate function to compute an encoded date The encoded date is year << 16 + month << 8 + date |
private static int |
computeEncodedTime(java.util.Date value,
java.util.Calendar currentCal)
computeEncodedTime extracts the hour, minute and seconds from a java.util.Date value and encodes them as hour << 16 + minute << 8 + second using the SQLTime function for encoding the data |
static DateTimeDataValue |
computeTimestampFunction(DataValueDescriptor operand,
DataValueFactory dvf)
Compute the SQL timestamp function. |
int |
estimateMemoryUsage()
Estimate the memory usage in bytes of the data value and the overhead of the class. |
DataValueDescriptor |
getClone()
Clone this DataValueDescriptor. |
java.sql.Date |
getDate(java.util.Calendar cal)
getDate returns the date portion of the timestamp Time is set to 00:00:00.0 Since Date is a JDBC object we use the JDBC definition for the time portion. |
NumberDataValue |
getDate(NumberDataValue result)
Get the day of the month. |
NumberDataValue |
getHours(NumberDataValue result)
Get the hour of the day out of a time or timestamp. |
int |
getLength()
Gets the length of the data value. |
NumberDataValue |
getMinutes(NumberDataValue result)
Get the minute of the hour out of a time or timestamp. |
NumberDataValue |
getMonth(NumberDataValue result)
Get the month number out of a date. |
protected java.lang.String |
getNationalString(LocaleFinder localeFinder)
International version of getString(). |
DataValueDescriptor |
getNewNull()
Get a new null value of the same type as this data value. |
java.lang.Object |
getObject()
Gets the value in the data value descriptor as a Java Object. |
NumberDataValue |
getSeconds(NumberDataValue source)
Get the second of the minute out of a time or timestamp. |
java.lang.String |
getString()
Gets the value in the data value descriptor as a String. |
java.sql.Time |
getTime(java.util.Calendar cal)
getTime returns the time portion of the timestamp Date is set to 1970-01-01 Since Time is a JDBC object we use the JDBC definition for the date portion. |
java.sql.Timestamp |
getTimestamp(java.util.Calendar cal)
Get the value field. |
int |
getTypeFormatId()
Return my format identifier. |
java.lang.String |
getTypeName()
Get the SQL name of the datatype |
NumberDataValue |
getYear(NumberDataValue result)
Get the year number out of a date. |
int |
hashCode()
|
boolean |
isNull()
Check if the value is null. |
private java.sql.Date |
newDate(java.util.Calendar cal)
|
private java.sql.Time |
newTime(java.util.Calendar cal)
|
protected java.sql.Timestamp |
newTimestamp(java.util.Calendar currentCal)
|
(package private) static int[] |
parseDateOrTimestamp(DateTimeParser parser,
boolean timeRequired)
Parse a timestamp or a date. |
(package private) static int |
parseDateTimeInteger(java.lang.String str,
int start,
int ndigits)
|
(package private) static int[] |
parseLocalTimestamp(java.lang.String str,
LocaleFinder localeFinder,
java.util.Calendar cal)
Parse a localized timestamp. |
private void |
parseTimestamp(java.lang.String timestampStr,
boolean isJDBCEscape,
LocaleFinder localeFinder,
java.util.Calendar cal)
|
(package private) static SQLTimestamp |
promote(DateTimeDataValue dateTime,
java.sql.Date currentDate)
Promotes a DateTimeDataValue to a timestamp. |
void |
readExternal(java.io.ObjectInput in)
|
void |
readExternalFromArray(ArrayInputStream in)
Read the DataValueDescriptor from the stream. |
void |
restoreToNull()
Restore this object to its (SQL)null value. |
private void |
setCalendar(java.util.Calendar cal)
|
protected void |
setFrom(DataValueDescriptor theValue)
|
void |
setInto(java.sql.PreparedStatement ps,
int position)
Set this value into a PreparedStatement. |
private void |
setNumericTimestamp(java.sql.Timestamp value,
java.util.Calendar cal)
Set the encoded values for the timestamp |
void |
setValue(java.sql.Date value,
java.util.Calendar cal)
Set the value of this DataValueDescriptor. |
void |
setValue(java.lang.Object theValue)
Set the value of this DataValueDescriptor to the given value |
void |
setValue(java.lang.String theValue)
Set the value of this DataValueDescriptor. |
void |
setValue(java.sql.Time value,
java.util.Calendar cal)
Set the value of this DataValueDescriptor. |
void |
setValue(java.sql.Timestamp value,
java.util.Calendar cal)
Set the value of this DataValueDescriptor. |
void |
setValueFromResultSet(java.sql.ResultSet resultSet,
int colNumber,
boolean isNullable)
Set the value based on the value for the specified DataValueDescriptor from the specified ResultSet. |
DateTimeDataValue |
timestampAdd(int intervalType,
NumberDataValue count,
java.sql.Date currentDate,
DateTimeDataValue resultHolder)
Add a number of intervals to a datetime value. |
NumberDataValue |
timestampDiff(int intervalType,
DateTimeDataValue time1,
java.sql.Date currentDate,
NumberDataValue resultHolder)
Finds the difference between two datetime values as a number of intervals. |
java.lang.String |
toString()
|
int |
typePrecedence()
Each built-in type in JSQL has a precedence. |
void |
writeExternal(java.io.ObjectOutput out)
|
| Methods inherited from class org.apache.derby.iapi.types.DataType |
checkHostVariable, cloneObject, coalesce, dataTypeConversion, equals, equals, flip, genericSetObject, getBoolean, getByte, getBytes, getDouble, getFloat, getInt, getLong, getShort, getStream, greaterOrEquals, greaterThan, in, invalidFormat, isNotNull, isNullOp, lessOrEquals, lessThan, normalize, notEquals, outOfRange, setBigDecimal, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, throwLangSetMismatch, throwLangSetMismatch, typeToBigDecimal |
| Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.apache.derby.iapi.types.DataValueDescriptor |
checkHostVariable, coalesce, equals, getBoolean, getByte, getBytes, getDouble, getFloat, getInt, getLong, getShort, getStream, greaterOrEquals, greaterThan, in, isNotNull, isNullOp, lessOrEquals, lessThan, normalize, notEquals, setBigDecimal, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, typeToBigDecimal |
| Field Detail |
static final int MAX_FRACTION_DIGITS
static final int FRACTION_TO_NANO
static final int ONE_BILLION
private int encodedDate
private int encodedTime
private int nanos
private java.lang.String valueString
private static final int BASE_MEMORY_USAGE
static final char DATE_SEPARATOR
private static final char[] DATE_SEPARATORS
private static final char IBM_DATE_TIME_SEPARATOR
private static final char ODBC_DATE_TIME_SEPARATOR
private static final char[] DATE_TIME_SEPARATORS
private static final char[] DATE_TIME_SEPARATORS_OR_END
private static final char IBM_TIME_SEPARATOR
private static final char ODBC_TIME_SEPARATOR
private static final char[] TIME_SEPARATORS
private static final char[] TIME_SEPARATORS_OR_END
private static final char[] END_OF_STRING
| Constructor Detail |
public SQLTimestamp()
public SQLTimestamp(java.sql.Timestamp value)
throws StandardException
SQLTimestamp(int encodedDate,
int encodedTime,
int nanos)
public SQLTimestamp(DataValueDescriptor date,
DataValueDescriptor time)
throws StandardException
public SQLTimestamp(java.lang.String timestampStr,
boolean isJDBCEscape,
LocaleFinder localeFinder)
throws StandardException
public SQLTimestamp(java.lang.String timestampStr,
boolean isJDBCEscape,
LocaleFinder localeFinder,
java.util.Calendar cal)
throws StandardException
| Method Detail |
public int estimateMemoryUsage()
DataValueDescriptor
estimateMemoryUsage in interface DataValueDescriptorpublic java.lang.String getString()
DataValueDescriptor
getString in interface DataValueDescriptor
public java.sql.Date getDate(java.util.Calendar cal)
throws StandardException
getDate in interface DataValueDescriptorgetDate in class DataTypecal - calendar for object creation
StandardException - thrown on failure
private java.sql.Date newDate(java.util.Calendar cal)
throws StandardException
StandardException
public java.sql.Time getTime(java.util.Calendar cal)
throws StandardException
getTime in interface DataValueDescriptorgetTime in class DataTypecal - calendar for object creation
StandardException - thrown on failure
private java.sql.Time newTime(java.util.Calendar cal)
throws StandardException
StandardExceptionpublic java.lang.Object getObject()
DataValueDescriptor
getObject in interface DataValueDescriptorgetObject in class DataTypepublic int getLength()
DataValueDescriptor
getLength in interface DataValueDescriptorpublic java.lang.String getTypeName()
DataValueDescriptor
getTypeName in interface DataValueDescriptorpublic int getTypeFormatId()
getTypeFormatId in interface TypedFormatTypedFormat.getTypeFormatId()
public void writeExternal(java.io.ObjectOutput out)
throws java.io.IOException
writeExternal in interface java.io.Externalizablejava.io.IOException - error writing data
public void readExternal(java.io.ObjectInput in)
throws java.io.IOException
readExternal in interface java.io.Externalizablejava.io.IOException - Thrown on error reading the objectExternalizable.readExternal(java.io.ObjectInput)
public void readExternalFromArray(ArrayInputStream in)
throws java.io.IOException
DataValueDescriptorInitialize the data value by reading it's values from the ArrayInputStream. This interface is provided as a way to achieve possible performance enhancement when reading an array can be optimized over reading from a generic stream from readExternal().
readExternalFromArray in interface DataValueDescriptorin - The array stream positioned at the beginning of the
byte stream to read from.
java.io.IOException - Usual error is if you try to read
past limit on the stream.public DataValueDescriptor getClone()
DataValueDescriptor
getClone in interface DataValueDescriptorDataValueDescriptor.getClone()public DataValueDescriptor getNewNull()
DataValueDescriptor
getNewNull in interface DataValueDescriptorDataValueDescriptor.getNewNull()public void restoreToNull()
Storable
restoreToNull in interface StorableStorable.restoreToNull()
public void setValueFromResultSet(java.sql.ResultSet resultSet,
int colNumber,
boolean isNullable)
throws java.sql.SQLException,
StandardException
DataValueDescriptor
setValueFromResultSet in interface DataValueDescriptorresultSet - The specified ResultSet.colNumber - The 1-based column # into the resultSet.isNullable - Whether or not the column is nullable
(No need to call wasNull() if not)
java.sql.SQLException - Thrown on error
StandardException - Thrown on errorDataValueDescriptor.setValueFromResultSet(java.sql.ResultSet, int, boolean)
public int compare(DataValueDescriptor other)
throws StandardException
DataValueDescriptor
compare in interface DataValueDescriptorother - The Orderable to compare this one to.
StandardException - Thrown on error
public boolean compare(int op,
DataValueDescriptor other,
boolean orderedNulls,
boolean unknownRV)
throws StandardException
DataValueDescriptor
compare in interface DataValueDescriptorcompare in class DataTypeStandardException - thrown on error
private void parseTimestamp(java.lang.String timestampStr,
boolean isJDBCEscape,
LocaleFinder localeFinder,
java.util.Calendar cal)
throws StandardException
StandardException
static int[] parseLocalTimestamp(java.lang.String str,
LocaleFinder localeFinder,
java.util.Calendar cal)
throws StandardException,
java.text.ParseException
str - the timestamp string, with trailing blanks removed.
java.text.ParseException - If the string is not a valid timestamp.
StandardException
static int[] parseDateOrTimestamp(DateTimeParser parser,
boolean timeRequired)
throws StandardException
parser - a DateTimeParser initialized with a string.timeRequired - If true then an error will be thrown if the time is missing. If false then the time may
be omitted.
StandardException - if the syntax is incorrect for an IBM standard timestamp.
public void setValue(java.lang.Object theValue)
throws StandardException
DataValueDescriptor
setValue in interface DataValueDescriptorsetValue in class DataTypeStandardExceptionDataValueDescriptor.setValue(java.lang.Object)
protected void setFrom(DataValueDescriptor theValue)
throws StandardException
setFrom in class DataTypeStandardException
public void setValue(java.sql.Date value,
java.util.Calendar cal)
throws StandardException
DataValueDescriptor
setValue in interface DataValueDescriptorsetValue in class DataTypevalue - The Date value to set this DataValueDescriptor tocal - The time zone from the calendar is used to construct the database date value
StandardExceptionWhen converting from a date to a timestamp, time is set to 00:00:00.0
public void setValue(java.sql.Time value,
java.util.Calendar cal)
throws StandardException
DataValueDescriptor
setValue in interface DataValueDescriptorsetValue in class DataTypevalue - The Time value to set this DataValueDescriptor tocal - The time zone from the calendar is used to construct the database time value
StandardExceptionDataValueDescriptor.setValue(java.lang.Object)
public void setValue(java.sql.Timestamp value,
java.util.Calendar cal)
throws StandardException
DataValueDescriptor
setValue in interface DataValueDescriptorsetValue in class DataTypevalue - The Timestamp value to set this DataValueDescriptor tocal - The time zone from the calendar is used to construct the database timestamp value
StandardExceptionDataValueDescriptor.setValue(java.lang.Object)
public void setValue(java.lang.String theValue)
throws StandardException
DataValueDescriptor
setValue in interface DataValueDescriptorsetValue in class DataTypetheValue - The BigDecimal value to set this DataValueDescriptor to
StandardException
public NumberDataValue getYear(NumberDataValue result)
throws StandardException
DateTimeDataValue
getYear in interface DateTimeDataValueresult - The result of the previous call to this method, null
if not called yet.
StandardException - Thrown on errorDateTimeDataValue.getYear(org.apache.derby.iapi.types.NumberDataValue)
public NumberDataValue getMonth(NumberDataValue result)
throws StandardException
DateTimeDataValue
getMonth in interface DateTimeDataValueresult - The result of the previous call to this method, null
if not called yet.
StandardException - Thrown on errorDateTimeDataValue.getMonth(org.apache.derby.iapi.types.NumberDataValue)
public NumberDataValue getDate(NumberDataValue result)
throws StandardException
DateTimeDataValue
getDate in interface DateTimeDataValueresult - The result of the previous call to this method, null
if not called yet.
StandardException - Thrown on errorDateTimeDataValue.getDate(org.apache.derby.iapi.types.NumberDataValue)
public NumberDataValue getHours(NumberDataValue result)
throws StandardException
DateTimeDataValue
getHours in interface DateTimeDataValueresult - The result of the previous call to this method, null
if not called yet.
StandardException - Thrown on errorDateTimeDataValue.getHours(org.apache.derby.iapi.types.NumberDataValue)
public NumberDataValue getMinutes(NumberDataValue result)
throws StandardException
DateTimeDataValue
getMinutes in interface DateTimeDataValueresult - The result of the previous call to this method, null
if not called yet.
StandardException - Thrown on errorDateTimeDataValue.getMinutes(org.apache.derby.iapi.types.NumberDataValue)
public NumberDataValue getSeconds(NumberDataValue source)
throws StandardException
DateTimeDataValue
getSeconds in interface DateTimeDataValuesource - The result of the previous call to this method, null
if not called yet.
StandardException - Thrown on errorDateTimeDataValue.getSeconds(org.apache.derby.iapi.types.NumberDataValue)public java.lang.String toString()
public int hashCode()
public int typePrecedence()
DataValueDescriptor
typePrecedence in interface DataValueDescriptortypePrecedence in class DataTypeDataValueDescriptor.typePrecedence()public final boolean isNull()
isNull in interface Storablepublic java.sql.Timestamp getTimestamp(java.util.Calendar cal)
getTimestamp in interface DataValueDescriptorgetTimestamp in class DataTypecal - calendar for object creation
protected java.sql.Timestamp newTimestamp(java.util.Calendar currentCal)
private void setCalendar(java.util.Calendar cal)
private void setNumericTimestamp(java.sql.Timestamp value,
java.util.Calendar cal)
throws StandardException
StandardException
protected java.lang.String getNationalString(LocaleFinder localeFinder)
throws StandardException
getNationalString in class DataTypeStandardException - Thrown on error
private static int computeEncodedDate(java.util.Date value,
java.util.Calendar currentCal)
throws StandardException
value - the value to convert
StandardException
private static int computeEncodedTime(java.util.Date value,
java.util.Calendar currentCal)
throws StandardException
value - the value to convert
StandardException
public void setInto(java.sql.PreparedStatement ps,
int position)
throws java.sql.SQLException,
StandardException
DataValueDescriptor
setInto in interface DataValueDescriptorsetInto in class DataTypejava.sql.SQLException
StandardException
public static DateTimeDataValue computeTimestampFunction(DataValueDescriptor operand,
DataValueFactory dvf)
throws StandardException
StandardException
static int parseDateTimeInteger(java.lang.String str,
int start,
int ndigits)
throws StandardException
StandardException
public DateTimeDataValue timestampAdd(int intervalType,
NumberDataValue count,
java.sql.Date currentDate,
DateTimeDataValue resultHolder)
throws StandardException
timestampAdd in interface DateTimeDataValueintervalType - One of FRAC_SECOND_INTERVAL, SECOND_INTERVAL, MINUTE_INTERVAL, HOUR_INTERVAL,
DAY_INTERVAL, WEEK_INTERVAL, MONTH_INTERVAL, QUARTER_INTERVAL, or YEAR_INTERVALcurrentDate - Used to convert time to timestampresultHolder - If non-null a DateTimeDataValue that can be used to hold the result. If null then
generate a new holdercount - The number of intervals to add
StandardException
private void addInternal(int calIntervalType,
int count,
SQLTimestamp tsResult)
throws StandardException
StandardException
public NumberDataValue timestampDiff(int intervalType,
DateTimeDataValue time1,
java.sql.Date currentDate,
NumberDataValue resultHolder)
throws StandardException
timestampDiff in interface DateTimeDataValueintervalType - One of FRAC_SECOND_INTERVAL, SECOND_INTERVAL, MINUTE_INTERVAL, HOUR_INTERVAL,
DAY_INTERVAL, WEEK_INTERVAL, MONTH_INTERVAL, QUARTER_INTERVAL, or YEAR_INTERVALtime1 - currentDate - Used to convert time to timestampresultHolder - If non-null a NumberDataValue that can be used to hold the result. If null then
generate a new holder
StandardException
static SQLTimestamp promote(DateTimeDataValue dateTime,
java.sql.Date currentDate)
throws StandardException
StandardException
|
Built on Tue 2006-10-10 19:23:47+0200, from revision exported | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||