Indeed pgsql is not accept an empty string however it accept NULL data, it execute normally with following sql statement :
INSERT INTO "Test" ("dob") VALUES (NULL);
In Yii form, when dob field is left blank it produce following sql statement :
22:26:45.43787 trace system.db.CDbCommand Executing SQL: INSERT INTO "Test" ("dob") VALUES (:dob)
with error log showing :
CDbCommand failed to execute the SQL statement: SQLSTATE[22007]: Invalid datetime format: 7 ERROR: invalid input syntax for type date: ""
#0 /public_html/domain1.com/public/yii/framework/db/ar/CActiveRecord.php(1012): CDbCommand->execute()
#1 /public_html/domain1.com/public/yii/framework/db/ar/CActiveRecord.php(834): CActiveRecord->insert(NULL)
#2 /public_html/domain1.com/public/pay/protected/controllers/TestController.php(71): CActiveRecord->save()
#3 /public_html/domain1.com/public/yii/framework/web/actions/CInlineAction.php(32): TestController->actionCreate()
#4 /public_html/domain1.com/public/yii/framework/web/CController.php(265): CInlineAction->run()
#5 /public_html/domain1.com/public/yii/framework/web/filters/CFilterChain.php(128): CController->runAction(Object(CInlineAction))
#6 /public_html/domain1.com/public/yii/framework/web/filters/CFilter.php(41): CFilterChain->run()
#7 /public_html/domain1.com/public/yii/framework/web/CController.php(885): CFilter->filter(Object(CFilterChain))
#8 /public_html/domain1.com/public/yii/framework/web/filters/CInlineFilter.php(59): CController->filterAccessControl(Object(CFilterChain))
#9 /public_html/domain1.com/public/yii/framework/web/filters/CFilterChain.php(125): CInlineFilter->filter(Object(CFilterChain))
#10 /public_html/domain1.com/public/yii/framework/web/CController.php(248): CFilterChain->run()
#11 /public_html/domain1.com/public/yii/framework/web/CController.php(225): CController->runActionWithFilters(Object(CInlineAction), Array)
#12 /public_html/domain1.com/public/yii/framework/web/CWebApplication.php(335): CController->run('create')
#13 /public_html/domain1.com/public/yii/framework/web/CWebApplication.php(123): CWebApplication->runController('test/create')
#14 /public_html/domain1.com/public/yii/framework/base/CApplication.php(170): CWebApplication->processRequest()
#15 /public_html/domain1.com/public/pay/index.php(11): CApplication->run()
#16 {main}
Noted that at Trace #1, it show CActiveRecord->insert(NULL), does it means : empty field is treat as NULL ?
really appreciate your help.