public class PostgreSqlSqlHandler extends BasicSqlHandler implements SqlHandler
SqlHandler
for standard PostgreSql functionality.
BasicSqlHandler, overrides
toSql(), implements FEATURE_MAX_NUMBER and FEATURE_OFFSET, by adding a construct like "LIMIT 20" or
"LIMIT 20 OFFSET 80" after the body, when appropriate.
getSupportLevel(int,SearchQuery),
returns SUPPORT_OPTIMAL for these features, delegates to the superclass for
other features.
| Constructor and Description |
|---|
PostgreSqlSqlHandler()
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
appendDateField(StringBuilder sb,
Step step,
String fieldName,
boolean multipleSteps,
int datePart)
|
protected StringBuilder |
appendLikeOperator(StringBuilder sb,
FieldConstraint constraint)
Appends the 'LIKE' operator for the given case sensitiviy.
|
protected StringBuilder |
appendRegularExpressionOperator(StringBuilder sb,
FieldConstraint constraint) |
protected StringBuilder |
appendSortOrderField(StringBuilder sb,
SortOrder sortOrder,
boolean multipleSteps,
SearchQuery query)
Normally, Postgresql does not sort case senstively, so we should not sort on
UPPER(fieldname).
|
protected void |
appendTableName(StringBuilder sb,
Step step)
Optimizes postgresql queries by adding the ONLY keyword to a relation-table, provided that the
role was given (and therefor the selection only applies to the given table).
|
int |
getSupportLevel(int feature,
SearchQuery query)
Gets the level at which a feature is supported for a query
by this handler.
|
String |
toSql(SearchQuery query,
SqlHandler firstInChain)
Represents a SearchQuery object as a string in SQL format,
using the database configuration.
|
protected boolean |
useLower(FieldConstraint constraint)
Wether the 'LOWER' function needs to be used to implement case insensitivity.
|
appendCompositeConstraintToSql, appendConstraintToSql, appendDateValue, appendField, appendField, appendField, appendFieldValue, appendLowerField, appendPreField, appendQueryBodyToSql, appendRelationConstraints, appendSortOrderDirection, appendSortOrderField, appendSortOrders, appendTableAlias, forceEncode, getAllowedValue, getSupportLevel, toSqlStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitappendConstraintToSql, appendQueryBodyToSql, getAllowedValue, getSupportLevelpublic int getSupportLevel(int feature,
SearchQuery query)
throws SearchQueryException
SqlHandlergetSupportLevel in interface SqlHandlergetSupportLevel in class BasicSqlHandlerSearchQueryExceptionprotected boolean useLower(FieldConstraint constraint)
BasicSqlHandleruseLower in class BasicSqlHandlerprotected StringBuilder appendLikeOperator(StringBuilder sb, FieldConstraint constraint)
BasicSqlHandlerappendLikeOperator in class BasicSqlHandlerprotected StringBuilder appendSortOrderField(StringBuilder sb, SortOrder sortOrder, boolean multipleSteps, SearchQuery query)
appendSortOrderField in class BasicSqlHandlerprotected StringBuilder appendRegularExpressionOperator(StringBuilder sb, FieldConstraint constraint)
appendRegularExpressionOperator in class BasicSqlHandlerprotected void appendDateField(StringBuilder sb, Step step, String fieldName, boolean multipleSteps, int datePart)
appendDateField in class BasicSqlHandlerpublic String toSql(SearchQuery query, SqlHandler firstInChain) throws SearchQueryException
SqlHandlertoSql in interface SqlHandlertoSql in class BasicSqlHandlerquery - The searchquery.firstInChain - The first element in the chain of handlers.
At some point appendQueryBodyToSql() will have
to be called on this handler, to generate the body of the query.SearchQueryExceptionprotected void appendTableName(StringBuilder sb, Step step)
appendTableName in class BasicSqlHandlerBasicSqlHandler.appendTableName(java.lang.StringBuilder, org.mmbase.storage.search.Step)MMBase 1.9-SNAPSHOT - ${javadoctimestamp}