214 empty lists fixes

This commit is contained in:
2026-03-14 14:08:21 +03:00
parent aff2416baa
commit 4f624b06c4
8 changed files with 73 additions and 29 deletions
+8 -6
View File
@@ -18,7 +18,8 @@
<cfargument name="value" type="any" required="true" />
<cfif isEmpty(ARGUMENTS.value)><!---*** некорректно, но просто, пустые строки превращает в нулл--->
<cfif isSimpleValue(ARGUMENTS.value) AND isEmpty(ARGUMENTS.value)><!---*** некорректно, но просто, пустые строки превращает в нулл--->
<!--- нам не нужно, чтобы пустые массивы превращались в нулл. Наверное, и структуры тоже --->
<cfreturn javacast('null','')/>
<cfelse>
<cfreturn ARGUMENTS.value />
@@ -71,12 +72,13 @@
<cfif queryColumnExists(ARGUMENTS.query, local.col)>
<cfif type EQ "list">
<!--- *** workaround for empty lists - keep them empty instead of null - should designate field type as list --->
<cfset obj[ARGUMENTS.fieldNameDecorator(local.col)]=formatter(ARGUMENTS.query[local.col][ARGUMENTS.query.currentRow])/>
<cfelse>
<!--- <cfif type EQ "list"> --->
<!--- *** workaround for empty lists - keep them empty strings or arrays instead of null - should designate field type as list --->
<!--- *** правда, для CFS параметров это не работает - тип поля может меняться в зависимости от условий --->
<!--- <cfset obj[ARGUMENTS.fieldNameDecorator(local.col)]=formatter(ARGUMENTS.query[local.col][ARGUMENTS.query.currentRow])/>
<cfelse> --->
<cfset obj[ARGUMENTS.fieldNameDecorator(local.col)]=empty2null(formatter(ARGUMENTS.query[local.col][ARGUMENTS.query.currentRow]))/>
</cfif>
<!--- </cfif> --->
<!--- *** преобразование пустой строки в null преобразует в нулл также пустые списки, что искажает факт --->
</cfif>
<!---*** не уверен в надежности конструкции во всех реализациях CF, контекст query передастся ли--->