Browse Source

HUE-5346 [editor] Prepare the parser for suggesting top aggregate functions

Johan Ahlen 9 years ago
parent
commit
6927305a7d

+ 15 - 4
desktop/core/src/desktop/static/desktop/js/autocomplete/sql.js

@@ -4242,7 +4242,7 @@ _handle_error:
 // See the License for the specific language governing permissions and
 // See the License for the specific language governing permissions and
 // limitations under the License.
 // limitations under the License.
 
 
-var SIMPLE_TABLE_REF_SUGGESTIONS = ['suggestJoinConditions', 'suggestFilters', 'suggestGroupBys', 'suggestOrderBys'];
+var SIMPLE_TABLE_REF_SUGGESTIONS = ['suggestJoinConditions', 'suggestAggregateFunctions', 'suggestFilters', 'suggestGroupBys', 'suggestOrderBys'];
 
 
 var prepareNewStatement = function () {
 var prepareNewStatement = function () {
   linkTablePrimaries();
   linkTablePrimaries();
@@ -4612,7 +4612,7 @@ var prioritizeSuggestions = function () {
   parser.yy.result.lowerCase = parser.yy.lowerCase || false;
   parser.yy.result.lowerCase = parser.yy.lowerCase || false;
 
 
   SIMPLE_TABLE_REF_SUGGESTIONS.forEach(function (suggestionType) {
   SIMPLE_TABLE_REF_SUGGESTIONS.forEach(function (suggestionType) {
-    if (typeof parser.yy.result[suggestionType] !== 'undefined' && parser.yy.result[suggestionType].tables.length === 0) {
+    if (suggestionType !== 'suggestAggregateFunctions' && typeof parser.yy.result[suggestionType] !== 'undefined' && parser.yy.result[suggestionType].tables.length === 0) {
       delete parser.yy.result[suggestionType];
       delete parser.yy.result[suggestionType];
     }
     }
   });
   });
@@ -5265,7 +5265,18 @@ var suggestFunctions = function (details) {
 };
 };
 
 
 var suggestAggregateFunctions = function () {
 var suggestAggregateFunctions = function () {
-  parser.yy.result.suggestAggregateFunctions = true;
+  var primaries = [];
+  var aliases = {};
+  parser.yy.latestTablePrimaries.forEach(function (primary) {
+    if (typeof primary.alias !== 'undefined') {
+      aliases[primary.alias] = true;
+    }
+    // Drop if the first one refers to a table alias (...FROM tbl t, t.map tm ...)
+    if (typeof primary.identifierChain !== 'undefined' && !aliases[primary.identifierChain[0].name] && typeof primary.owner === 'undefined') {
+      primaries.push(primary);
+    }
+  });
+  parser.yy.result.suggestAggregateFunctions = { tablePrimaries: primaries };
 };
 };
 
 
 var suggestAnalyticFunctions = function () {
 var suggestAnalyticFunctions = function () {
@@ -5553,7 +5564,7 @@ parser.parseSql = function (beforeCursor, afterCursor, dialect, debug) {
       delete parser.yy.result[suggestionType].linked;
       delete parser.yy.result[suggestionType].linked;
     }
     }
   });
   });
-  
+
   if (typeof parser.yy.result.colRef !== 'undefined') {
   if (typeof parser.yy.result.colRef !== 'undefined') {
     delete parser.yy.result.colRef.linked;
     delete parser.yy.result.colRef.linked;
   }
   }

+ 14 - 3
desktop/core/src/desktop/static/desktop/js/autocomplete/sql_support.js

@@ -14,7 +14,7 @@
 // See the License for the specific language governing permissions and
 // See the License for the specific language governing permissions and
 // limitations under the License.
 // limitations under the License.
 
 
-var SIMPLE_TABLE_REF_SUGGESTIONS = ['suggestJoinConditions', 'suggestFilters', 'suggestGroupBys', 'suggestOrderBys'];
+var SIMPLE_TABLE_REF_SUGGESTIONS = ['suggestJoinConditions', 'suggestAggregateFunctions', 'suggestFilters', 'suggestGroupBys', 'suggestOrderBys'];
 
 
 var prepareNewStatement = function () {
 var prepareNewStatement = function () {
   linkTablePrimaries();
   linkTablePrimaries();
@@ -384,7 +384,7 @@ var prioritizeSuggestions = function () {
   parser.yy.result.lowerCase = parser.yy.lowerCase || false;
   parser.yy.result.lowerCase = parser.yy.lowerCase || false;
 
 
   SIMPLE_TABLE_REF_SUGGESTIONS.forEach(function (suggestionType) {
   SIMPLE_TABLE_REF_SUGGESTIONS.forEach(function (suggestionType) {
-    if (typeof parser.yy.result[suggestionType] !== 'undefined' && parser.yy.result[suggestionType].tables.length === 0) {
+    if (suggestionType !== 'suggestAggregateFunctions' && typeof parser.yy.result[suggestionType] !== 'undefined' && parser.yy.result[suggestionType].tables.length === 0) {
       delete parser.yy.result[suggestionType];
       delete parser.yy.result[suggestionType];
     }
     }
   });
   });
@@ -1037,7 +1037,18 @@ var suggestFunctions = function (details) {
 };
 };
 
 
 var suggestAggregateFunctions = function () {
 var suggestAggregateFunctions = function () {
-  parser.yy.result.suggestAggregateFunctions = true;
+  var primaries = [];
+  var aliases = {};
+  parser.yy.latestTablePrimaries.forEach(function (primary) {
+    if (typeof primary.alias !== 'undefined') {
+      aliases[primary.alias] = true;
+    }
+    // Drop if the first one refers to a table alias (...FROM tbl t, t.map tm ...)
+    if (typeof primary.identifierChain !== 'undefined' && !aliases[primary.identifierChain[0].name] && typeof primary.owner === 'undefined') {
+      primaries.push(primary);
+    }
+  });
+  parser.yy.result.suggestAggregateFunctions = { tablePrimaries: primaries };
 };
 };
 
 
 var suggestAnalyticFunctions = function () {
 var suggestAnalyticFunctions = function () {

+ 4 - 4
desktop/core/src/desktop/static/desktop/spec/autocomplete/sqlSpecCreate.js

@@ -445,7 +445,7 @@
             expectedResult: {
             expectedResult: {
               lowerCase: false,
               lowerCase: false,
               suggestAnalyticFunctions: true,
               suggestAnalyticFunctions: true,
-              suggestAggregateFunctions: true,
+              suggestAggregateFunctions: { tables: [] },
               suggestFunctions: {}
               suggestFunctions: {}
             }
             }
           });
           });
@@ -473,7 +473,7 @@
             expectedResult: {
             expectedResult: {
               lowerCase: false,
               lowerCase: false,
               suggestAnalyticFunctions: true,
               suggestAnalyticFunctions: true,
-              suggestAggregateFunctions: true,
+              suggestAggregateFunctions: { tables: [] },
               suggestFunctions: {}
               suggestFunctions: {}
             }
             }
           });
           });
@@ -2293,7 +2293,7 @@
           hasLocations:true,
           hasLocations:true,
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'tableOne' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns:  { source: 'select', tables: [{ identifierChain: [{ name: 'tableOne' }] }] },
             suggestColumns:  { source: 'select', tables: [{ identifierChain: [{ name: 'tableOne' }] }] },
@@ -2379,7 +2379,7 @@
             hasLocations:true,
             hasLocations:true,
             expectedResult: {
             expectedResult: {
               lowerCase: false,
               lowerCase: false,
-              suggestAggregateFunctions: true,
+              suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'tableOne' }] }] },
               suggestAnalyticFunctions: true,
               suggestAnalyticFunctions: true,
               suggestFunctions: {},
               suggestFunctions: {},
               suggestColumns: { source: 'select', tables: [{ identifierChain: [{ name: 'tableOne' }] }] },
               suggestColumns: { source: 'select', tables: [{ identifierChain: [{ name: 'tableOne' }] }] },

+ 3 - 3
desktop/core/src/desktop/static/desktop/spec/autocomplete/sqlSpecError.js

@@ -34,7 +34,7 @@
         expectedResult: {
         expectedResult: {
           lowerCase: false,
           lowerCase: false,
           suggestFunctions: {},
           suggestFunctions: {},
-          suggestAggregateFunctions: true,
+          suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
           suggestAnalyticFunctions: true,
           suggestAnalyticFunctions: true,
           suggestColumns: { tables: [{ identifierChain: [{ name: 'testTable' }] }] }
           suggestColumns: { tables: [{ identifierChain: [{ name: 'testTable' }] }] }
         }
         }
