[ 
https://issues.apache.org/jira/browse/DRILL-6084?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16647761#comment-16647761
 ] 

ASF GitHub Bot commented on DRILL-6084:
---------------------------------------

arina-ielchiieva commented on a change in pull request #1491: DRILL-6084: Show 
Drill functions in WebUI for autocomplete
URL: https://github.com/apache/drill/pull/1491#discussion_r224741648
 
 

 ##########
 File path: 
exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/WebServer.java
 ##########
 @@ -495,4 +509,50 @@ private void generateOptionsDescriptionJSFile() throws 
IOException {
       writer.flush();
     }
   }
+
+  //Generates ACE library javascript populated with list of available SQL 
functions
+  private void generateFunctionJS() throws IOException {
+    //Naturally ordered set of function names
+    TreeSet<String> functionSet = new TreeSet<>();
+    //Extracting ONLY builtIn functions (i.e those already available)
+    List<FunctionHolder> builtInFuncHolderList = 
this.drillbit.getContext().getFunctionImplementationRegistry().getLocalFunctionRegistry()
+        .getAllJarsWithFunctionsHolders().get(LocalFunctionRegistry.BUILT_IN);
+
+    //Build List of usable functions
+    int skipCount = 0;
+    for (FunctionHolder builtInFunctionHolder : builtInFuncHolderList) {
+      String name = builtInFunctionHolder.getName();
+      if (!name.contains(" ") && name.matches("([a-z]|[A-Z])\\w+")) {
+        functionSet.add(name);
+      } else {
+        logger.debug("Non-alphabetic leading character. Function skipped : {} 
", name);
+        skipCount++;
+      }
+    }
+    logger.debug("{} functions will not be available in WebUI : {} ", 
skipCount);
 
 Review comment:
   There are two `{}` but only one parameter.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> Expose list of Drill functions for consumption by JavaScript libraries
> ----------------------------------------------------------------------
>
>                 Key: DRILL-6084
>                 URL: https://issues.apache.org/jira/browse/DRILL-6084
>             Project: Apache Drill
>          Issue Type: Improvement
>          Components: Web Server
>            Reporter: Kunal Khatua
>            Assignee: Kunal Khatua
>            Priority: Minor
>              Labels: javascript
>             Fix For: 1.15.0
>
>
> DRILL-5868 introduces SQL highlighter and the auto-complete feature in the 
> web-UI's query editor.
> For the backend Javascript to highlight the keywords correctly as SQL 
> reserved words or functions, it needs a list of all the Drill functions to be 
> already defined in a source JavaScript ( {{../mode-sql.js}} ) .
> While this works well for standard Drill functions, it means that any new 
> function added to Drill needs to be explicitly hard-coded into the file, 
> rather than be programatically discovered and loaded for the library to 
> highlight.
> It would help if this can be done dynamically without contributors having to 
> explicitly alter the script file to add new function names.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to