Package org.apache.calcite.sql
Class SqlCollation
- java.lang.Object
-
- org.apache.calcite.sql.SqlCollation
-
- All Implemented Interfaces:
java.io.Serializable
public class SqlCollation extends java.lang.Object implements java.io.Serializable
ASqlCollation
is an object representing aCollate
statement. It is immutable.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SqlCollation.Coercibility
A <character value expression> consisting of a column reference has the coercibility characteristic Implicit, with collating sequence as defined when the column was created.
-
Field Summary
Fields Modifier and Type Field Description private SqlCollation.Coercibility
coercibility
static SqlCollation
COERCIBLE
protected java.lang.String
collationName
static SqlCollation
IMPLICIT
protected java.util.Locale
locale
protected java.lang.String
strength
protected SerializableCharset
wrappedCharset
-
Constructor Summary
Constructors Constructor Description SqlCollation(java.lang.String collation, SqlCollation.Coercibility coercibility)
Creates a Collation by its name and its coercibilitySqlCollation(SqlCollation.Coercibility coercibility)
Creates a SqlCollation with the default collation name and the given coercibility.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(java.lang.Object o)
java.nio.charset.Charset
getCharset()
SqlCollation.Coercibility
getCoercibility()
protected static SqlCollation
getCoercibilityDyadic(SqlCollation col1, SqlCollation col2)
static java.lang.String
getCoercibilityDyadicComparison(SqlCollation col1, SqlCollation col2)
Returns the collating sequence (the collation name) to use for the resulting value of a comparison.static SqlCollation
getCoercibilityDyadicOperator(SqlCollation col1, SqlCollation col2)
Returns the collating sequence (the collation name) and the coercibility for the resulting value of a dyadic operator.static SqlCollation
getCoercibilityDyadicOperatorThrows(SqlCollation col1, SqlCollation col2)
Returns the collating sequence (the collation name) and the coercibility for the resulting value of a dyadic operator.java.lang.String
getCollationName()
int
hashCode()
java.lang.String
toString()
void
unparse(SqlWriter writer, int leftPrec, int rightPrec)
-
-
-
Field Detail
-
COERCIBLE
public static final SqlCollation COERCIBLE
-
IMPLICIT
public static final SqlCollation IMPLICIT
-
collationName
protected final java.lang.String collationName
-
wrappedCharset
protected final SerializableCharset wrappedCharset
-
locale
protected final java.util.Locale locale
-
strength
protected final java.lang.String strength
-
coercibility
private final SqlCollation.Coercibility coercibility
-
-
Constructor Detail
-
SqlCollation
public SqlCollation(java.lang.String collation, SqlCollation.Coercibility coercibility)
Creates a Collation by its name and its coercibility- Parameters:
collation
- Collation specificationcoercibility
- Coercibility
-
SqlCollation
public SqlCollation(SqlCollation.Coercibility coercibility)
Creates a SqlCollation with the default collation name and the given coercibility.- Parameters:
coercibility
- Coercibility
-
-
Method Detail
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
getCoercibilityDyadicOperator
public static SqlCollation getCoercibilityDyadicOperator(SqlCollation col1, SqlCollation col2)
Returns the collating sequence (the collation name) and the coercibility for the resulting value of a dyadic operator.- Parameters:
col1
- first operand for the dyadic operationcol2
- second operand for the dyadic operation- Returns:
- the resulting collation sequence. The "no collating sequence" result is returned as null.
- See Also:
SQL:1999 Part 2 Section 4.2.3 Table 2
-
getCoercibilityDyadicOperatorThrows
public static SqlCollation getCoercibilityDyadicOperatorThrows(SqlCollation col1, SqlCollation col2)
Returns the collating sequence (the collation name) and the coercibility for the resulting value of a dyadic operator.- Parameters:
col1
- first operand for the dyadic operationcol2
- second operand for the dyadic operation- Returns:
- the resulting collation sequence
- Throws:
CalciteException
- fromCalciteResource.invalidCompare(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
orCalciteResource.differentCollations(java.lang.String, java.lang.String)
if no collating sequence can be deduced- See Also:
SQL:1999 Part 2 Section 4.2.3 Table 2
-
getCoercibilityDyadicComparison
public static java.lang.String getCoercibilityDyadicComparison(SqlCollation col1, SqlCollation col2)
Returns the collating sequence (the collation name) to use for the resulting value of a comparison.- Parameters:
col1
- first operand for the dyadic operationcol2
- second operand for the dyadic operation- Returns:
- the resulting collation sequence. If no collating
sequence could be deduced throws a
CalciteResource.invalidCompare(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
- See Also:
SQL:1999 Part 2 Section 4.2.3 Table 3
-
getCoercibilityDyadic
protected static SqlCollation getCoercibilityDyadic(SqlCollation col1, SqlCollation col2)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
unparse
public void unparse(SqlWriter writer, int leftPrec, int rightPrec)
-
getCharset
public java.nio.charset.Charset getCharset()
-
getCollationName
public final java.lang.String getCollationName()
-
getCoercibility
public final SqlCollation.Coercibility getCoercibility()
-
-