[TYPO3-core] RFC #4405: Bug: SQL errors with foreign_table_where and ###REC_FIELD_*### marker

Andreas Otto a.otto at SMA.de
Fri Jul 3 15:05:28 CEST 2009


This is an SVN patch request.

Type: Bugfix

Bugtracker references:
http://bugs.typo3.org/view.php?id=4405

Branches: Trunk, 4.2, 4.1

Problem:
An SQL error appears if you use a ###REC_FIELD_*### marker inside the
foreign_table_where configuration.

Example TCA:
$TCA['tx_faqs']['columns']['similar_faq']['config']['foreign_table_where'] =
' AND tx_faqs.deleted=0 AND tx_faqs.pid IN (103) AND
tx_faqs.sys_language_uid=###REC_FIELD_sys_language_uid### ORDER BY
tx_faqs.question ASC'

The example above would only list other records if they have the same
sys_language_uid which keeps the list smaller if you have more than 2
languages on your TYPO3 installation. The resulting SQL will issue an SQL
error if you create a new record because the record has not been saved and
therefore the marker ###REC_FIELD_sys_language_uid### is empty.

Se also
http://typo3.org/documentation/document-library/core-documentation/doc_core_
api/4.2.0/view/4/2/ for an explanation of foreign_table_where.

Solution:
Set $TSconfig['_THIS_ROW'][$fTWHERE_subpart[0]] to 0 if it is empty.


Cheers,
Andreas

-- 

-- 
Mit freundlichen Grüßen
Yours sincerely 

SMA Solar Technology AG
i.A. Andreas Otto
Online / New Media
Sonnenallee 1
34266 Niestetal
Germany
Tel. +49 561 9522-2839
Fax +49 561 9522-4567
E-Mail: A.Otto at SMA.de

