PEAR is discontinued

This is a static archive preserving historical releases and metadata. No new packages or updates will be published. For updates to existing packages, or to publish new packages, please use Composer and Packagist.

Home » Database » MDB2 » Bug #8359

Problem with NOT NULL / NULL when creating Table

Details

Submitted2006-08-04 11:26 UTC
Fromkaiser at unisolution dot de
Assignedlsmith
StatusClosed
PackageMDB2
PHP Version4.3.8
OSLinux
Roadmaps(Not assigned)

Comments

[2006-08-04 11:26 UTC] kaiser at unisolution dot de

Description:
------------
I am working with MS SQL Server right now, and there seems to be a Problem with NULL / NOT NULL when creating a Table.

in MS SQL you need to specify for each column that if NULL is allowed:
NOT NULL -> null values not allowed
NULL -> null values allowed
[nothing] -> null values NOT allowed, i don't know if it's like this with every version of SQL Server, but the version of SQL Server 2000 i work with right now marks a column a NOT NULL if its not specified.

The Problem now is, that MDB2 only adds a NOT NULL to the query is NULL is not allowed, but doesn't add anything if NULL should be allowed. Because of the SQL Server behaviour i described above, all columns are then specified as NOT NULL.

a quick fix i tried today was to overwrite the functions _getDeclaration, _getCLOBDeclaration of MDB2/Driver/Datatype/Common.php in MDB2/Driver/Datatype/MSSQL.php
and replace $notnull = (!empty($field['notnull'])) ? ' NOT NULL' : '';
by
$notnull = (!empty($field['notnull'])) ? ' NOT NULL' : ' NULL ';
in each of these functions. This fix worked for me, but maybe there is a better solution...