Skip to content
  • Morton Jonuschat's avatar
    [BUGFIX] dbal: Cast field to CHAR for FIND_IN_SET() · 14f04a6a
    Morton Jonuschat authored and Markus Klein's avatar Markus Klein committed
    Implement explicit casting of fields to a character representation.
    Most DBMS are stricter in regard to data type checking and emit an
    error when trying to use FIND_IN_SET() on non-text field types.
    
    On the DBAL side of things the DBMS specifics are used to define that
    an explicit cast is required for FIND_IN_SET() so that a query including
    the CAST() statement gets generated.
    
    A PostgreSQL Specific has been added to enable the explicit casting in
    conjuction with DBAL. To avoid checking repeatedly if a DBMS has defined
    specific requirements a NullSpecific has been implemented that gets used
    as a default.
    
    In the DatabaseTreeDataProvider the listFieldQuery() function has been
    changed to use an explicit CAST() instead of relying on the implicit
    cast done by MySQL when comparing it to an empty string.
    
    The SqlParser has been extended with the support for CAST().
    
    Resolves: #67155
    Resolves: #67172
    Resolves: #46271
    Releases: master, 6.2
    Change-Id: Ic77d1700e0fb4e3723c90b34e131dafb456038e0
    Reviewed-on: http://review.typo3.org/39779
    
    
    Reviewed-by: default avatarAndreas Fernandez <typo3@scripting-base.de>
    Tested-by: default avatarAndreas Fernandez <typo3@scripting-base.de>
    Reviewed-by: default avatarMarkus Klein <markus.klein@typo3.org>
    Tested-by: default avatarMarkus Klein <markus.klein@typo3.org>
    14f04a6a