PostgreSQL Adapter Project - Extending SQLSchemaManager

From CDOT Wiki
Revision as of 15:10, 21 January 2011 by AnastasiaS (talk | contribs) (Task Summary)
Jump to: navigation, search

PostgreSQL Adapter for NexJ - Extending SQL Schema Manager

  • SQLSchemaManager is used in maintaining database schemas (DDL)

Task Summary

Task Status Test Status
Extend SQLSchemaManager to support PostgreSQL DONE DONE
Research and add Maximum column Precision DONE
Figure out Data Type Mapping DONE
Implement appendColumnType() method DONE
Implement appendConcatenate() method DONE
Implement appendPrint() method DONE
Implement appendUpgradeStepEnd() method
Implement appendUpgradeStepStart() method
Implement appendTSExtract() method DONE
Add appendTSField method
*NOTE: This method is used in appendTSExtract() method, and it is quite similar to the one in MySQL. (Suggest to NexJ to add it to the super class
DONE
Implement appendTSIncrement() method
Implement getCreateEtcScriptName() method DONE
Implement getDefaultIndexspace() method DONE
Implement getDefaultLongspace() method DONE DONE
Implement getDefaultTablespace() method DONE
Implement getDropEtcScriptName() method
Implement getDynamicSQLAppender() method
Implement getGUIDExpr() method
Implement getNowExpr() method DONE
Implement getSeparator() method DONE
Implement getSetupEtcScriptName() method DONE
Override renameTable[1]
Override renameColumn[2]
Override renameIndex[3]
Override getIndexName() DONE

Task Details

Extend SQLSchemaManager to support PostgreSQL

Create a new class PostgreSQLSchemaManager by extending SQLSchemaManager and implementing all necessary abstract classes

Research and add Maximum column Precision

Following are the Maximum column precisions we might need to establish:
(All constants are defined in PostgreSQLAdapter class)

  • DEFAULT_FETCH_SIZE
  • MAX_CHAR_PRECISION
  • MAX_VARCHAR_PRECISION
  • MAX_BINARY_PRECISION
  • MAX_VARBINARY_PRECISION
  • MAX_REAL_PRECISION
  • TIMESTAMP_FORMAT_SQL
  • TIMESTAMP_FORMAT

Figure out Data Type Mapping

http://www.postgresql.org/docs/current/static/datatype.html

  • Go over all data types offered in PostgreSQL
  • Map types defined in Primitive class

Implement appendColumnType() method

This method appends a table column type declaration to a string buffer.

  • use logic and mapping to append required column data types to incoming string.
  • Test it

References

SQL Commands supported by PostgreSQL