|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.eigenbase.sql.SqlNode org.eigenbase.sql.SqlLiteral org.eigenbase.sql.SqlAbstractDateTimeLiteral
abstract class SqlAbstractDateTimeLiteral
A SQL literal representing a DATE, TIME or TIMESTAMP value.
Examples:
TIMESTAMP '1969-07-21 03:15 GMT'
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.eigenbase.sql.SqlLiteral |
---|
SqlLiteral.SqlSymbol |
Field Summary | |
---|---|
protected String |
formatString
|
protected boolean |
hasTimeZone
|
protected int |
precision
|
Fields inherited from class org.eigenbase.sql.SqlLiteral |
---|
value |
Fields inherited from class org.eigenbase.sql.SqlNode |
---|
emptyArray |
Constructor Summary | |
---|---|
protected |
SqlAbstractDateTimeLiteral(Calendar d,
boolean tz,
SqlTypeName typeName,
int precision,
String formatString,
SqlParserPos pos)
Constructs a datetime literal based on a Calendar. |
Method Summary | |
---|---|
RelDataType |
createSqlType(RelDataTypeFactory typeFactory)
|
Calendar |
getCal()
|
protected ZonelessDate |
getDate()
Converts this literal to a ZonelessDate object. |
int |
getPrec()
|
protected ZonelessTime |
getTime()
Converts this literal to a ZonelessTime object. |
protected ZonelessTimestamp |
getTimestamp()
Converts this literal to a ZonelessTimestamp object. |
TimeZone |
getTimeZone()
Returns timezone component of this literal. |
abstract String |
toFormattedString()
Returns e.g. |
abstract String |
toString()
Returns e.g. |
String |
toValue()
For calc program builder - value may be different than SqlLiteral.unparse(org.eigenbase.sql.SqlWriter, int, int)
Typical values:
Hello, world!
12.34
{null}
1969-04-29
|
void |
unparse(SqlWriter writer,
int leftPrec,
int rightPrec)
Writes a SQL representation of this node to a writer. |
Methods inherited from class org.eigenbase.sql.SqlLiteral |
---|
accept, bigDecimalValue, booleanValue, clone, createApproxNumeric, createBinaryString, createBinaryString, createBoolean, createCharString, createCharString, createDate, createExactNumeric, createInterval, createNegative, createNull, createSample, createSymbol, createTime, createTimestamp, createUnknown, equals, equalsDeep, getKind, getMonotonicity, getStringValue, getTypeName, getValue, hashCode, intValue, longValue, sampleValue, stringValue, symbolValue, unescapeUnicode, validate, valueMatchesType |
Methods inherited from class org.eigenbase.sql.SqlNode |
---|
clone, cloneArray, equalDeep, findValidOptions, getParserPosition, isA, toSqlString, toSqlString, validateExpr |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected final boolean hasTimeZone
protected final String formatString
protected final int precision
Constructor Detail |
---|
protected SqlAbstractDateTimeLiteral(Calendar d, boolean tz, SqlTypeName typeName, int precision, String formatString, SqlParserPos pos)
ZonelessTime
and ZonelessDate
semantics.
Method Detail |
---|
public int getPrec()
public String toValue()
SqlLiteral
SqlLiteral.unparse(org.eigenbase.sql.SqlWriter, int, int)
Typical values:
toValue
in class SqlLiteral
public Calendar getCal()
public TimeZone getTimeZone()
public abstract String toString()
DATE '1969-07-21'
.
toString
in class SqlNode
public abstract String toFormattedString()
1969-07-21
.
public RelDataType createSqlType(RelDataTypeFactory typeFactory)
createSqlType
in class SqlLiteral
public void unparse(SqlWriter writer, int leftPrec, int rightPrec)
SqlNode
The leftPrec
and rightPrec
parameters give
us enough context to decide whether we need to enclose the expression in
parentheses. For example, we need parentheses around "2 + 3" if preceded
by "5 *". This is because the precedence of the "*" operator is greater
than the precedence of the "+" operator.
The algorithm handles left- and right-associative operators by giving them slightly different left- and right-precedence.
If SqlWriter.isAlwaysUseParentheses()
is true, we use
parentheses even when they are not required by the precedence rules.
For the details of this algorithm, see SqlCall.unparse(org.eigenbase.sql.SqlWriter, int, int)
.
unparse
in class SqlLiteral
writer
- Target writerleftPrec
- The precedence of the SqlNode
immediately
preceding this node in a depth-first scan of the parse treerightPrec
- The precedence of the SqlNode
immediatelyprotected ZonelessDate getDate()
ZonelessDate
object.
protected ZonelessTime getTime()
ZonelessTime
object.
protected ZonelessTimestamp getTimestamp()
ZonelessTimestamp
object.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |