diff options
author | Darik Gamble <darik.gamble.spam@gmail.com> | 2016-07-23 07:14:04 -0400 |
---|---|---|
committer | Darik Gamble <darik.gamble.spam@gmail.com> | 2016-07-27 15:33:58 -0400 |
commit | f23569cc6b42a784a8715953189a79f8ad20e6c7 (patch) | |
tree | 8ef5954f95bbf4baa1b681053295726ff72c41e0 | |
parent | 8b8f2571005bdc5f1e71dc57a4f2082e038e5c3d (diff) |
Add a `local_tables` field to suggestion types to store extracted CTE definitions (not used yet)
-rw-r--r-- | pgcli/packages/sqlcompletion.py | 13 | ||||
-rw-r--r-- | pgcli/pgcompleter.py | 7 |
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)) |