View Issue Details

IDProjectCategoryView StatusLast Update
14649Bug reports[All Projects] Survey designpublic2019-04-30 09:11
ReporterlemeurtAssigned ToDenisChenu 
Status closedResolutionfixed 
Product Version3.15.x 
Target VersionFixed in Version3.17.x 
Summary14649: CDbException when a "default answer" option is not compatible with a question type

Changing the question type on a question with an incompatible "default answer" option may lead to a CDbException when taking the survey.

Proposed patch: When updating a question type, either reset the default answers or selectively reset the default answers if the new question type is not compliant with the previous one.

Steps To Reproduce
  • Create a question of type text
  • Add a long default answer as text
  • Change the question type to List Dropdown
  • add answers (the code is 5 Chars max)
  • activate the survey (the answer table prepares a varying(5) field type
  • Try to answer the survey ==> Error 500 Internal Server Error
    CDbCommand n'a pas pu exécuter la commande SQL: SQLSTATE[22001]: String data, right truncated: 7 ERROR: value too long for type character varying(5)
Additional Information

Detailed error with Debugging:

CDbCommand n'a pas pu exécuter la commande SQL: SQLSTATE[22001]: String data, right truncated: 7 ERROR: value too long for type character varying(5)


CDbCommand n'a pas pu exécuter la commande SQL: SQLSTATE[22001]: String data, right truncated: 7 ERROR: value too long for type character varying(5). The SQL statement executed was: UPDATE lime_survey_114132 SET "lastpage"=0, "114132X202X1951"='1A CentraleSupélec 2A cursus centralien 2A cursus Supélec', "114132X202X1956"='Oui Non Ne sait pas encore' WHERE ID=601 (/var/www/html/limesurvey/framework/db/CDbCommand.php:543)

#0 /var/www/html/limesurvey/framework/db/CDbCommand.php(377): CDbCommand->queryInternal('', 0, Array)
#1 /var/www/html/limesurvey/application/helpers/expressions/em_manager_helper.php(5565): CDbCommand->query()
#2 /var/www/html/limesurvey/application/helpers/expressions/em_manager_helper.php(5290): LimeExpressionManager->_UpdateValuesInDatabase()
#3 /var/www/html/limesurvey/application/helpers/SurveyRuntimeHelper.php(838): LimeExpressionManager::NavigateForwards()
#4 /var/www/html/limesurvey/application/helpers/SurveyRuntimeHelper.php(537): SurveyRuntimeHelper->setMoveResult()
#5 /var/www/html/limesurvey/application/helpers/SurveyRuntimeHelper.php(104): SurveyRuntimeHelper->initMove()
#6 /var/www/html/limesurvey/application/controllers/survey/index.php(591): SurveyRuntimeHelper->run('114132', Array)
#7 /var/www/html/limesurvey/application/controllers/survey/index.php(24): index->action()
#8 /var/www/html/limesurvey/framework/web/actions/CAction.php(76): index->run()
#9 /var/www/html/limesurvey/framework/web/CController.php(308): CAction->runWithParams(Array)
#10 /var/www/html/limesurvey/framework/web/CController.php(286): CController->runAction(Object(index))
#11 /var/www/html/limesurvey/framework/web/CController.php(265): CController->runActionWithFilters(Object(index), Array)
#12 /var/www/html/limesurvey/framework/web/CWebApplication.php(282): CController->run('index')
#13 /var/www/html/limesurvey/framework/web/CWebApplication.php(141): CWebApplication->runController('survey/index/si...')
#14 /var/www/html/limesurvey/framework/base/CApplication.php(185): CWebApplication->processRequest()
#15 /var/www/html/limesurvey/index.php(194): CApplication->run()
#16 {main}

TagsNo tags attached.
Complete LimeSurvey version number (& build)Version 3.15.8+190130
I will donate to the project if issue is resolvedNo
Database & DB-VersionPostgres and mariaDB 10.3.12
Server OS (if known)
Webserver software & version (if known)
PHP VersionN/A


related to 10827 closedDenisChenu Whole answers must be filtered before try to save in DB 
related to 14768 closeddominikvitt Survey fails when default answer is set 




2019-03-14 12:20

developer   ~50981

2 patch must be done

  1. must fix the CDB value even with invalid value
  2. Auto fif default value in GUI

PS : a cool way to have a default value for single choice. When 1 is fixed : we can add a input:text for singlme choice too (like with Yes/No question type).



2019-03-14 12:24

developer   ~50982

Related to because it does the same things for user entered value (filter $_POST before set).
For default value : error can be shown, but maybe only for user with edit content rights on survey ?



2019-03-15 11:34

reporter   ~51002

Hi Denis,
10827 is private, I can't access it.



2019-03-15 11:58

developer   ~51003

I set 10827 public since it was private due to security.
You can find the fix here :

The big part is
Maybe adding an optionnal settings private static function checkValidityAnswer($type,$value,$sgq,$qinfo,$setInvalidAnswerString = true)
And use it to filter default value ?



2019-03-15 22:31

reporter   ~51021

Just to let write down that this is only a major bug for Postgres users as in Mysql when trying to insert too much data in a short database column, the data is automatically truncated without throwing Exceptions.



2019-03-29 19:38

developer   ~51212

Same issue with mariadDB, send a lss, but unsure it work when import.

500: Internal Server Error.html (8,873 bytes)
CDbException.html (25,789 bytes)
survey_archive_BadDefault.lsa (3,836 bytes)


2019-03-30 18:56

developer   ~51222



2019-04-05 08:55

developer   ~51361


Issue History

Date Modified Username Field Change
2019-03-14 11:42 lemeurt New Issue
2019-03-14 12:20 DenisChenu Note Added: 50981
2019-03-14 12:23 DenisChenu Relationship added related to 10827
2019-03-14 12:24 DenisChenu Note Added: 50982
2019-03-15 11:34 lemeurt Note Added: 51002
2019-03-15 11:58 DenisChenu Note Added: 51003
2019-03-15 22:31 lemeurt Note Added: 51021
2019-03-29 19:34 DenisChenu Assigned To => DenisChenu
2019-03-29 19:34 DenisChenu Status new => assigned
2019-03-29 19:37 DenisChenu Database & DB-Version Postgres => Postgres and mariaDB 10.3.12
2019-03-29 19:38 DenisChenu File Added: 500: Internal Server Error.html
2019-03-29 19:38 DenisChenu File Added: CDbException.html
2019-03-29 19:38 DenisChenu File Added: survey_archive_BadDefault.lsa
2019-03-29 19:38 DenisChenu Note Added: 51212
2019-03-30 18:56 DenisChenu Note Added: 51222
2019-04-05 08:55 DenisChenu Status assigned => resolved
2019-04-05 08:55 DenisChenu Resolution open => fixed
2019-04-05 08:55 DenisChenu Fixed in Version => 3.17.x
2019-04-05 08:55 DenisChenu Note Added: 51361
2019-04-24 17:00 DenisChenu Relationship added related to 14768
2019-04-30 09:11 c_schmitz Status resolved => closed