@Translator(name="phoenix", description="A translator for Phoenix/HBase") public class PhoenixExecutionFactory extends JDBCExecutionFactory
JDBCExecutionFactory.StructRetrieval
ExecutionFactory.Format, ExecutionFactory.NullOrder, ExecutionFactory.SupportedJoinCriteria, ExecutionFactory.TransactionSupport
Modifier and Type | Field and Description |
---|---|
static String |
PHOENIX |
static Version |
V_4_8 |
DEFAULT_MAX_DEPENDENT_PREDICATES, DEFAULT_MAX_IN_CRITERIA, DEFAULT_TIME_ZONE, dialect
DEFAULT_MAX_FROM_GROUPS, DEFAULT_MAX_IN_CRITERIA_SIZE, DEFAULT_MAX_PROJECTED_COLUMNS
Constructor and Description |
---|
PhoenixExecutionFactory() |
Modifier and Type | Method and Description |
---|---|
void |
bindValue(PreparedStatement pstmt,
Object param,
Class<?> paramType,
int i)
Sets prepared statement parameter i with param.
|
protected JDBCMetadataProcessor |
createMetadataProcessor() |
JDBCUpdateExecution |
createUpdateExecution(Command command,
ExecutionContext executionContext,
RuntimeMetadata metadata,
Connection conn) |
Character |
getRequiredLikeEscape()
The required escape character or null if all are supported.
|
PhoenixSQLConversionVisitor |
getSQLConversionVisitor()
Create the
SQLConversionVisitor that will perform translation. |
List<String> |
getSupportedFunctions()
Get list of all supported function names.
|
void |
initCapabilities(Connection connection)
Will be called by
ExecutionFactory.start() with a null connection if a source connection is not ExecutionFactory.isSourceRequiredForCapabilities() |
Object |
retrieveValue(ResultSet results,
int columnIndex,
Class<?> expectedType)
The Phoenix driver has issues using a calendar object.
|
void |
start()
Initialize the connector with supplied configuration
|
boolean |
supportsInsertWithQueryExpression()
|
boolean |
supportsRowLimit()
Gets whether the connector can limit the number of rows returned by a query.
|
boolean |
supportsRowOffset()
Gets whether the connector supports a SQL clause (similar to the LIMIT with an offset) that can return
result sets that start in the middle of the resulting rows returned by a query
|
boolean |
supportsScalarSubqueryProjection()
If a scalar subquery can be projected.
|
boolean |
supportsUpsert() |
List<?> |
translate(LanguageObject obj,
ExecutionContext context)
Adding a specific workaround for just Pheonix and BigDecimal.
|
List<?> |
translateCommand(Command command,
ExecutionContext context)
Return a List of translated parts (
LanguageObject s and Objects), or null
if to rely on the default translation. |
List<?> |
translateLimit(Limit limit,
ExecutionContext context)
Return a List of translated parts (
LanguageObject s and Objects), or null
if to rely on the default translation. |
String |
translateLiteralBoolean(Boolean booleanValue)
Subclasses should override this method to provide a different sql translation
of the literal boolean value.
|
String |
translateLiteralDate(Date dateValue)
It doesn't appear that the time component is needed, but for consistency with their
documentation, we'll add it.
|
String |
translateLiteralTime(Time timeValue)
A date component is required, so create a new Timestamp instead
|
String |
translateLiteralTimestamp(Timestamp timestampValue)
Subclasses should override this method to provide a different sql translation
of the literal timestamp value.
|
protected boolean |
usesDatabaseVersion() |
addSourceComment, afterInitialConnectionObtained, closeConnection, convertObject, createDirectExecution, createProcedureExecution, createResultSetExecution, createTempTable, executeStoredProcedure, formatDateValue, formatDateValue, getCommentFormat, getConnection, getCreateTemporaryTablePostfix, getCreateTemporaryTableString, getCreateTempTableSQL, getDatabaseCalendar, getDatabaseTimeZone, getDatabaseVersion, getDefaultNullOrder, getDefaultSupportedFunctions, getDialect, getFunctionModifiers, getHibernateDialectClassName, getLateralKeyword, getLikeRegexString, getMaxPreparedInsertBatchSize, getMetadata, getMetadataProcessor, getRemovePushdownCharacters, getSetOperationString, getSourceComment, getStructRetrieval, getTemporaryTableName, getTimestampNanoPrecision, getVersion, hasTimeType, intializeConnectionAfterCancel, isCharacterType, isDefaultTimeZone, isEnableDependentJoins, isExtendedAscii, isNonAscii, isNonAscii, isNonAsciiFunction, isSourceRequired, isSourceRequiredForCapabilities, isTrimStrings, loadedTemporaryTable, obtainedConnection, registerFunctionModifier, registerSpecificTypeOfOutParameter, replaceElementName, retrieveGeographyValue, retrieveGeographyValue, retrieveGeometryValue, retrieveGeometryValue, retrieveValue, setCommentFormat, setDatabaseTimeZone, setDatabaseVersion, setDatabaseVersion, setEnableDependentJoins, setFetchSize, setMaxPreparedInsertBatchSize, setRemovePushdownCharacters, setStructRetrieval, setTrimStrings, setUseBindingsForDependentJoin, setUseBindVariables, setUseCommentsInSourceQuery, supportsAggregatesAvg, supportsAggregatesCount, supportsAggregatesCountStar, supportsAggregatesDistinct, supportsAggregatesMax, supportsAggregatesMin, supportsAggregatesSum, supportsAliasedTable, supportsBatchedUpdates, supportsBooleanExpressions, supportsBulkUpdate, supportsCompareCriteriaEquals, supportsCompareCriteriaOrdered, supportsCorrelatedSubqueries, supportsDependentJoins, supportsExistsCriteria, supportsFullDependentJoins, supportsGeneratedKeys, supportsGeneratedKeys, supportsGroupBy, supportsHaving, supportsInCriteria, supportsInCriteriaSubquery, supportsInlineViews, supportsIsNullCriteria, supportsLikeCriteria, supportsLikeCriteriaEscapeCharacter, supportsNotCriteria, supportsOrCriteria, supportsOrderByUnrelated, supportsQuantifiedCompareCriteriaAll, supportsQuantifiedCompareCriteriaSome, supportsScalarSubqueries, supportsSearchedCaseExpressions, supportsSelectExpression, supportsSelfJoins, supportsSetQueryOrderBy, supportsUnions, tempTableRequiresTransaction, translateGeographyLiteral, translateGeographyParameter, translateGeographySelect, translateGeometryLiteral, translateGeometryParameter, translateGeometrySelect, translateLiteralBinaryType, useAsInGroupAlias, useBindingsForDependentJoin, useBindVariables, useColumnNamesForGeneratedKeys, useCommentsInSourceQuery, useNBindingType, useParensForJoins, useParensForSetQueries, usePreparedStatements, useScientificNotation, useSelectLimit, useStreamsForLobs, useUnicodePrefix, useWithRollup
addPushDownFunction, areLobsUsableAfterClose, createExecution, getCacheDirective, getCollationLocale, getConnection, getDirectQueryProcedureName, getExcludedCommonTableExpressionName, getInstance, getLanguageFactory, getMaxDependentInPredicates, getMaxFromGroups, getMaxInCriteriaSize, getMaxProjectedColumns, getNativeQueryProcedureName, getPushDownFunctions, getSupportedJoinCriteria, getTransactionSupport, getTypeFacility, isCopyLobs, isForkable, isImmutable, isSourceRequiredForMetadata, isThreadBound, requiresCriteria, returnsSingleUpdateCount, setCollationLocale, setCopyLobs, setDirectQueryProcedureName, setExcludedCommonTableExpressionName, setImmutable, setMaxDependentInPredicates, setMaxInCriteriaSize, setNativeQueryProcedureName, setRequiresCriteria, setSourceRequired, setSourceRequiredForMetadata, setSupportedJoinCriteria, setSupportsDirectQueryProcedure, setSupportsFullOuterJoins, setSupportsInnerJoins, setSupportsNativeQueries, setSupportsOrderBy, setSupportsOuterJoins, setSupportsSelectDistinct, setThreadBound, setTransactionSupport, supportsAdvancedOlapOperations, supportsAggregatesCountBig, supportsAggregatesEnhancedNumeric, supportsArrayAgg, supportsArrayType, supportsCommonTableExpressions, supportsCompareCriteriaOrderedExclusive, supportsConvert, supportsCorrelatedSubqueryLimit, supportsDirectQueryProcedure, supportsElementaryOlapOperations, supportsExcept, supportsFormatLiteral, supportsFullOuterJoins, supportsFunctionsInGroupBy, supportsGeographyType, supportsGroupByMultipleDistinctAggregates, supportsGroupByRollup, supportsInnerJoins, supportsIntersect, supportsIsDistinctCriteria, supportsLateralJoin, supportsLateralJoinCondition, supportsLikeRegex, supportsListAgg, supportsMultipleOpenExecutions, supportsNativeQueries, supportsOnlyCorrelatedSubqueries, supportsOnlyFormatLiterals, supportsOnlyLateralJoinProcedure, supportsOnlyLiteralComparison, supportsOnlySingleTableGroupBy, supportsOnlyTimestampAddLiteral, supportsOrderBy, supportsOrderByNullOrdering, supportsOrderByWithExtendedGrouping, supportsOuterJoins, supportsPartialFiltering, supportsProcedureTable, supportsRecursiveCommonTableExpressions, supportsSelectDistinct, supportsSelectExpressionArrayType, supportsSelectWithoutFrom, supportsSetQueryLimitOffset, supportsSimilarTo, supportsStringAgg, supportsSubqueryCommonTableExpressions, supportsSubqueryInOn, supportsWindowDistinctAggregates, supportsWindowFrameClause, supportsWindowFunctionCumeDist, supportsWindowFunctionNthValue, supportsWindowFunctionNtile, supportsWindowFunctionPercentRank, supportsWindowOrderByWithAggregates, useAnsiJoin
public void start() throws TranslatorException
ExecutionFactory
start
in class JDBCExecutionFactory
TranslatorException
public List<String> getSupportedFunctions()
ExecutionFactory
getSupportedFunctions
in class JDBCExecutionFactory
for a listing of system pushdown functions. Note that
not all system functions are listed as some functions will use a common name
such as CONCAT vs. the || operator, and other functions will be rewritten and
not pushed down, such as SPACE.
Note: User defined functions should be specified fully qualified.
public void initCapabilities(Connection connection) throws TranslatorException
ExecutionFactory
ExecutionFactory.start()
with a null connection if a source connection is not ExecutionFactory.isSourceRequiredForCapabilities()
initCapabilities
in class JDBCExecutionFactory
TranslatorException
public JDBCUpdateExecution createUpdateExecution(Command command, ExecutionContext executionContext, RuntimeMetadata metadata, Connection conn) throws TranslatorException
createUpdateExecution
in class JDBCExecutionFactory
TranslatorException
public PhoenixSQLConversionVisitor getSQLConversionVisitor()
JDBCExecutionFactory
SQLConversionVisitor
that will perform translation. Typical custom
JDBC connectors will not need to create custom conversion visitors, rather implementors
should override existing JDBCExecutionFactory
methods.getSQLConversionVisitor
in class JDBCExecutionFactory
SQLConversionVisitor
public void bindValue(PreparedStatement pstmt, Object param, Class<?> paramType, int i) throws SQLException
JDBCExecutionFactory
bindValue
in class JDBCExecutionFactory
SQLException
public boolean supportsInsertWithQueryExpression()
ExecutionFactory
SetQuery
or Select
supportsInsertWithQueryExpression
in class JDBCExecutionFactory
public String translateLiteralBoolean(Boolean booleanValue)
JDBCExecutionFactory
'0'
or '1'
.translateLiteralBoolean
in class JDBCExecutionFactory
booleanValue
- Boolean value, never nullpublic List<?> translate(LanguageObject obj, ExecutionContext context)
translate
in class JDBCExecutionFactory
public String translateLiteralDate(Date dateValue)
translateLiteralDate
in class JDBCExecutionFactory
dateValue
- Date value, never nullpublic String translateLiteralTime(Time timeValue)
translateLiteralTime
in class JDBCExecutionFactory
timeValue
- Time value, never nullpublic String translateLiteralTimestamp(Timestamp timestampValue)
JDBCExecutionFactory
{ts '2002-12-31 23:59:59'}
.
See JDBCExecutionFactory.getTimestampNanoPrecision()
to control the literal
precision.translateLiteralTimestamp
in class JDBCExecutionFactory
timestampValue
- Timestamp value, never nullpublic Object retrieveValue(ResultSet results, int columnIndex, Class<?> expectedType) throws SQLException
retrieveValue
in class JDBCExecutionFactory
SQLException
protected JDBCMetadataProcessor createMetadataProcessor()
createMetadataProcessor
in class JDBCExecutionFactory
JDBCExecutionFactory.getMetadataProcessor()
public Character getRequiredLikeEscape()
ExecutionFactory
getRequiredLikeEscape
in class ExecutionFactory<DataSource,Connection>
public List<?> translateCommand(Command command, ExecutionContext context)
JDBCExecutionFactory
LanguageObject
s and Objects), or null
if to rely on the default translation.translateCommand
in class JDBCExecutionFactory
public List<?> translateLimit(Limit limit, ExecutionContext context)
JDBCExecutionFactory
LanguageObject
s and Objects), or null
if to rely on the default translation.translateLimit
in class JDBCExecutionFactory
public boolean supportsRowLimit()
ExecutionFactory
supportsRowLimit
in class ExecutionFactory<DataSource,Connection>
public boolean supportsScalarSubqueryProjection()
ExecutionFactory
supportsScalarSubqueryProjection
in class ExecutionFactory<DataSource,Connection>
public boolean supportsUpsert()
supportsUpsert
in class ExecutionFactory<DataSource,Connection>
protected boolean usesDatabaseVersion()
usesDatabaseVersion
in class JDBCExecutionFactory
public boolean supportsRowOffset()
ExecutionFactory
supportsRowOffset
in class ExecutionFactory<DataSource,Connection>
Copyright © 2019. All rights reserved.