@@ -49,7 +49,7 @@
         expectedResult: {
         expectedResult: {
           lowerCase: false,
           lowerCase: false,
           suggestFunctions: {},
           suggestFunctions: {},
-          suggestAggregateFunctions: true,
+          suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
           suggestAnalyticFunctions: true,
           suggestAnalyticFunctions: true,
           suggestColumns: { tables: [{ identifierChain: [{ name: 'testTable' }] }] }
           suggestColumns: { tables: [{ identifierChain: [{ name: 'testTable' }] }] }
         }
         }
@@ -64,7 +64,7 @@
         expectedResult: {
         expectedResult: {
           lowerCase: false,
           lowerCase: false,
           suggestFunctions: {},
           suggestFunctions: {},
-          suggestAggregateFunctions: true,
+          suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
           suggestAnalyticFunctions: true,
           suggestAnalyticFunctions: true,
           suggestColumns: { tables: [{ identifierChain: [{ name: 'testTable' }] }] }
           suggestColumns: { tables: [{ identifierChain: [{ name: 'testTable' }] }] }
         }
         }

+ 7 - 7
desktop/core/src/desktop/static/desktop/spec/autocomplete/sqlSpecInsert.js

@@ -377,7 +377,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestFunctions: {},
             suggestFunctions: {},
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'baa' }, { name: 'boo' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestColumns: { tables: [{ identifierChain: [{ name: 'baa' }, { name: 'boo' }] }] }
             suggestColumns: { tables: [{ identifierChain: [{ name: 'baa' }, { name: 'boo' }] }] }
           }
           }
@@ -395,7 +395,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestFunctions: {},
             suggestFunctions: {},
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'baa' }, { name: 'boo' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestColumns: { tables: [{ identifierChain: [{ name: 'baa' }, { name: 'boo' }] }] }
             suggestColumns: { tables: [{ identifierChain: [{ name: 'baa' }, { name: 'boo' }] }] }
           }
           }
@@ -527,7 +527,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestFunctions: {},
             suggestFunctions: {},
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'baa' }, { name: 'boo' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestColumns: { tables: [{ identifierChain: [{ name: 'baa' }, { name: 'boo' }] }] }
             suggestColumns: { tables: [{ identifierChain: [{ name: 'baa' }, { name: 'boo' }] }] }
           }
           }
@@ -579,7 +579,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestFunctions: {},
             suggestFunctions: {},
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'baa' }, { name: 'boo' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestColumns: { tables: [{ identifierChain: [{ name: 'baa' }, { name: 'boo' }] }] }
             suggestColumns: { tables: [{ identifierChain: [{ name: 'baa' }, { name: 'boo' }] }] }
           }
           }
@@ -709,7 +709,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestFunctions: {},
             suggestFunctions: {},
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestTables: { prependFrom: true, prependQuestionMark: true },
             suggestTables: { prependFrom: true, prependQuestionMark: true },
             suggestDatabases:  { prependFrom: true, prependQuestionMark: true, appendDot: true }
             suggestDatabases:  { prependFrom: true, prependQuestionMark: true, appendDot: true }
@@ -727,7 +727,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestFunctions: {},
             suggestFunctions: {},
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestTables: { prependFrom: true, prependQuestionMark: true },
             suggestTables: { prependFrom: true, prependQuestionMark: true },
             suggestDatabases:  { prependFrom: true, prependQuestionMark: true, appendDot: true }
             suggestDatabases:  { prependFrom: true, prependQuestionMark: true, appendDot: true }
@@ -914,7 +914,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestFunctions: {},
             suggestFunctions: {},
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestTables: { prependFrom: true, prependQuestionMark: true },
             suggestTables: { prependFrom: true, prependQuestionMark: true },
             suggestDatabases:  { prependFrom: true, prependQuestionMark: true, appendDot: true }
             suggestDatabases:  { prependFrom: true, prependQuestionMark: true, appendDot: true }

+ 56 - 53
desktop/core/src/desktop/static/desktop/spec/autocomplete/sqlSpecSelect.js

@@ -283,8 +283,8 @@
             lowerCase: false,
             lowerCase: false,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
-            suggestAggregateFunctions: true,
-            suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }]}] },
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
+            suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] },
             suggestKeywords: ['*']
             suggestKeywords: ['*']
           }
           }
         });
         });
