Browse Source

HUE-1771 [pig] HCatalog table autocomple does an insert

Added better autocompletion for HCatalog
Added ; to FOREACH statements on Navigator
Enrico Berti 12 years ago
parent
commit
14743b2
2 changed files with 16 additions and 4 deletions
  1. 3 3
      apps/pig/src/pig/templates/app.mako
  2. 13 1
      desktop/core/static/js/codemirror-pig-hint.js

+ 3 - 3
apps/pig/src/pig/templates/app.mako

@@ -222,8 +222,8 @@ ${ commonheader(None, "pig", user) | n,unicode }
                         <li><a href="#">DISTINCT %VAR%;</a></li>
                         <li><a href="#">FILTER %VAR% BY %COND%</a></li>
                         <li><a href="#">FLATTEN(%VAR%)</a></li>
-                        <li><a href="#">FOREACH %DATA% GENERATE %NEW_DATA%</a></li>
-                        <li><a href="#">FOREACH %DATA% {%NESTED_BLOCK%}</a></li>
+                        <li><a href="#">FOREACH %DATA% GENERATE %NEW_DATA%;</a></li>
+                        <li><a href="#">FOREACH %DATA% {%NESTED_BLOCK%};</a></li>
                         <li><a href="#">GROUP %VAR% BY %VAR%</a></li>
                         <li><a href="#">GROUP %VAR% ALL</a></li>
                         <li><a href="#">JOIN %VAR% BY </a></li>
@@ -929,7 +929,7 @@ ${ commonheader(None, "pig", user) | n,unicode }
         CodeMirror.isPath = false;
         CodeMirror.isTable = false;
         CodeMirror.isHCatHint = false;
-        CodeMirror.showHint(cm, CodeMirror.pigHint);
+        CodeMirror.showHint(codeMirror, CodeMirror.pigHint);
       }
     }
     codeMirror = CodeMirror(function (elt) {

+ 13 - 1
desktop/core/static/js/codemirror-pig-hint.js

@@ -39,7 +39,19 @@
 
     if (token.string.indexOf("'") == 0){
       CodeMirror.isPath = !CodeMirror.isTable;
-      token.string = token.string.substring(1, token.string.length);
+      if (CodeMirror.isTable) {
+        var line = editor.getLine(cur.line);
+        var USING_CLAUSE = "USING org.apache.hcatalog.pig.HCatLoader();";
+        if (token.string.indexOf(USING_CLAUSE) > -1) {
+          token.end = token.end - USING_CLAUSE.length;
+        }
+        token.string = token.string.substring(1, cur.ch - line.indexOf(token.string));
+        token.start = token.start + 1;
+        token.end = token.end - 1;
+      }
+      else {
+        token.string = token.string.substring(1, token.string.length);
+      }
     }
     if (token.string.indexOf("/") > -1){
       token.string = token.string.substring(token.string.lastIndexOf("/") + 1);