summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarik Gamble <darik.gamble.spam@gmail.com>2016-07-23 07:14:04 -0400
committerDarik Gamble <darik.gamble.spam@gmail.com>2016-07-27 15:33:58 -0400
commitf23569cc6b42a784a8715953189a79f8ad20e6c7 (patch)
tree8ef5954f95bbf4baa1b681053295726ff72c41e0
parent8b8f2571005bdc5f1e71dc57a4f2082e038e5c3d (diff)
Add a `local_tables` field to suggestion types to store extracted CTE definitions (not used yet)
-rw-r--r--pgcli/packages/sqlcompletion.py13
-rw-r--r--pgcli/pgcompleter.py7
2 files changed, 11 insertions, 9 deletions
diff --git a/pgcli/packages/sqlcompletion.py b/pgcli/packages/sqlcompletion.py
index 01175f44..5cce2340 100644
--- a/pgcli/packages/sqlcompletion.py
+++ b/pgcli/packages/sqlcompletion.py
@@ -24,8 +24,8 @@ Schema = namedtuple('Schema', [])
# FromClauseItem is a table/view/function used in the FROM clause
# `table_refs` contains the list of tables/... already in the statement,
# used to ensure that the alias we suggest is unique
-FromClauseItem = namedtuple('FromClauseItem', 'schema table_refs')
-Table = namedtuple('Table', ['schema', 'table_refs'])
+FromClauseItem = namedtuple('FromClauseItem', 'schema table_refs local_tables')
+Table = namedtuple('Table', ['schema', 'table_refs', 'local_tables'])
View = namedtuple('View', ['schema', 'table_refs'])
# JoinConditions are suggested after ON, e.g. 'foo.barid = bar.barid'
JoinCondition = namedtuple('JoinCondition', ['table_refs', 'parent'])
@@ -35,12 +35,13 @@ Join = namedtuple('Join', ['table_refs', 'schema'])
Function = namedtuple('Function', ['schema', 'table_refs', 'filter'])
# For convenience, don't require the `filter` argument in Function constructor
Function.__new__.__defaults__ = (None, tuple(), None)
-Table.__new__.__defaults__ = (None, tuple())
+Table.__new__.__defaults__ = (None, tuple(), tuple())
View.__new__.__defaults__ = (None, tuple())
-FromClauseItem.__new__.__defaults__ = (None, tuple())
+FromClauseItem.__new__.__defaults__ = (None, tuple(), tuple())
-Column = namedtuple('Column', ['table_refs', 'require_last_table'])
-Column.__new__.__defaults__ = (None, None)
+Column = namedtuple(
+ 'Column', ['table_refs', 'require_last_table', 'local_tables'])
+Column.__new__.__defaults__ = (None, None, tuple())
Keyword = namedtuple('Keyword', [])
NamedQuery = namedtuple('NamedQuery', [])
diff --git a/pgcli/pgcompleter.py b/pgcli/pgcompleter.py
index 16642b4f..a521e8d7 100644
--- a/pgcli/pgcompleter.py
+++ b/pgcli/pgcompleter.py
@@ -557,9 +557,10 @@ class PGCompleter(Completer):
def get_from_clause_item_matches(self, suggestion, word_before_cursor):
alias = self.generate_aliases
- t_sug = Table(*suggestion)
- v_sug = View(*suggestion)
- f_sug = Function(*suggestion, filter='for_from_clause')
+ s = suggestion
+ t_sug = Table(s.schema, s.table_refs, s.local_tables)
+ v_sug = View(s.schema, s.table_refs)
+ f_sug = Function(s.schema, s.table_refs, filter='for_from_clause')
return (self.get_table_matches(t_sug, word_before_cursor, alias)
+ self.get_view_matches(v_sug, word_before_cursor, alias)
+ self.get_function_matches(f_sug, word_before_cursor, alias))