@@ -299,8 +299,8 @@
             lowerCase: false,
             lowerCase: false,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
-            suggestAggregateFunctions: true,
-            suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }]}] },
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
+            suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] },
             suggestKeywords: ['*']
             suggestKeywords: ['*']
           }
           }
         });
         });
@@ -339,7 +339,7 @@
               prependQuestionMark: true,
               prependQuestionMark: true,
               prependFrom: true
               prependFrom: true
             },
             },
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestDatabases: {
             suggestDatabases: {
@@ -358,7 +358,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: true,
             lowerCase: true,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestTables: {
             suggestTables: {
@@ -382,7 +382,7 @@
           doesNotContainKeywords: ['ALL', 'DISTINCT'],
           doesNotContainKeywords: ['ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestTables: {
             suggestTables: {
@@ -448,7 +448,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'tableA' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'tableA' }] }] }
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'tableA' }] }] }
@@ -463,7 +463,7 @@
           hasLocations: true,
           hasLocations: true,
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'tableA' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'tableA' }] }] }
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'tableA' }] }] }
@@ -479,7 +479,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'tableA' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'tableA' }] }] }
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'tableA' }] }] }
@@ -494,7 +494,7 @@
           hasLocations: true,
           hasLocations: true,
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'tableA' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'tableA' }] }] }
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'tableA' }] }] }
@@ -510,7 +510,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testWHERE' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testWHERE' }] }] }
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testWHERE' }] }] }
@@ -568,7 +568,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testON' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testON' }] }] }
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testON' }] }] }
@@ -584,7 +584,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'transactions' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'transactions' }] }] }
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'transactions' }] }] }
@@ -600,7 +600,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTableA' }], alias: 'tta' }, { identifierChain: [{ name: 'testTableB' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTableA' }], alias: 'tta' }, { identifierChain: [{ name: 'testTableB' }] }] },
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTableA' }], alias: 'tta' }, { identifierChain: [{ name: 'testTableB' }] }] },
@@ -618,7 +618,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'db' }, { name: 'tbl1' }] }, { identifierChain: [{ name: 'db' }, { name: 'tbl2' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'db' }, { name: 'tbl1' }] }, { identifierChain: [{ name: 'db' }, { name: 'tbl2' }] }] },
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'db' }, { name: 'tbl1' }] }, { identifierChain: [{ name: 'db' }, { name: 'tbl2' }] }] },
@@ -636,7 +636,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'db' }, { name: 'tbl1' }, { name: 'col' }] }, { identifierChain: [{ name: 'db' }, { name: 'tbl2' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'db' }, { name: 'tbl1' }, { name: 'col' }] }, { identifierChain: [{ name: 'db' }, { name: 'tbl2' }] }] },
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'db' }, { name: 'tbl1' }, { name: 'col' }] }, { identifierChain: [{ name: 'db' }, { name: 'tbl2' }] }] },
@@ -653,7 +653,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: true,
             lowerCase: true,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'database_two' }, { name: 'testTable' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'database_two' }, { name: 'testTable' }] }] }
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'database_two' }, { name: 'testTable' }] }] }
@@ -668,7 +668,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: true,
             lowerCase: true,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'database one' }, { name: 'test table' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'database one' }, { name: 'test table' }] }] },
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'database one' }, { name: 'test table' }] }] },
@@ -688,7 +688,7 @@
           hasLocations: true,
           hasLocations: true,
           dialect: 'hive',
           dialect: 'hive',
           expectedResult: {
           expectedResult: {
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTableA' }], alias: 'tta' }, { identifierChain: [{ name: 'testTableB' }], alias: 'ttb' }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestKeywords: ['*', 'ALL', 'DISTINCT'],
             suggestKeywords: ['*', 'ALL', 'DISTINCT'],
             suggestFunctions: {},
             suggestFunctions: {},
@@ -711,7 +711,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestKeywords: ['*'],
             suggestKeywords: ['*'],
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'tableA' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'tableA' }] }] }
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'tableA' }] }] }
@@ -727,7 +727,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestKeywords: ['*'],
             suggestKeywords: ['*'],
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] }
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] }
@@ -743,7 +743,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestKeywords: ['*'],
             suggestKeywords: ['*'],
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'tableA' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'tableA' }] }] }
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'tableA' }] }] }
@@ -815,7 +815,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] }
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] }
@@ -830,7 +830,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestKeywords: ['*'],
             suggestKeywords: ['*'],
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] },
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] },
@@ -858,7 +858,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: '${some_variable}' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: '${some_variable}' }] }] }
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: '${some_variable}' }] }] }
@@ -929,7 +929,7 @@
           containsKeywords: ['*'],
           containsKeywords: ['*'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions:true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestTables: { prependQuestionMark: true, prependFrom: true },
             suggestTables: { prependQuestionMark: true, prependFrom: true },
@@ -2767,7 +2767,7 @@
                 {type: 'function', location: { first_line: 1, last_line: 1, first_column: 37, last_column: 43 }, function: 'explode'},
                 {type: 'function', location: { first_line: 1, last_line: 1, first_column: 37, last_column: 43 }, function: 'explode'},
                 {type: 'column', location: { first_line: 1, last_line: 1, first_column: 45, last_column: 54 }, identifierChain: [{ name: 'testTable' }, { name: 'testArray' }] }
                 {type: 'column', location: { first_line: 1, last_line: 1, first_column: 45, last_column: 54 }, identifierChain: [{ name: 'testTable' }, { name: 'testArray' }] }
               ],
               ],
