diff runtime/syntax/sqlhana.vim @ 3920:c53344bacabf

Updated runtime files.
author Bram Moolenaar <bram@vim.org>
date Thu, 15 Nov 2012 21:28:22 +0100
parents
children 43efa4f5a8ea
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/sqlhana.vim
@@ -0,0 +1,293 @@
+" Vim syntax file
+" Language:    SQL, SAP HANA In Memory Database
+" Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
+" Last Change: 2012 Oct 23
+" Version:     SP4 b (Q2 2012)
+" Homepage:    http://www.vim.org/scripts/script.php?script_id=4275
+
+" Description: Updated to SAP HANA SP4
+"
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+    syntax clear
+elseif exists("b:current_syntax")
+    finish
+endif
+
+syn case ignore
+
+" The SQL reserved words, defined as keywords.
+" These were pulled from the following SQL reference:
+"     http://help.sap.com/hana/hana_sql_en.pdf
+" An easy approach is to copy all text from the PDF
+" into a Vim buffer.  The keywords are in UPPER case,
+" so you can run the following commands to be left with
+" mainly the UPPER case words:
+"   1.  Delete all words that do not begin with a Capital
+"       %s/\(\<[^A-Z]\w*\>\)//g
+"   2.  Remove all words where the 2nd letter is not a Capital
+"       %s/\(\<[A-Z][^A-Z]\w*\>\)//g
+"   3.  Remove all non-word (or space) characters
+"       %s/[^0-9A-Za-z_ ]*//g
+"   4.  Remove some known words
+"       %s/\<\(SAP\|HANA\|OK\|AG\|IBM\|DB2\|AIX\|POWER\d\+\|UNIX\)\>//g
+"   5.  Remove blank lines and trailing spaces
+"       %s/\s\+$//g
+"       %s/^\s\+//g
+"       %s/^$\n//g
+"   6.  Convert spaces to newlines remove single character
+"       %s/[ ]\+/\r/g
+"       %g/^\w$/d
+"   7.  Sort and remove duplicates
+"       :sort
+"       :Uniq
+"   8.  Use the WhatsMissing plugin against the sqlhana.vim file.
+"   9.  Generated a file of all UPPER cased words which should not
+"       be in the syntax file.  These items should be removed
+"       from the list in step 7.  You can use WhatsNotMissing
+"       between step 7 and this new file to weed out the words
+"       we know are not syntax related.
+"  10.  Use the WhatsMissingRemoveMatches to remove the words
+"       from step 9.
+
+syn keyword sqlSpecial  false null true
+
+" Supported Functions for Date/Time types
+syn keyword sqlFunction	 ADD_DAYS ADD_MONTHS ADD_SECONDS ADD_YEARS COALESCE
+syn keyword sqlFunction	 CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_UTCDATE
+syn keyword sqlFunction	 CURRENT_UTCTIME CURRENT_UTCTIMESTAMP
+syn keyword sqlFunction	 DAYNAME DAYOFMONTH DAYOFYEAR DAYS_BETWEEN EXTRACT
+syn keyword sqlFunction	 GREATEST HOUR IFNULL ISOWEEK LAST_DAY LEAST LOCALTOUTC
+syn keyword sqlFunction	 MINUTE MONTH MONTHNAME NEXT_DAY NOW QUARTER SECOND
+syn keyword sqlFunction	 SECONDS_BETWEEN UTCTOLOCAL WEEK WEEKDAY YEAR
+
+syn keyword sqlFunction	 TO_CHAR TO_DATE TO_DATS TO_NCHAR TO_TIME TO_TIMESTAMP UTCTOLOCAL
+
+" Aggregate
+syn keyword sqlFunction	 COUNT MIN MAX SUM AVG STDDEV VAR
+
+" Datatype conversion
+syn keyword sqlFunction	 CAST TO_ALPHANUM TO_BIGINT TO_BINARY TO_BLOB TO_CHAR TO_CLOB
+syn keyword sqlFunction	 TO_DATE TO_DATS TO_DECIMAL TO_DOUBLE TO_INT TO_INTEGER TO_NCHAR
+syn keyword sqlFunction	 TO_NCLOB TO_NVARCHAR TO_REAL TO_SECONDDATE TO_SMALLDECIMAL
+syn keyword sqlFunction	 TO_SMALLINT TO_TIME TO_TIMESTAMP TO_TINYINT TO_VARCHAR TO_VARBINARY
+
+" Number functions
+syn keyword sqlFunction	 ABS ACOS ASIN ATAN ATAN2 BINTOHEX BITAND CEIL COS COSH COT
+syn keyword sqlFunction	 EXP FLOOR GREATEST HEXTOBIN LEAST LN LOG MOD POWER ROUND
+syn keyword sqlFunction	 SIGN SIN SINH SQRT TAN TANH UMINUS
+
+" String functions
+syn keyword sqlFunction	 ASCII CHAR CONCAT LCASE LENGTH LOCATE LOWER LPAD LTRIM
+syn keyword sqlFunction	 NCHAR REPLACE RPAD RTRIM SUBSTR_AFTER SUBSTR_BEFORE
+syn keyword sqlFunction	 SUBSTRING TRIM UCASE UNICODE UPPER
+
+" Miscellaneous functions
+syn keyword sqlFunction	 COALESCE CURRENT_CONNECTION CURRENT_SCHEMA CURRENT_USER
+syn keyword sqlFunction	 GROUPING_ID IFNULL MAP NULLIF SESSION_CONTEXT SESSION_USER SYSUUIDSQL
+syn keyword sqlFunction	 GET_NUM_SERVERS
+
+
+" sp_ procedures
+" syn keyword sqlFunction  sp_addalias
+
+
+" Reserved keywords
+syn keyword sqlkeyword   ALL AS AT BEFORE
+syn keyword sqlkeyword   BEGIN BOTH BY
+syn keyword sqlkeyword   CONDITION
+syn keyword sqlkeyword   CURRVAL CURSOR DECLARE
+syn keyword sqlkeyword   DISTINCT DO ELSE ELSEIF ELSIF
+syn keyword sqlkeyword   END EXCEPTION EXEC
+syn keyword sqlkeyword   FOR FROM GROUP
+syn keyword sqlkeyword   HAVING IN
+syn keyword sqlkeyword   INOUT INTO IS
+syn keyword sqlkeyword   LEADING
+syn keyword sqlkeyword   LOOP MINUS NATURAL NEXTVAL
+syn keyword sqlkeyword   OF ON ORDER OUT
+syn keyword sqlkeyword   PRIOR RETURN RETURNS REVERSE
+syn keyword sqlkeyword   ROWID SELECT
+syn keyword sqlkeyword   SQL START STOP SYSDATE
+syn keyword sqlkeyword   SYSTIME SYSTIMESTAMP SYSUUID
+syn keyword sqlkeyword   TRAILING USING UTCDATE
+syn keyword sqlkeyword   UTCTIME UTCTIMESTAMP VALUES
+syn keyword sqlkeyword   WHILE
+syn keyword sqlkeyword   ANY SOME EXISTS ESCAPE
+
+" IF keywords
+syn keyword sqlkeyword	 IF
+
+" CASE keywords
+syn keyword sqlKeyword	 WHEN THEN
+
+" Syntax rules common to TEXT and SHORTTEXT keywords
+syn keyword sqlKeyword	 LANGUAGE DETECTION LINGUISTIC
+syn keyword sqlkeyword   MIME TYPE
+syn keyword sqlkeyword   EXACT WEIGHT FUZZY FUZZINESSTHRESHOLD SEARCH
+syn keyword sqlkeyword   PHRASE INDEX RATIO REBUILD
+syn keyword sqlkeyword   CONFIGURATION
+syn keyword sqlkeyword   SEARCH ONLY
+syn keyword sqlkeyword   FAST PREPROCESS
+syn keyword sqlkeyword   SYNC SYNCHRONOUS ASYNC ASYNCHRONOUS FLUSH QUEUE
+syn keyword sqlkeyword   EVERY AFTER MINUTES DOCUMENTS SUSPEND
+
+" Statement keywords (i.e. after ALTER or CREATE)
+syn keyword sqlkeyword   AUDIT POLICY
+syn keyword sqlkeyword   FULLTEXT
+syn keyword sqlkeyword   SEQUENCE RESTART
+syn keyword sqlkeyword   TABLE
+syn keyword sqlkeyword   PROCEDURE STATISTICS
+syn keyword sqlkeyword   SCHEMA
+syn keyword sqlkeyword   SYNONYM
+syn keyword sqlkeyword   VIEW
+syn keyword sqlkeyword   COLUMN
+syn keyword sqlkeyword   SYSTEM LICENSE
+syn keyword sqlkeyword   SESSION
+syn keyword sqlkeyword   CANCEL WORK
+syn keyword sqlkeyword   PLAN CACHE
+syn keyword sqlkeyword   LOGGING NOLOGGING RETENTION
+syn keyword sqlkeyword   RECONFIGURE SERVICE
+syn keyword sqlkeyword   RESET MONITORING
+syn keyword sqlkeyword   SAVE DURATION PERFTRACE FUNCTION_PROFILER
+syn keyword sqlkeyword   SAVEPOINT
+syn keyword sqlkeyword   USER
+syn keyword sqlkeyword   ROLE
+syn keyword sqlkeyword   ASC DESC
+syn keyword sqlkeyword   OWNED
+syn keyword sqlkeyword   DEPENDENCIES SCRAMBLE
+
+" Create sequence
+syn keyword sqlkeyword   INCREMENT MAXVALUE MINVALUE CYCLE
+
+" Create table
+syn keyword sqlkeyword   HISTORY GLOBAL LOCAL TEMPORARY
+
+" Create trigger
+syn keyword sqlkeyword   TRIGGER REFERENCING EACH DEFAULT
+syn keyword sqlkeyword   SIGNAL RESIGNAL MESSAGE_TEXT OLD NEW
+syn keyword sqlkeyword   EXIT HANDLER SQL_ERROR_CODE
+syn keyword sqlkeyword   TARGET CONDITION SIGNAL
+
+" Alter table
+syn keyword sqlkeyword   ADD DROP MODIFY GENERATED ALWAYS
+syn keyword sqlkeyword   UNIQUE BTREE CPBTREE PRIMARY KEY
+syn keyword sqlkeyword   CONSTRAINT PRELOAD NONE
+syn keyword sqlkeyword   ROW THREADS BATCH
+syn keyword sqlkeyword   MOVE PARTITION TO LOCATION PHYSICAL OTHERS
+syn keyword sqlkeyword   ROUNDROBIN PARTITIONS HASH RANGE VALUE
+syn keyword sqlkeyword   PERSISTENT DELTA AUTO AUTOMERGE
+
+" Create audit policy
+syn keyword sqlkeyword   AUDITING SUCCESSFUL UNSUCCESSFUL
+syn keyword sqlkeyword	 PRIVILEGE STRUCTURED CHANGE LEVEL
+syn keyword sqlkeyword	 EMERGENCY ALERT CRITICAL WARNING INFO
+
+" Privileges
+syn keyword sqlkeyword   DEBUG EXECUTE
+
+" Schema
+syn keyword sqlkeyword   CASCADE RESTRICT PARAMETERS SCAN
+
+" Traces
+syn keyword sqlkeyword   CLIENT CRASHDUMP EMERGENCYDUMP
+syn keyword sqlkeyword   INDEXSERVER NAMESERVER DAEMON
+syn keyword sqlkeyword   CLEAR REMOVE TRACES
+
+" Reclaim
+syn keyword sqlkeyword   RECLAIM DATA VOLUME VERSION SPACE DEFRAGMENT SPARSIFY
+
+" Join
+syn keyword sqlkeyword   INNER OUTER LEFT RIGHT FULL CROSS JOIN
+syn keyword sqlkeyword   GROUPING SETS ROLLUP CUBE
+syn keyword sqlkeyword   BEST LIMIT OFFSET
+syn keyword sqlkeyword   WITH SUBTOTAL BALANCE TOTAL
+syn keyword sqlkeyword   TEXT_FILTER FILL UP SORT MATCHES TOP
+syn keyword sqlkeyword   RESULT OVERVIEW PREFIX MULTIPLE RESULTSETS
+
+" Lock
+syn keyword sqlkeyword   EXCLUSIVE MODE NOWAIT
+
+" Transaction
+syn keyword sqlkeyword   TRANSACTION ISOLATION READ COMMITTED
+syn keyword sqlkeyword   REPEATABLE SERIALIZABLE WRITE
+
+" Saml
+syn keyword sqlkeyword   SAML ASSERTION PROVIDER SUBJECT ISSUER
+
+" User
+syn keyword sqlkeyword   PASSWORD IDENTIFIED EXTERNALLY ATTEMPTS ATTEMPTS
+syn keyword sqlkeyword	 ENABLE DISABLE OFF LIFETIME FORCE DEACTIVATE
+syn keyword sqlkeyword	 ACTIVATE IDENTITY KERBEROS
+
+" Grant
+syn keyword sqlkeyword   ADMIN BACKUP CATALOG SCENARIO INIFILE MONITOR
+syn keyword sqlkeyword   OPTIMIZER OPTION
+syn keyword sqlkeyword   RESOURCE STRUCTUREDPRIVILEGE TRACE
+
+" Import
+syn keyword sqlkeyword   CSV FILE CONTROL NO CHECK SKIP FIRST LIST
+syn keyword sqlkeyword	 RECORD DELIMITED FIELD OPTIONALLY ENCLOSED FORMAT
+
+" Roles
+syn keyword sqlkeyword   PUBLIC CONTENT_ADMIN MODELING MONITORING
+
+" Miscellaneous
+syn keyword sqlkeyword   APPLICATION BINARY IMMEDIATE COREFILE SECURITY DEFINER
+syn keyword sqlkeyword   DUMMY INVOKER MATERIALIZED MESSEGE_TEXT PARAMETER PARAMETERS
+syn keyword sqlkeyword   PART
+syn keyword sqlkeyword   CONSTANT SQLEXCEPTION SQLWARNING
+
+syn keyword sqlOperator  WHERE BETWEEN LIKE NULL CONTAINS
+syn keyword sqlOperator  AND OR NOT CASE
+syn keyword sqlOperator  UNION INTERSECT EXCEPT
+
+syn keyword sqlStatement ALTER CALL CALLS CREATE DROP RENAME TRUNCATE
+syn keyword sqlStatement DELETE INSERT UPDATE EXPLAIN
+syn keyword sqlStatement MERGE REPLACE UPSERT SELECT
+syn keyword sqlStatement SET UNSET LOAD UNLOAD
+syn keyword sqlStatement CONNECT DISCONNECT COMMIT LOCK ROLLBACK
+syn keyword sqlStatement GRANT REVOKE
+syn keyword sqlStatement EXPORT IMPORT
+
+
+syn keyword sqlType	 DATE TIME SECONDDATE TIMESTAMP TINYINT SMALLINT
+syn keyword sqlType	 INT INTEGER BIGINT SMALLDECIMAL DECIMAL
+syn keyword sqlType	 REAL DOUBLE FLOAT
+syn keyword sqlType	 VARCHAR NVARCHAR ALPHANUM SHORTTEXT VARBINARY
+syn keyword sqlType	 BLOB CLOB NCLOB TEXT DAYDATE
+
+syn keyword sqlOption    Webservice_namespace_host
+
+" Strings and characters:
+syn region sqlString		start=+"+    end=+"+ contains=@Spell
+syn region sqlString		start=+'+    end=+'+ contains=@Spell
+
+" Numbers:
+syn match sqlNumber		"-\=\<\d*\.\=[0-9_]\>"
+
+" Comments:
+syn region sqlDashComment	start=/--/ end=/$/ contains=@Spell
+syn region sqlSlashComment	start=/\/\// end=/$/ contains=@Spell
+syn region sqlMultiComment	start="/\*" end="\*/" contains=sqlMultiComment,@Spell
+syn cluster sqlComment	contains=sqlDashComment,sqlSlashComment,sqlMultiComment,@Spell
+syn sync ccomment sqlComment
+syn sync ccomment sqlDashComment
+syn sync ccomment sqlSlashComment
+
+hi def link sqlDashComment	Comment
+hi def link sqlSlashComment	Comment
+hi def link sqlMultiComment	Comment
+hi def link sqlNumber	        Number
+hi def link sqlOperator	        Operator
+hi def link sqlSpecial	        Special
+hi def link sqlKeyword	        Keyword
+hi def link sqlStatement	Statement
+hi def link sqlString	        String
+hi def link sqlType	        Type
+hi def link sqlFunction	        Function
+hi def link sqlOption	        PreProc
+
+let b:current_syntax = "sqlhana"
+
+" vim:sw=4: