From 3d7ef6a32b2c0952a81cd34f380789a0e40e4640 Mon Sep 17 00:00:00 2001 From: Deon George Date: Mon, 17 Feb 2014 11:27:39 +1100 Subject: [PATCH] Improvements to on() processing for upstream to review --- .../Kohana/Database/Query/Builder/Join.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/database/classes/Kohana/Database/Query/Builder/Join.php b/modules/database/classes/Kohana/Database/Query/Builder/Join.php index 10402f6..fefa5d8 100644 --- a/modules/database/classes/Kohana/Database/Query/Builder/Join.php +++ b/modules/database/classes/Kohana/Database/Query/Builder/Join.php @@ -127,8 +127,21 @@ class Kohana_Database_Query_Builder_Join extends Database_Query_Builder { $op = ' '.strtoupper($op); } + // In case C2 is prefixed with table + $c2table = FALSE; + $parts = explode('.', $c2); + + // If there are parts, we'll check that first one is the table name. + if (count($parts) == 2) + { + if ($db->list_columns($parts[0],$parts[1])) + { + $c2table = TRUE; + } + } + // Quote each of the columns used for the condition - $conditions[] = $db->quote_column($c1).$op.' '.$db->quote_column($c2); + $conditions[] = $db->quote_column($c1).$op.' '.($c2table ? $db->quote_column($c2) : $db->quote($c2)); } // Concat the conditions "... AND ..."