begin 666 4405_TYPO3_trunk-rec_field.patch
M26YD97 at Z('0S;&EB+V-L87-S+G0S;&EB7V)E9G5N8RYP:'`-"CT]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T-"BTM+2!T,VQI8B]C;&%S<RYT,VQI8E]B969U;F,N
M<&AP"2AR979I<VEO;B`U-C<X*0T**RLK('0S;&EB+V-L87-S+G0S;&EB7V)E
M9G5N8RYP:'`)*'=O<FMI;F<@8V]P>2D-"D!`("TS,#4S+#$P("LS,#4S+#$V
M($!`#0H@"0DD9E172$5212`]("1F:65L9%9A;'5E6R=C;VYF:6<G75LD<')E
M9FEX+B=F;W)E:6=N7W1A8FQE7W=H97)E)UT["B`)"6EF("AS=')S='(H)&94
M5TA%4D4L("<C(R-214-?1DE%3$1?)RDI('L*(`D)"21F5%=(15)%7W!A<G1S
M(#T at 97AP;&]D92 at G(R,C4D5#7T9)14Q$7R<L("1F5%=(15)%*3L*+0D)"7=H
M:6QE*&QI<W0H)&MK+"`D=G8I(#T at 96%C:"@D9E172$5215]P87)T<RDI('L*
M+0D)"0EI9B`H)&MK*2!["BT)"0D)"21F5%=(15)%7W-U8G!A<G0@/2!E>'!L
M;V1E*"<C(R,G+"`D=G8L(#(I.PHM"0D)"0DD9E172$5215]P87)T<ULD:VM=
M(#T@)%138V]N9FEG6R=?5$A)4U]23U<G75LD9E172$5215]S=6)P87)T6S!=
M72XD9E172$5215]S=6)P87)T6S%=.PHK"0D)9F]R96%C:"@D9E172$5215]P
M87)T<R!A<R`D:VL@/3X@)'9V*0E["BL)"0D):68@*"1K:RD)>PHK"0D)"0DD
M9E172$5215]S=6)P87)T(#T at 97AP;&]D92 at G(R,C)RPD=G8L,BD["BL)"0D)
M"0DO+R!&;W(@;F5W(')E8V]R9',L('=H:6-H(&%R92!N;W0@<V%V960@>65T
M+"`D5%-C;VYF:6=;)U]42$E37U)/5R==6R1F5%=(15)%7W-U8G!A<G1;,%U=
M(&UA>2!B92!E;7!T>2X**PD)"0D)"2\O(%1H:7,@=VEL;"!C875S92!344P@
M97)R;W)S('5N=&EL('1H92!R96-O<F0@:&%S(&)E96X@<V%V960 at 9F]R('1H
M92!F:7)S="!T:6UE+ at HK"0D)"0D)+R\@4V5T=&EN9R!T:&4@=F%L=64@=&\@
M,"!I9B!I="!I<R!E;7!T>2X**PD)"0D):68@*&5M<'1Y*"144V-O;F9I9ULG
M7U1(25-?4D]7)UU;)&945TA%4D5?<W5B<&%R=%LP75TI*0E["BL)"0D)"0DD
M5%-C;VYF:6=;)U]42$E37U)/5R==6R1F5%=(15)%7W-U8G!A<G1;,%U=(#T@
M,#L**PD)"0D)?0HK"0D)"0DD9E172$5215]P87)T<ULD:VM=/2144V-O;F9I
M9ULG7U1(25-?4D]7)UU;)&945TA%4D5?<W5B<&%R=%LP75TN)&945TA%4D5?
M<W5B<&%R=%LQ73L*(`D)"0E]"B`)"0E]"B`)"0DD9E172$5212`](&EM<&QO
89&4H)R<L("1F5%=(15)%7W!A<G1S*3L*
`
end

begin 666 4405_TYPO3_4-1-rec_field.patch
M26YD97 at Z('0S;&EB+V-L87-S+G0S;&EB7V)E9G5N8RYP:'`-"CT]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T-"BTM+2!T,VQI8B]C;&%S<RYT,VQI8E]B969U;F,N
M<&AP"2AR979I<VEO;B`U-C8U*0T**RLK('0S;&EB+V-L87-S+G0S;&EB7V)E
M9G5N8RYP:'`)*'=O<FMI;F<@8V]P>2D-"D!`("TR-S<Y+#$P("LR-S<Y+#$V
M($!`#0H@"B`)"21F5%=(15)%(#T@)&9I96QD5F%L=65;)V-O;F9I9R==6R1P
M<F5F:7 at N)V9O<F5I9VY?=&%B;&5?=VAE<F4G73L*(`D):68@*'-T<G-T<B at D
M9E172$5212PG(R,C4D5#7T9)14Q$7R<I*0E["BT)"0DD9E172$5215]P87)T
M<R`](&5X<&QO9&4H)R,C(U)%0U]&245,1%\G+"1F5%=(15)%*3L*+0D)"7=H
M:6QE*&QI<W0H)&MK+"1V=BD]96%C:"@D9E172$5215]P87)T<RDI"7L**PD)
M"21F5%=(15)%7W!A<G1S(#T at 97AP;&]D92 at G(R,C4D5#7T9)14Q$7R<L)&94
M5TA%4D4I.PD)"0T**PD)"69O<F5A8V at H)&945TA%4D5?<&%R=', at 87,@)&MK
M(#T^("1V=BD)>PT*(`D)"0EI9B`H)&MK*0E["B`)"0D)"21F5%=(15)%7W-U
M8G!A<G0@/2!E>'!L;V1E*"<C(R,G+"1V=BPR*3L**PD)"0D)"2\O($9O<B!N
M97<@<F5C;W)D<RP@=VAI8V@@87)E(&YO="!S879E9"!Y970L("144V-O;F9I
M9ULG7U1(25-?4D]7)UU;)&945TA%4D5?<W5B<&%R=%LP75T@;6%Y(&)E(&5M
M<'1Y+ at T**PD)"0D)"2\O(%1H:7,@=VEL;"!C875S92!344P at 97)R;W)S('5N
M=&EL('1H92!R96-O<F0@:&%S(&)E96X@<V%V960 at 9F]R('1H92!F:7)S="!T
M:6UE+ at T**PD)"0D)"2\O(%-E='1I;F<@=&AE('9A;'5E('1O(#`@:68@:70@
M:7, at 96UP='DN#0HK"0D)"0EI9B`H96UP='DH)%138V]N9FEG6R=?5$A)4U]2
M3U<G75LD9E172$5215]S=6)P87)T6S!=72DI"7L-"BL)"0D)"0DD5%-C;VYF
M:6=;)U]42$E37U)/5R==6R1F5%=(15)%7W-U8G!A<G1;,%U=(#T@,#L-"BL)
M"0D)"7T-"B`)"0D)"21F5%=(15)%7W!A<G1S6R1K:UT])%138V]N9FEG6R=?
M5$A)4U]23U<G75LD9E172$5215]S=6)P87)T6S!=72XD9E172$5215]S=6)P
587)T6S%=.PH@"0D)"7T*(`D)"7T*
`
end

begin 666 4405_TYPO3_4-2-rec_field.patch
M26YD97 at Z('0S;&EB+V-L87-S+G0S;&EB7V)E9G5N8RYP:'`-"CT]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T-"BTM+2!T,VQI8B]C;&%S<RYT,VQI8E]B969U;F,N
M<&AP"2AR979I<VEO;B`U-C<X*0T**RLK('0S;&EB+V-L87-S+G0S;&EB7V)E
M9G5N8RYP:'`)*'=O<FMI;F<@8V]P>2D-"D!`("TR.3<X+#$P("LR.3<X+#$V
M($!`#0H@"0DD9E172$5212`]("1F:65L9%9A;'5E6R=C;VYF:6<G75LD<')E
M9FEX+B=F;W)E:6=N7W1A8FQE7W=H97)E)UT["B`)"6EF("AS=')S='(H)&94
M5TA%4D4L("<C(R-214-?1DE%3$1?)RDI('L*(`D)"21F5%=(15)%7W!A<G1S
M(#T at 97AP;&]D92 at G(R,C4D5#7T9)14Q$7R<L("1F5%=(15)%*3L*+0D)"7=H
M:6QE*&QI<W0H)&MK+"`D=G8I(#T at 96%C:"@D9E172$5215]P87)T<RDI('L*
M+0D)"0EI9B`H)&MK*2!["BT)"0D)"21F5%=(15)%7W-U8G!A<G0@/2!E>'!L
M;V1E*"<C(R,G+"`D=G8L(#(I.PHM"0D)"0DD9E172$5215]P87)T<ULD:VM=
M(#T@)%138V]N9FEG6R=?5$A)4U]23U<G75LD9E172$5215]S=6)P87)T6S!=
M72XD9E172$5215]S=6)P87)T6S%=.PHK"0D)9F]R96%C:"@D9E172$5215]P
M87)T<R!A<R`D:VL@/3X@)'9V*0E["BL)"0D):68@*"1K:RD)>PHK"0D)"0DD
M9E172$5215]S=6)P87)T(#T at 97AP;&]D92 at G(R,C)RPD=G8L,BD["BL)"0D)
M"0DO+R!&;W(@;F5W(')E8V]R9',L('=H:6-H(&%R92!N;W0@<V%V960@>65T
M+"`D5%-C;VYF:6=;)U]42$E37U)/5R==6R1F5%=(15)%7W-U8G!A<G1;,%U=
M(&UA>2!B92!E;7!T>2X**PD)"0D)"2\O(%1H:7,@=VEL;"!C875S92!344P@
M97)R;W)S('5N=&EL('1H92!R96-O<F0@:&%S(&)E96X@<V%V960 at 9F]R('1H
M92!F:7)S="!T:6UE+ at HK"0D)"0D)+R\@4V5T=&EN9R!T:&4@=F%L=64@=&\@
M,"!I9B!I="!I<R!E;7!T>2X**PD)"0D):68@*&5M<'1Y*"144V-O;F9I9ULG
M7U1(25-?4D]7)UU;)&945TA%4D5?<W5B<&%R=%LP75TI*0E["BL)"0D)"0DD
M5%-C;VYF:6=;)U]42$E37U)/5R==6R1F5%=(15)%7W-U8G!A<G1;,%U=(#T@
M,#L**PD)"0D)?0HK"0D)"0DD9E172$5215]P87)T<ULD:VM=/2144V-O;F9I
M9ULG7U1(25-?4D]7)UU;)&945TA%4D5?<W5B<&%R=%LP75TN)&945TA%4D5?
M<W5B<&%R=%LQ73L*(`D)"0E]"B`)"0E]"B`)"0DD9E172$5212`](&EM<&QO
89&4H)R<L("1F5%=(15)%7W!A<G1S*3L*
`
end


More information about the TYPO3-team-core mailing list