|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.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()
SqlLiteralSqlLiteral.unparse(org.eigenbase.sql.SqlWriter, int, int)
Typical values:
toValue in class SqlLiteralpublic Calendar getCal()
public TimeZone getTimeZone()
public abstract String toString()
DATE '1969-07-21'.
toString in class SqlNodepublic abstract String toFormattedString()
1969-07-21.
public RelDataType createSqlType(RelDataTypeFactory typeFactory)
createSqlType in class SqlLiteral
public void unparse(SqlWriter writer,
int leftPrec,
int rightPrec)
SqlNodeThe 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 SqlLiteralwriter - 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 | ||||||||