瀏覽代碼

HUE-1972 [impala] Update built in function autocomplete

Updated function list
Separated editor modes
Enrico Berti 11 年之前
父節點
當前提交
299baf3738

+ 4 - 0
apps/beeswax/src/beeswax/templates/execute.mako

@@ -1353,7 +1353,11 @@ $(document).ready(function () {
     value: queryEditor.value,
     readOnly: false,
     lineNumbers: true,
+    % if app_name == 'impala':
+    mode: "text/x-impalaql",
+    % else:
     mode: "text/x-hiveql",
+    % endif
     extraKeys: {
       "Ctrl-Space": function () {
         CodeMirror.fromDot = false;

+ 10 - 0
desktop/core/static/js/codemirror-hql.js

@@ -293,4 +293,14 @@ CodeMirror.defineMode("sql", function (config, parserConfig) {
     dateSQL: set("date time timestamp"),
     support: set("ODBCdotTable zerolessFloat")
   });
+
+  CodeMirror.defineMIME("text/x-impalaql", {
+    name: "sql",
+    keywords: set("all and as by case comment create database databases delimited describe distinct drop exists explain external fields format from group having if insert into join like limit lines location not or order overwrite partitioned refresh row schema schemas select show stored table tables terminated union use when where invalidate metadata"),
+    builtin: set("tinyint smallint int bigint boolean float double string timestamp parquetfile sequencefile textfile rcfile"),
+    functions: set("abs acos ascii asin atan avg bin cast ceil ceiling coalesce concat concat_ws count conv cos date_add date_sub datediff day dayname dayofmonth dayofweek degrees e exp find_in_set floor fnv_hash from_unixtime from_utc_timestamp greatest group_concat hex hour if initcap instr isnull lcase least length ln locate log log10 log2 lower lpad ltrim max min minute month ndv negative now nvl parse_url pi pmod positive pow power quotient radians rand regexp_extract repeat reverse round rpad rtrim second sign sin space sqrt substr substring sum tan to_date to_utc_timestamp translate trim ucase unhex unix_timestamp upper user weekofyear year"),
+    atoms: set("false true null"),
+    operatorChars: /^[*+\-%<>!=~&|^]/,
+    dateSQL: set("timestamp")
+  });
 }());

+ 2 - 2
desktop/core/static/js/codemirror-isql-hint.js

@@ -68,7 +68,7 @@
     });
   };
 
-  var impalaSQLKeywords = "ALL AND AS BY COMMENT CREATE DATABASE DATABASES DELIMITED DESCRIBE DISTINCT DROP EXISTS EXPLAIN EXTERNAL FIELDS FORMAT FROM GROUP HAVING IF INSERT INTO JOIN LIKE LIMIT LINES LOCATION NOT OR ORDER OVERWRITE PARTITIONED REFRESH ROW SCHEMA SCHEMAS SELECT SHOW STORED TABLE TABLES TERMINATED UNION USE WHERE INVALIDATE METADATA";
+  var impalaSQLKeywords = "ALL AND AS BY CASE COMMENT CREATE DATABASE DATABASES DELIMITED DESCRIBE DISTINCT DROP EXISTS EXPLAIN EXTERNAL FIELDS FORMAT FROM GROUP HAVING IF INSERT INTO JOIN LIKE LIMIT LINES LOCATION NOT OR ORDER OVERWRITE PARTITIONED REFRESH ROW SCHEMA SCHEMAS SELECT SHOW STORED TABLE TABLES TERMINATED UNION USE WHEN WHERE INVALIDATE METADATA";
   var impalaSQLKeywordsU = impalaSQLKeywords.split(" ");
   var impalaSQLKeywordsL = impalaSQLKeywords.toLowerCase().split(" ");
 
@@ -80,7 +80,7 @@
   var impalaSQLTypesU = impalaSQLTypes.split(" ");
   var impalaSQLTypesL = impalaSQLTypes.toLowerCase().split(" ");
 
-  var impalaSQLBuiltins = "COUNT SUM CAST LIKE IN BETWEEN COALESCE";
+  var impalaSQLBuiltins = "ABS ACOS ASCII ASIN ATAN AVG BIN CAST CEIL CEILING COALESCE CONCAT CONCAT_WS COUNT CONV COS DATE_ADD DATE_SUB DATEDIFF DAY DAYNAME DAYOFMONTH DAYOFWEEK DEGREES E EXP FIND_IN_SET FLOOR FNV_HASH FROM_UNIXTIME FROM_UTC_TIMESTAMP GREATEST GROUP_CONCAT HEX HOUR IF INITCAP INSTR ISNULL LCASE LEAST LENGTH LN LOCATE LOG LOG10 LOG2 LOWER LPAD LTRIM MAX MIN MINUTE MONTH NDV NEGATIVE NOW NVL PARSE_URL PI PMOD POSITIVE POW POWER QUOTIENT RADIANS RAND REGEXP_EXTRACT REPEAT REVERSE ROUND RPAD RTRIM SECOND SIGN SIN SPACE SQRT SUBSTR SUBSTRING SUM TAN TO_DATE TO_UTC_TIMESTAMP TRANSLATE TRIM UCASE UNHEX UNIX_TIMESTAMP UPPER USER WEEKOFYEAR YEAR";
   var impalaSQLBuiltinsU = impalaSQLBuiltins.split(" ").join("() ").split(" ");
   var impalaSQLBuiltinsL = impalaSQLBuiltins.toLowerCase().split(" ").join("() ").split(" ");