Skip to content

Commit d7d45a5

Browse files
committed
refactor _prepare_tables() method
1 parent 49be64c commit d7d45a5

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

simple_query_builder/querybuilder.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -330,14 +330,18 @@ def _prepare_conditions(self, where: Union[str, list]) -> dict:
330330
return result
331331

332332
def _prepare_tables(self, table: Union[str, list, dict]) -> str:
333-
if isinstance(table, str) and any(x in table for x in self._FIELD_SPEC_CHARS):
334-
self._sql = f"SELECT {table}"
335-
self._fields = table
336-
elif isinstance(table, str) and 'select' in table.lower():
337-
self._sql += f" FROM ({table})"
338-
else:
339-
self._sql += f" FROM {self._prepare_aliases(table)}"
340-
return self._sql
333+
if not table:
334+
self.set_error(f"Empty table in {inspect.stack()[0][3]} method")
335+
return ''
336+
337+
if isinstance(table, str) and 'select' in table.lower():
338+
self._concat = True
339+
return f"({table})"
340+
elif isinstance(table, str) and any(x in table for x in self._FIELD_SPEC_CHARS):
341+
# self._fields = table
342+
return f"{table}"
343+
344+
return self._prepare_aliases(table)
341345

342346
def select(self, table: Union[str, list, dict], fields: Union[str, list, dict] = "*"):
343347
if not table or not fields:

0 commit comments

Comments
 (0)