Some of the following area's can be reused from the Azure MS SQL database code but should have each area tested and fixed if necessary. These are just guidelines.
Connection
Build core server driver with class information - CorePostgreSQLDriver as an example
Feature set - PostgresFeatureSet as an example
Server properties menus - PostgreSQLDriverUIFactory and PostgreSQLRegistrationUI as examples
General
Authentication
Type - DB
Location
Connection type?
Advanced
Connection pooling
Autocommit
Database specific parameters
Transaction Isolation Level
Driver
Driver property information metadata. Usually gotten from jdbc metadata
Connection column meta data - ConnectionMetaData
Column type initialization - AFTableColumnInit
Connection Properties - ConnectionProperties
Database identification
Read metadata
Versioning
Current schema queries
Current database selection
Quote identifiers
Build url with properties
Get and set properties
Server support menu - ServerInformationDialog
Connection Support - ConnectionSupport
Options
Query Analyzer ->new database->properties - See PlatOptions, PlatRegistration, OptionSettings and OptionSetting Defaults
Results formatting
Scripts
Quotes and comments
Registration defaults
Schema Tree - object nodes, model nodes
Build object extraction queries
Layout - object nodes, model nodes - DB2DatabasesNode as an example
Database(single or multi file for Interbase only)
Schema
Tables/Views
Columns
Sequences, Indexes, Triggers, Datatypes, Constraints, Procedures, Functions... other objects
Storage
Define database properties and build extraction code
Management
Define database properties and build extraction code
Security
Define database properties and build extraction code
Detail Window - HiveColumnsModel as an example.
Scripting(Table, Views, Sequences, Indexes, Triggers, Datatypes, Constraints, Procedures, Functions...other objects)
Define script syntax, system catalog dependencies and keywords
Schema browser "Script object to" Layout - object nodes->popup - DB2TablesNode.constructPopupMenu as an example. Define the functions in the popup.
Functional areas are Server script generator, Schema script generator, Script object to Query Analyzer, ERM script, Schema Compare, Visual editing preview
Build keyword extraction queries
Create extracts for scripts
Build script syntax for each object - ScriptTable, ScriptView as examples
Server script generator - See ServerScriptGenerator, ServerScriptGeneratorDialog
Schema script generator - See ScriptGeneratorDialog, ScriptGeneratorWorker
Visual Editing(Sized for Table and Views but need gui's for all objects for this database)
Create, Alter, Drop and Object Properties - See TableDialog
Define the object parameters
Build keyword extraction queries
Create menus for object parameters
Define and build preview scripting - See scripting above.
Query Analyzer Window
Keywords
Add keyword highlighting - SQLTeradataSyntax example
Auto completion
Build object extracts - formulate object scripting to window
Automate introduce - select, update, insert and delete
Research syntax
Auto Commit
Database and Schema dropdown
Max results - See PlatOptions, PlatRegistration
Auto-reconnect - See Querythread, ConnectionSupport
Query->Describe
Results Window
Specialized query result sets - See PlatResultsFormatPanel, QueryThread, AFScriptContext and ShellScriptContext
Table Data Editor
Database specific changes - see ExecuteEditThread, DataTableModel
Insert, update and delete statement syntax
Specialized column conversion from input
Import Data & Export tool
Add code for new import datatypes - See ImportThread, ImportExcelImportThread
Prepared statements for batch
Insert statements syntax
Specialized column conversion from input
Specialized database column output - See ExportThread
Entity Relationship modeler
Add versioning
Build datatype list for table and view properties - See EDatabaseType and EDatabaseDB2 as an example
Build relationship map
Constraints and Indexes
Build datatype conversion map
Model Conversion
Schema Compare
Add new schema objects to the selection - See SchemaObject
As listed in scripting section, will need to have all listed objects ddl scripted.
Visual Query Builder
Build extracts for tables and views - See DBEntityObject, DBObjectUtil
Update output sql syntax to support new database - See SQLBuilder, JoinHelper, JoinSyntaxSupport
Update feature set for this database - See CoreDBFeatureSet
Object Search
Build search extracts for all schema objects. See FindFrame and ObjectSearchctx
Fluidshell
Update import code based on gui import changes - See CoreLibImportThread, ShellScriptContext
AquaScript and Aqua Data Server
Support for new database under rdbms api and templates - CoreMetadata.java, ExportDatabaseToCSVTemplate.vm , SchemaCompareTemplate.vm
Test projects in studio and server
Scheduler
Test schedule task using Azure Data Warehouse.
Some of the following area's can be reused from the Azure MS SQL database code but should have each area tested and fixed if necessary. These are just guidelines.