[OpenSER-Devel] oracle schema, VARCHAR fields NOT NULL

Henning Westerholt henning.westerholt at 1und1.de
Wed Apr 23 17:15:32 CEST 2008


Hi all,

another issue (hopefully the last) that Iouri and i noticed during our work on 
db_oracle: The actual db schemes defines most of the VARCHAR colums as
"DEFAULT '' NOT NULL".

As a default value is defined, this NOT NULL is not really useful, it only 
specify that the colum can't be set explicit to NULL. There is no 
infrastructure in the core available for this at the moment, and the control 
scripts uses this only for the RPID value.

This causes a problem for the db_oracle module. For Oracle are VARCHAR[,2] 
NULL values and the empty string ('') equivalent (don't ask me why). Thus 
most of the insert statement, e.g. in the control scripts fails for string 
values, because oracle think that they want to insert NULL into the column, 
and this is not allowed.

Are this NOT NULL defines actually needed if an default value is specified? 
Its is possible to remove this completly for the string values, or perhaps 
even for all values with an given default? 

Sure, it would be possible to remove this clause only for the oracle driver, 
but as they are generated from a common XSL file (sql.xsl) i'd be necessary  
to duplicate this functionality. And if this stuff is not actually useful, it 
would also allow to cleanup the generated schemes somewhat.

Best regards,

Henning



More information about the Devel mailing list