|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.mmbase.storage.search.implementation.database.BasicSqlHandler
org.mmbase.storage.search.implementation.database.PostgreSqlSqlHandler
public class PostgreSqlSqlHandler
The PostgreSQL query handler, implements SqlHandler
for standard PostgreSql functionality.
Derived from 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 Summary | |
|---|---|
PostgreSqlSqlHandler()
Constructor. |
|
| Method Summary | |
|---|---|
protected void |
appendDateField(StringBuilder sb,
Step step,
String fieldName,
boolean multipleSteps,
int datePart)
date time functions |
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. |
| Methods inherited from class org.mmbase.storage.search.implementation.database.BasicSqlHandler |
|---|
appendCompositeConstraintToSql, appendConstraintToSql, appendDateValue, appendField, appendField, appendField, appendFieldValue, appendLowerField, appendPreField, appendQueryBodyToSql, appendRelationConstraints, appendSortOrderDirection, appendSortOrderField, appendSortOrders, appendTableAlias, forceEncode, getAllowedValue, getSupportLevel, toSqlString |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.mmbase.storage.search.implementation.database.SqlHandler |
|---|
appendConstraintToSql, appendQueryBodyToSql, getAllowedValue, getSupportLevel |
| Constructor Detail |
|---|
public PostgreSqlSqlHandler()
| Method Detail |
|---|
public int getSupportLevel(int feature,
SearchQuery query)
throws SearchQueryException
SqlHandler
getSupportLevel in interface SqlHandlergetSupportLevel in class BasicSqlHandlerSearchQueryExceptionprotected boolean useLower(FieldConstraint constraint)
BasicSqlHandler
useLower in class BasicSqlHandler
protected StringBuilder appendLikeOperator(StringBuilder sb,
FieldConstraint constraint)
BasicSqlHandler
appendLikeOperator in class BasicSqlHandler
protected StringBuilder appendSortOrderField(StringBuilder sb,
SortOrder sortOrder,
boolean multipleSteps,
SearchQuery query)
appendSortOrderField in class BasicSqlHandler
protected StringBuilder appendRegularExpressionOperator(StringBuilder sb,
FieldConstraint constraint)
appendRegularExpressionOperator in class BasicSqlHandler
protected void appendDateField(StringBuilder sb,
Step step,
String fieldName,
boolean multipleSteps,
int datePart)
appendDateField in class BasicSqlHandler
public String toSql(SearchQuery query,
SqlHandler firstInChain)
throws SearchQueryException
SqlHandler
toSql 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.
- Returns:
- SQL string representation of the query.
- Throws:
SearchQueryException
protected void appendTableName(StringBuilder sb,
Step step)
appendTableName in class BasicSqlHandlerBasicSqlHandler.appendTableName(java.lang.StringBuilder, org.mmbase.storage.search.Step)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||