Difference between revisions of "PostgreSQL Adapter"

From CDOT Wiki
Jump to: navigation, search
(Phase 2: Connect to PostgreSQL)
(Phase 3: Test first design)
Line 101: Line 101:
 
|-  
 
|-  
 
|
 
|
 +
:src
 
:: [[ PostgreSQL_Adapter-nexj/Adapter | PostgreSQLAdapter.java ]]  // Extends SQLAdapter.java  - SQL Persistence adapter, responsible for regular data queries (insert, select, delete)
 
:: [[ PostgreSQL_Adapter-nexj/Adapter | PostgreSQLAdapter.java ]]  // Extends SQLAdapter.java  - SQL Persistence adapter, responsible for regular data queries (insert, select, delete)
 
:: [[ PostgreSQL_Adapter-nexj/SchemaManger | PostgreSQLSchemaManager.java ]]  // Extends SQLSchemaManager.java - class for reading, creating and upgrading the database schema
 
:: [[ PostgreSQL_Adapter-nexj/SchemaManger | PostgreSQLSchemaManager.java ]]  // Extends SQLSchemaManager.java - class for reading, creating and upgrading the database schema

Revision as of 11:06, 10 December 2010

PostgreSQL Adapter for NexJ

Project Goal

Develope an adapter to enable NexJ Express model to interact with PostgreSQL database

Current Status

Project Phases

Phase 1: Investigation

  • Get requirements from NexJ (Meeting on Friday Nov 5th)
  • Walk-through the code
  • Familiarization with PostgreSQL

Phase 2: Connect to PostgreSQL

Phase 3: Test first design

  • 1- Create a PostgreSQL database through some scripts
Through the process in postgresql_setup.sql, the database was created, initialized and tested:
A database called 'test is created in PostgreSQL : CREATE DATABASE test
To create a user along with password: CREATE USER test WITH PASSWORD 'test';
Login to the database 'test' with username 'test': psql -U test test
Create a Schema called 'test' inside the database 'test' with particular owner 'test': CREATE SCHEMA test AUTHORIZATION test;
Create a table called 'Mutex' with primary key: CREATE TABLE test.Mutex(id INT PRIMARY KEY);
Insert a value into the primary key: INSERT INTO test.Mutex(id) VALUES (1);
  • 3- Working inside Schema 'test'
CREATE TABLE test.xxx
data types are changed in appendColumnType() in PostgreSQLSchemaManager.java based on each jdbc type's equivalent in PostgreSQL.
The implementation in crateTextTable in file PostgreSQLSchemaManager.java is removed for now (base class's version is being called).
CREATE INDEX test.xxx
CREATE Trigger test.xxx // if it's needed for PostgreSQL as well as MySQL
  • Modifications

Phase 4: Test properties specific to PostgreSQL

  • Add test cases that are specific to PostgreSQL database

Phase 5: Optimization

  • After implementation is done, optimizing the modified files.

Resources

  • Intro
Concept of Adapter [1]
FOSSLC PostgreSQL