public class GenericSqlDialect extends java.lang.Object implements SqlDialect
Any type specific behavior should be put in a database specific Dialect class, and added to SqlType for the correct type's getDialect().
Copyright 2009 Partner Software, Inc.
| Constructor and Description |
|---|
GenericSqlDialect() |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
addColumn(java.lang.String tableName,
CogStructureField newField,
CogType newFieldType)
Returns complete Sql to add a column.
|
java.lang.String |
alterColumn(java.lang.String tableName,
CogStructureField newField,
CogType newFieldType)
Returns complete Sql to alter a column.
|
java.lang.String |
cogTypeToSqlType(CogType type)
Helper for converting from a CogType to a Sql flavor specific data type.
|
java.lang.String |
createTable(CogSchema schema,
CogStructureType tableType)
Returns complete Sql create table statement.
|
java.lang.String |
createTableFromSelect(CogSchema schema,
java.lang.String createTableName,
DataRecordQuery query,
CogStructureType queryTableType)
Returns complete Sql statement for creating a table as a select from another existing table.
|
java.lang.Object |
dbToObject(java.lang.String ogValueType,
java.lang.Object dbValue)
Converts and returns the passed Object, as stored in database.
|
java.lang.String |
describeTable(java.lang.String tableName,
java.lang.String databaseName)
Returns sql for describing a table.
|
java.lang.String |
describleTableColumnKey()
Returns key name for column name found in describe table
ResultSet |
java.lang.String |
describleTableTypeKey()
Returns key name for column type found in describe table
ResultSet |
java.lang.String |
dropColumn(java.lang.String tableName,
java.lang.String fieldName)
Returns complete Sql to drop a column.
|
protected java.lang.String |
handleSorts(java.util.List<DataFilterSort> sorts)
Helper method.
|
boolean |
isAlterColumnSupported()
Returns
true if columns can be altered. |
boolean |
isDescribeTableSupported()
Returns true if this flavor of sql supports describe table
via sql statments.
|
boolean |
isListDatabasesSupported()
Returns true if this flavor of sql supports list databases
via sql statements.
|
boolean |
isListTablesSupported()
Returns true if this flavor of sql supports list tables
via sql statements.
|
java.lang.String |
listDatabases()
Returns sql for listing databases
If
isDescribeTableSupported() returns false, should
throw an UnsupportedOperationException |
protected java.lang.String |
listFields(java.util.List<java.lang.String> fields)
Helper method.
|
java.lang.String |
listTables(java.lang.String tableName)
Returns sql for listing table names in database.
|
java.lang.Object |
objectToDb(java.lang.String fieldValueType,
java.lang.Object value)
Converts the passed
Object of passed value type into database
specific equivalent. |
java.lang.String |
objectToDbSql(java.lang.String fieldValueType,
java.lang.Object value)
Converts passed
Object of passed value type into database equivalent
sql and returns. |
protected java.lang.String |
parseFilter(DataFilterExpression filter,
CogStructureType type)
Recursive helper for parsing DataFilterExpressions into
sql.
|
java.lang.String |
renameTable(java.lang.String originalName,
java.lang.String renamedName)
Returns Sql for renaming a given table to another.
|
java.lang.String |
selectSql(DataRecordQuery query,
CogStructureType tableType)
Returns complete Sql select statement.
|
java.lang.String |
sqlTypeToCogType(java.lang.String sqlType)
Helper for converting from a Sql data type to a Cog value type.
|
protected java.lang.String parseFilter(DataFilterExpression filter, CogStructureType type)
filter - - DataFilterExpression to parse for Sql.type - - CogStructureType defining the fields in filter.public java.lang.Object objectToDb(java.lang.String fieldValueType,
java.lang.Object value)
SqlDialectObject of passed value type into database
specific equivalent.
Ex. Dates may be stored as Numbers or Strings.
objectToDb in interface SqlDialectfieldValueType - - CogStructureField value type for this field.value - - Value to covert database Objectpublic java.lang.String objectToDbSql(java.lang.String fieldValueType,
java.lang.Object value)
SqlDialectObject of passed value type into database equivalent
sql and returns. Includes quotes if applicable.
By default, should return SqlLib.convertToStringAndQuote(Object)
objectToDbSql in interface SqlDialectfieldValueType - - CogStructureField value type of value.value - - value to convert to sqlpublic java.lang.String cogTypeToSqlType(CogType type)
SqlDialectcogTypeToSqlType in interface SqlDialecttype - - CogType to convert to Sql type.public java.lang.String sqlTypeToCogType(java.lang.String sqlType)
SqlDialectsqlTypeToCogType in interface SqlDialectsqlType - - String representing sql type (ie, varchar(255))public boolean isAlterColumnSupported()
SqlDialecttrue if columns can be altered.isAlterColumnSupported in interface SqlDialecttrue if columns can be altered.public java.lang.String renameTable(java.lang.String originalName,
java.lang.String renamedName)
SqlDialectrenameTable in interface SqlDialectoriginalName - - Original table name to renamerenamedName - - Name to rename to.protected java.lang.String listFields(java.util.List<java.lang.String> fields)
fields - public java.lang.Object dbToObject(java.lang.String ogValueType,
java.lang.Object dbValue)
SqlDialect
This should reverse any flavor specific conversion done in SqlDialect.objectToDb(String, Object)
dbToObject in interface SqlDialectogValueType - - Original Cog value type name.dbValue - - Value from databaseprotected java.lang.String handleSorts(java.util.List<DataFilterSort> sorts)
sorts - public java.lang.String selectSql(DataRecordQuery query, CogStructureType tableType)
SqlDialectselectSql in interface SqlDialectquery - - Query describing select statement.tableType - - CogStructureType defining table. Type name is assumed to be table name.public java.lang.String createTableFromSelect(CogSchema schema, java.lang.String createTableName, DataRecordQuery query, CogStructureType queryTableType)
SqlDialectcreateTableFromSelect in interface SqlDialectschema - - Schema defining column types.createTableName - - Name of table to createquery - - DataRecordQuery to create fromqueryTableType - - CogStructureType defining table to be queried.public java.lang.String createTable(CogSchema schema, CogStructureType tableType)
SqlDialectcreateTable in interface SqlDialectschema - - Schema defining column types.tableType - - CogStructureType defining table. Type name is assumed to be table name.public java.lang.String addColumn(java.lang.String tableName,
CogStructureField newField,
CogType newFieldType)
SqlDialectaddColumn in interface SqlDialecttableName - - Name of table to add a column to.newField - - Field to add.newFieldType - - CogType of field to add.public java.lang.String alterColumn(java.lang.String tableName,
CogStructureField newField,
CogType newFieldType)
SqlDialectalterColumn in interface SqlDialecttableName - - Name of table to alter column in.newField - - Field to change.newFieldType - - CogType for the passed field.public java.lang.String dropColumn(java.lang.String tableName,
java.lang.String fieldName)
SqlDialectdropColumn in interface SqlDialecttableName - - Name of table to drop column from.fieldName - - Name of field to drop.public boolean isListTablesSupported()
SqlDialectisListTablesSupported in interface SqlDialectpublic boolean isDescribeTableSupported()
SqlDialectisDescribeTableSupported in interface SqlDialectpublic boolean isListDatabasesSupported()
SqlDialectisListDatabasesSupported in interface SqlDialectpublic java.lang.String listDatabases()
SqlDialectisDescribeTableSupported() returns false, should
throw an UnsupportedOperationExceptionlistDatabases in interface SqlDialectpublic java.lang.String listTables(java.lang.String tableName)
SqlDialectisListTablesSupported() returns false, throws
an UnsupportedOperationExceptionlistTables in interface SqlDialecttableName - - Name of database to list tables frompublic java.lang.String describeTable(java.lang.String tableName,
java.lang.String databaseName)
SqlDialectisDescribeTableSupported() returns false, throws
an UnsupportedOperationExceptiondescribeTable in interface SqlDialecttableName - - Name of table to describedatabaseName - - Name of database containing tablepublic java.lang.String describleTableColumnKey()
SqlDialectResultSetdescribleTableColumnKey in interface SqlDialectpublic java.lang.String describleTableTypeKey()
SqlDialectResultSetdescribleTableTypeKey in interface SqlDialect