-              suggestAggregateFunctions: true,
+              suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestAnalyticFunctions: true,
               suggestAnalyticFunctions: true,
               suggestKeywords: ['*', 'ALL', 'DISTINCT'],
               suggestKeywords: ['*', 'ALL', 'DISTINCT'],
               suggestFunctions: {},
               suggestFunctions: {},
@@ -2787,7 +2787,7 @@
             noErrors: true,
             noErrors: true,
             containsKeywords: ['*', 'ALL', 'DISTINCT'],
             containsKeywords: ['*', 'ALL', 'DISTINCT'],
             expectedResult: {
             expectedResult: {
-              suggestAggregateFunctions: true,
+              suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestAnalyticFunctions: true,
               suggestAnalyticFunctions: true,
               suggestFunctions: {},
               suggestFunctions: {},
               suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] },
@@ -2806,7 +2806,7 @@
             hasLocations: true,
             hasLocations: true,
             containsKeywords: ['*', 'ALL', 'DISTINCT'],
             containsKeywords: ['*', 'ALL', 'DISTINCT'],
             expectedResult: {
             expectedResult: {
-              suggestAggregateFunctions: true,
+              suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }], alias: 't' }] },
               suggestAnalyticFunctions: true,
               suggestAnalyticFunctions: true,
               suggestFunctions: {},
               suggestFunctions: {},
               suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }], alias: 't' }] },
               suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }], alias: 't' }] },
@@ -2825,7 +2825,7 @@
             expectedResult: {
             expectedResult: {
               lowerCase: false,
               lowerCase: false,
               suggestFunctions: {},
               suggestFunctions: {},
-              suggestAggregateFunctions: true,
+              suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestAnalyticFunctions: true,
               suggestAnalyticFunctions: true,
               suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestKeywords: ['*','ALL','DISTINCT']
               suggestKeywords: ['*','ALL','DISTINCT']
@@ -2886,7 +2886,7 @@
               lowerCase: false,
               lowerCase: false,
               suggestKeywords: ['*', 'ALL', 'DISTINCT'],
               suggestKeywords: ['*', 'ALL', 'DISTINCT'],
               suggestColumns: { source: 'select', tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestColumns: { source: 'select', tables: [{ identifierChain: [{ name: 'testTable' }] }] },
-              suggestAggregateFunctions: true,
+              suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestAnalyticFunctions: true,
               suggestAnalyticFunctions: true,
               suggestFunctions: {},
               suggestFunctions: {},
               suggestIdentifiers: [{ name: 'explodedTable.', type: 'alias' }, { name: 'testKey', type: 'alias' }, { name: 'testValue', type: 'alias' }]
               suggestIdentifiers: [{ name: 'explodedTable.', type: 'alias' }, { name: 'testKey', type: 'alias' }, { name: 'testValue', type: 'alias' }]
@@ -3063,7 +3063,7 @@
             expectedResult: {
             expectedResult: {
               lowerCase: false,
               lowerCase: false,
               suggestKeywords: ['*', 'ALL', 'DISTINCT'],
               suggestKeywords: ['*', 'ALL', 'DISTINCT'],
-              suggestAggregateFunctions: true,
+              suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestAnalyticFunctions: true,
               suggestAnalyticFunctions: true,
               suggestFunctions: {},
               suggestFunctions: {},
               suggestIdentifiers: [{ name: 'explodedMap.', type: 'alias' }, { name: 'testMapKey', type: 'alias' }, { name: 'testMapValue', type: 'alias' }],
               suggestIdentifiers: [{ name: 'explodedMap.', type: 'alias' }, { name: 'testMapKey', type: 'alias' }, { name: 'testMapValue', type: 'alias' }],
@@ -3222,7 +3222,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestKeywords: ['*', 'ALL', 'DISTINCT', 'STRAIGHT_JOIN'],
             suggestKeywords: ['*', 'ALL', 'DISTINCT', 'STRAIGHT_JOIN'],
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }], alias: 't' }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }], alias: 't' }] },
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }], alias: 't' }] },
@@ -4737,7 +4737,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestFunctions: {},
             suggestFunctions: {},
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] },
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] },
             suggestKeywords: ['*']
             suggestKeywords: ['*']
