From 7da95c0991f697c2e16b24f4c6162c0b40f0299c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Victor=20Frans=20Pondaco=20Winandy?=
 <jvfpw18@inf.ufpr.br>
Date: Mon, 9 Mar 2020 08:59:02 -0300
Subject: [PATCH] Fix CircularReferenceError being triggered by collumns of
 different tables

---
 database/database_table.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/database/database_table.py b/database/database_table.py
index ed495b6..db3555f 100644
--- a/database/database_table.py
+++ b/database/database_table.py
@@ -787,10 +787,10 @@ class DatabaseTable(Table):
             # This variable has been evaluated already, just return
             return self._derivatives[target]
 
-        if target is not None and target in recursion_list:
+        if target is not None and str(self) + '.' + target in recursion_list:
             # This is a circular reference. Don't be like that.
             print(target)
-            raise CircularReferenceError
+            raise CircularReferenceError(target)
 
         original = self._protocol.original_from_target(target, year) or original
         try:
@@ -826,7 +826,7 @@ class DatabaseTable(Table):
         str_list = re.findall(r'("[\w]+"|[\w]+)', original)
         level = 0
         substitutions = []
-        recursion_list.append(target)
+        recursion_list.append(str(self) + '.' + target)
         for substring in str_list:
             derivative = self._derivative_recursion(substring.strip('"'), year,
                                                    recursion_list=recursion_list)
-- 
GitLab