Project

General

Profile

Bug #21147 » 12071.diff

Administrator Admin, 2009-09-28 21:51

View differences:

t3lib/class.t3lib_sqlparser.php (working copy)
// Looking for JOIN
if ($join = $this->nextPart($parseString,'^(LEFT[[:space:]]+JOIN|LEFT[[:space:]]+OUTER[[:space:]]+JOIN|JOIN)[[:space:]]+')) {
$stack[$pnt]['JOIN']['type'] = $join;
if ($stack[$pnt]['JOIN']['withTable'] = $this->nextPart($parseString,'^([[:alnum:]_]+)[[:space:]]+ON[[:space:]]+',1)) {
$field1 = $this->nextPart($parseString,'^([[:alnum:]_.]+)[[:space:]]*=[[:space:]]*',1);
if ($stack[$pnt]['JOIN']['withTable'] = $this->nextPart($parseString,'^([[:alnum:]_]+)[[:space:]]+',1)) {
// Remark: 'as_keyword' and 'as' array keys are not used in compileFromTables() as the alias (if any) is
// extracted from the join condition itself. It is saved anyway for maintainability
$stack[$pnt]['JOIN']['as_keyword'] = $this->nextPart($parseString,'^(AS[[:space:]]+)');
$stack[$pnt]['JOIN']['as'] = $this->nextPart($parseString,'^([[:alnum:]_]+)[[:space:]]*');
$field1 = $this->nextPart($parseString,'^ON[[:space:]]+([[:alnum:]_.]+)[[:space:]]*=[[:space:]]*',1);
$field2 = $this->nextPart($parseString,'^([[:alnum:]_.]+)[[:space:]]+');
if ($field1 && $field2) {
(1-1/2)