@@ -4753,7 +4753,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestFunctions: {},
             suggestFunctions: {},
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] },
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] },
             suggestKeywords: ['*']
             suggestKeywords: ['*']
@@ -4770,7 +4770,7 @@
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
             suggestFunctions: {},
             suggestFunctions: {},
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] }
             suggestColumns: { source: 'select',  tables: [{ identifierChain: [{ name: 'testTable' }] }] }
           }
           }
@@ -5510,7 +5510,7 @@
             expectedResult: {
             expectedResult: {
               lowerCase: false,
               lowerCase: false,
               suggestFunctions: {},
               suggestFunctions: {},
-              suggestAggregateFunctions: true,
+              suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestColumns: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestColumns: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestColumnAliases: [{ name: 'boo', types: ['BIGINT'] }]
               suggestColumnAliases: [{ name: 'boo', types: ['BIGINT'] }]
             }
             }
@@ -5529,7 +5529,7 @@
             expectedResult: {
             expectedResult: {
               lowerCase: false,
               lowerCase: false,
               suggestFunctions: {},
               suggestFunctions: {},
-              suggestAggregateFunctions: true,
+              suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestColumns: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestColumns: { tables: [{ identifierChain: [{ name: 'testTable' }] }] },
               suggestColumnAliases: [{ name: 'boo', types: ['BIGINT'] }]
               suggestColumnAliases: [{ name: 'boo', types: ['BIGINT'] }]
             }
             }
