Bug 1662289

Summary: php-pdo : PDO debugDumpParams truncate query
Product: Red Hat Enterprise Linux 7 Reporter: Adrien D <email>
Component: phpAssignee: Remi Collet <rcollet>
Status: CLOSED CURRENTRELEASE QA Contact: RHEL Stacks Subsystem QE <rhel-stacks-subsystem-qe>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0CC: email, jorton
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-06-17 11:03:58 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Patch to solve the problem none

Description Adrien D 2018-12-27 10:40:21 UTC
Hello,

Description of problem:
With php-pdo on RHEL v7.6 the debugDumpParams function of PDOStatement truncate the SQL query to 500 characters.

Version-Release number of selected component (if applicable):
php-pdo-5.4.16-46.el7.x86_64

How reproducible:
Install php and php-pdo packages and select a query with more 500 characters.
My SQL query :
 $stmt = $pdo->prepare("SELECT d.id, d.numDemande, s.reference, CAST(d.saisieDate AS CHAR) as saisieDate, CAST(d.saisieHeure AS CHAR) as saisieHeure,  d.nom, d.prenom, CONCAT(a.rue1, ' ', a.rue2, ' ', a.codePostal, ' ', a.ville) AS adresse, d.dateNaissance, u.codePreleveur as prelevePar, CAST(d.demandeDate AS CHAR) as demandeDate  from silDemande d LEFT JOIN silDemandePrelevement p ON p.idDemande=d.id LEFT JOIN silPreleveur u ON p.prelevePar=u.id LEFT JOIN site s ON d.idSite=s.id LEFT JOIN silPatientAdresse a ON d.idAdresse=a.id WHERE d.demandeDate = date(adddate(now(), interval ? day)) AND u.codePreleveur='DOMI' AND d.saisieHeure > ? AND d.saisieDate=date(now()) ORDER BY d.saisieHeure ASC;");


Steps to Reproduce:
1.
2.
3.

Actual results:
SQL: [675] SELECT d.id, d.numDemande, s.reference, CAST(d.saisieDate AS CHAR) as saisieDate, CAST(d.saisieHeure AS CHAR) as saisieHeure,  d.nom, d.prenom, CONCAT(a.rue1, ' ', a.rue2, ' ', a.codePostal, ' ', a.ville) AS adresse, d.dateNaissance, u.codePreleveur as prelevePar, CAST(d.demandeDate AS CHAR) as demandeDate  from silDemande d LEFT JOIN silDemandePrelevement p ON p.idDemande=d.id LEFT JOIN silPreleveur u ON p.prelevePar=u.id LEFT JOIN site s ON d.idSite=s.id LEFT JOIN silPatientAdresse a ON d.idAd


Expected results:
SQL: [675] SELECT d.id, d.numDemande, s.reference, CAST(d.saisieDate AS CHAR) as saisieDate, CAST(d.saisieHeure AS CHAR) as saisieHeure,  d.nom, d.prenom, CONCAT(a.rue1, ' ', a.rue2, ' ', a.codePostal, ' ', a.ville) AS adresse, d.dateNaissance, u.codePreleveur as prelevePar, CAST(d.demandeDate AS CHAR) as demandeDate  from silDemande d LEFT JOIN silDemandePrelevement p ON p.idDemande=d.id LEFT JOIN silPreleveur u ON p.prelevePar=u.id LEFT JOIN site s ON d.idSite=s.id LEFT JOIN silPatientAdresse a ON d.idAdresse=a.id WHERE d.demandeDate = date(adddate(now(), interval 1 day)) AND u.codePreleveur='DOMI' AND d.saisieHeure > '13:00:00' AND d.saisieDate=date(now()) ORDER BY d.saisieHeure ASC;


Additional info:
The bug was fixed on PHP upstream : https://bugs.php.net/bug.php?id=69356

Comment 2 Adrien D 2018-12-27 13:31:58 UTC
Created attachment 1517058 [details]
Patch to solve the problem

I backported and adapted the patch from PHP 5.5.x to PHP 5.4.
I tested to rebuild SRPM php and it works on my distro.

Comment 4 Joe Orton 2020-06-17 11:03:58 UTC
This issue is resolved in RHEL8.