[TYPO3-dev] DBAL suggesion

marcel.gsteiger at milprog.ch marcel.gsteiger at milprog.ch
Sun Jan 29 08:24:05 CET 2006


marcel.gsteiger at milprog.ch schrieb:
> Hi all
> 
> I have posted the following suggestion on the users list, but probably 
> dev would be more appropriate:
> 
> I installed typo3 4.0b1 on PostgreSQL from scratch using DBAL, then 
> updated to 4.0b2. However, I then had numerous troubles with extensions 
> incompatible with DBAL, so I decided to leave the base system in MySQL 
> and just use PostgreSQL for tables in my own extensions. The troubles 
> were so prevalent that I felt it does not make sense to report them, 
> obviously people are using too much MySQL specific syntax.
> 
> Now I tried to activate DBAL with the base system, just installing the 
> "_DEFAULT" handler on "native" through DBAL/ADODB.  When I activate the 
> DBAL debugger, I get lots of error messages about SQL statements 
> inserting data into cache_hash, cache_pagesection and cache_pages. 
> Obviously the system generates INSERT statements that specify null 
> values for some columns.
> 
> To my understanding, inserting NULL in a single value based INSERT 
> statement is nonsense anyway. Perhaps the programmer was meaning to 
> insert DEFAULT for that column (SQL standard). Unfortunately MySQL does 
> support this syntax only starting with version 4.0.3.
> 
> I suggest that we assume that no installation using the DBAL will use an 
> older MySQL database version than 4.0.3 . In this case, the DBAL could 
> rewrite the insertion of null by the insertion of DEFAULT, e.g.
> 
> INSERT INTO cache_hash( hash, content, ident, tstamp) VALUES
>  ('...', DEFAULT, '...', '...')
> 
> Of course, the cleanest way would be to get rid of all those MySQL 
> non-SQL-standard functions...
> 
> Regards
> --Marcel

meanwhile I changed line 699 in class.ux_t3lib_db.php;
old:
  $nArr[$this->quoteFieldNames($k)] = 'null';
new:
  $nArr[$this->quoteFieldNames($k)] = 'default';

...this made all these errors disappear. Perhaps this small change could 
make it into the DBAL?

Regards
--Marcel




More information about the TYPO3-dev mailing list