[TYPO3-dev] Further development of DBAL

Andreas Fernandez a.fernandez at scripting-base.de
Thu Aug 7 22:22:56 CEST 2014


Hi,

some of you may have noticed I'm currently debugging / extending the 
DBAL extension.
There are still a few points that are broken in core, for example the 
Extension Manager.

The EM uses the HAVING statement at certain points which is *not* 
supported by DBAL
at the moment. Also it uses subselects in SELECT which isn't supported 
neither (but in
WHERE it is?). Currently, I trying to teach DBAL to understand the 
HAVINGs, but it's very
complicated because there is no reserved parameter in any exec_*query 
method, so it
could be pre- or appended anywhere (WHERE, GROUP BY, ORDER BY).

Anything related to the EM database queries is found in
typo3/sysext/extensionmanager/Classes/Domain/Repository/ExtensionRepository.php.

HAVING in WHERE works now, but I'm not happy with that "magic" select 
statement used
in the method "findByTitleOrAuthorNameOrExtensionKey". Currently, I pass 
the whole stuff
as a single field with this regex: "((\()+.*(\)+)[[:space:]]+)".

At least I can bypass the subselect used in 
"fetchMaximalVersionsForAllExtensions" by
changing the query. The changed query is a bit buggy since it misses ~30 
extensions
which are covered by the  currently used query.
Here is a pastebin to the change and it's impact: 
http://pastebin.com/ESZYX6LU

Of course I have to push the changes to Gerrit but the question is: 
Which kind of changes
will be merged into 6.2 LTS? All of them are a mix of [BUGFIX] and 
[TASK] and *could*
introduce a breaking change.

I'm aware of the blueprint of a refactored DBMS service:
http://wiki.typo3.org/Blueprints/DatabaseService

Please feel free to share your hints and ideas.

Greetings,
Andreas



More information about the TYPO3-dev mailing list