@@ -5823,7 +5823,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestTables: {
             suggestTables: {
@@ -5923,7 +5923,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestTables: { prependQuestionMark: true, prependFrom: true },
             suggestTables: { prependQuestionMark: true, prependFrom: true },
@@ -6850,7 +6850,7 @@
           hasLocations: true,
           hasLocations: true,
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestTables: {
             suggestTables: {
@@ -6875,7 +6875,7 @@
           hasLocations: true,
           hasLocations: true,
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestTables: {
             suggestTables: {
@@ -6922,7 +6922,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestTables: {
             suggestTables: {
@@ -6971,7 +6971,7 @@
               {type: 'table', location: { first_line: 1, last_line: 1, first_column: 45, last_column: 48}, identifierChain: [{ name: 'abc' }]},
               {type: 'table', location: { first_line: 1, last_line: 1, first_column: 45, last_column: 48}, identifierChain: [{ name: 'abc' }]},
               {type: 'column', location: { first_line: 1, last_line: 1, first_column: 55, last_column: 58}, identifierChain: [{ name: 'abc' }, { name: 'foo'}]}
               {type: 'column', location: { first_line: 1, last_line: 1, first_column: 55, last_column: 58}, identifierChain: [{ name: 'abc' }, { name: 'foo'}]}
             ],
             ],
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'testTable' }], alias: 'tt' }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select', tables: [{ identifierChain: [{ name: 'testTable' }], alias: 'tt' }, { identifierChain: [{ subQuery: 'bar' }] }] },
             suggestColumns: { source: 'select', tables: [{ identifierChain: [{ name: 'testTable' }], alias: 'tt' }, { identifierChain: [{ subQuery: 'bar' }] }] },
@@ -6994,7 +6994,7 @@
           hasLocations: true,
           hasLocations: true,
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select', tables: [{ identifierChain: [{ subQuery: 'bar' }] }] },
             suggestColumns: { source: 'select', tables: [{ identifierChain: [{ subQuery: 'bar' }] }] },
@@ -7083,7 +7083,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestTables: {
             suggestTables: {
@@ -7107,7 +7107,10 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           dialect: 'hive',
           dialect: 'hive',
           expectedResult: {
           expectedResult: {
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [
+              { identifierChain: [{ name: 'someDb' }, { name: 'tableTwo' }], alias: 'tAlias' },
+              { identifierChain: [{ name: 'tableThree' }] }
+            ] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select', tables: [
             suggestColumns: { source: 'select', tables: [
@@ -7137,7 +7140,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase: false,
             lowerCase: false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [{ identifierChain: [{ name: 'tableOne' }] }] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select', tables: [{ identifierChain: [{ name: 'tableOne' }] }] }
             suggestColumns: { source: 'select', tables: [{ identifierChain: [{ name: 'tableOne' }] }] }
@@ -7152,7 +7155,7 @@
           hasLocations: true,
           hasLocations: true,
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select', tables: [{ identifierChain: [{ subQuery: 'subQueryTwo'}] }] },
             suggestColumns: { source: 'select', tables: [{ identifierChain: [{ subQuery: 'subQueryTwo'}] }] },
@@ -7178,7 +7181,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase:false,
             lowerCase:false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select', tables: [{ identifierChain: [{ subQuery: 'subQueryThree'}] }] },
             suggestColumns: { source: 'select', tables: [{ identifierChain: [{ subQuery: 'subQueryThree'}] }] },
@@ -7207,7 +7210,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase:false,
             lowerCase:false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select', tables: [{ identifierChain: [{ subQuery: 'subQueryTwo'}] }] },
             suggestColumns: { source: 'select', tables: [{ identifierChain: [{ subQuery: 'subQueryTwo'}] }] },
@@ -7232,7 +7235,7 @@
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           containsKeywords: ['*', 'ALL', 'DISTINCT'],
           expectedResult: {
           expectedResult: {
             lowerCase:false,
             lowerCase:false,
-            suggestAggregateFunctions: true,
+            suggestAggregateFunctions: { tables: [] },
             suggestAnalyticFunctions: true,
             suggestAnalyticFunctions: true,
             suggestFunctions: {},
             suggestFunctions: {},
             suggestColumns: { source: 'select', tables: [{ identifierChain: [{ subQuery: 'subQueryOne'}] }] },
             suggestColumns: { source: 'select', tables: [{ identifierChain: [{ subQuery: 'subQueryOne'}] }] },

+ 3 - 3
desktop/core/src/desktop/static/desktop/spec/autocomplete/sqlSpecUse.js

@@ -69,7 +69,7 @@
         expectedResult: {
         expectedResult: {
           useDatabase: 'database_two',
           useDatabase: 'database_two',
           lowerCase: true,
           lowerCase: true,
-          suggestAggregateFunctions: true,
+          suggestAggregateFunctions: { tables: [] },
           suggestAnalyticFunctions: true,
           suggestAnalyticFunctions: true,
           suggestFunctions: {},
           suggestFunctions: {},
           suggestTables: {
           suggestTables: {
@@ -93,7 +93,7 @@
         expectedResult: {
         expectedResult: {
           useDatabase: 'closest_db',
           useDatabase: 'closest_db',
           lowerCase: false,
           lowerCase: false,
-          suggestAggregateFunctions: true,
+          suggestAggregateFunctions: { tables: [] },
           suggestAnalyticFunctions: true,
           suggestAnalyticFunctions: true,
           suggestFunctions: {},
           suggestFunctions: {},
           suggestTables: {
           suggestTables: {
@@ -117,7 +117,7 @@
         expectedResult: {
         expectedResult: {
           useDatabase: 'closest_db',
           useDatabase: 'closest_db',
           lowerCase: false,
           lowerCase: false,
-          suggestAggregateFunctions: true,
+          suggestAggregateFunctions: { tables: [] },
           suggestAnalyticFunctions: true,
           suggestAnalyticFunctions: true,
           suggestFunctions: {},
           suggestFunctions: {},
           suggestTables: {
           suggestTables: {