<?xml version="1.0" encoding="UTF-8" ?>
<!--
  CAUTION: Do not modify this file directly on it's code unless you know what you are doing.
           Unexpected results may occur if the code is changed deliberately.

  Portions of this file were taken from the sql-postgresql.xml by
  permission of its author Shane Wright (me@shanewright.co.uk).
  The original file belongs to the Kate Editor Project (kate-editor.org).
-->
<source-code-highlight>
  <word-delimiters value="&apos;&quot;"/>
  <word-separators capture-nearby="true" value="&#10;+*&lt;&gt;=~!@#%^&amp;|?/\[];,.()"/>
  <ignored-chars value="&#9;&#32;"/>
  <completion-trigger value="."/>

  <!-- Order in which groups are applied to blocks of code. -->
  <highlight-order>
    <group name="multi-line-comment"/>
    <group name="single-line-comment"/>
    <group name="multi-line-strings"/>
    <group name="single-line-strings"/>
    <group name="separators"/>
    <group name="numbers"/>
    <group name="operators"/>
    <group name="schema-qualified"/>
    <group name="keywords"/>
    <group name="datatypes"/>
    <group name="invalidtypes"/>
    <group name="attributes"/>
    <group name="identifiers"/>
    <group name="unmatched"/>
  </highlight-order>

  <group name="separators" case-sensitive="false"
         bold="false" italic="false" underline="false"
         foreground-color="#ffffff">
   <element regexp="true" value="^(;|,|\.)(\n)*$"/>
  </group>

  <group name="attributes" case-sensitive="false"
         bold="false" italic="false" underline="false"
         foreground-color="#00f0ff">
   <element regexp="true" value="(\{)([a-z]|[0-9]|\-|_)+(\})"/>
  </group>

  <group name="identifiers" case-sensitive="false"
         bold="false" italic="true" underline="false"
	 foreground-color="#41a8e7">
   <element regexp="true" value="(&quot;)?([a-z]+|[0-9]*|(_)*|( )*|(-)*|(\$)*|(\/)*|(\\)*|(\.)*|(\@)*|(\:)*|(\()*|(\))*)+(&quot;)?"/>
  </group>

  <group name="schema-qualified" case-sensitive="false"
         bold="true" italic="true" underline="false"
	 foreground-color="#00e500"
	 lookahead-char=".">
   <element regexp="true" value="(&quot;)?([a-z]+|[0-9]*|(_)*|( )*|(-)*|(\$)*|(\/)*|(\\)*|(\.)*|(\@)*|(\:)*|(\()*|(\))*)+(&quot;)?"/>
  </group>

  <group name="numbers" case-sensitive="false"
         bold="false" italic="false" underline="false"
	 foreground-color="#e24ee2"> 
   <element regexp="true" value="^(\-|\+)?\d+$"/>
  </group>

  <group name="multi-line-strings" case-sensitive="false"
         bold="false" italic="false" underline="false"
	 foreground-color="#ff5500">
      <element regexp="true" value="(&apos;)(.)*(\n)"/>
      <element regexp="true" value="(.)*(&apos;)(\n)*" type="final-exp"/>
  </group>
  
    <group name="single-line-strings" case-sensitive="false"
         bold="false" italic="false" underline="false"
	 foreground-color="#ff5500">
      <element regexp="true" value="(&apos;)(.)*(&apos;)"/>
  </group>

  <group name="single-line-comment" case-sensitive="false"
         bold="false" italic="true" underline="false"
	 foreground-color="#b8b8b8">
   <element regexp="true" value="(\-\-)(.)*" type="initial-exp"/>
   <element regexp="true" value="(.)*(\n)" type="final-exp"/>
  </group>

  <group name="multi-line-comment" case-sensitive="false"
         bold="false" italic="true" underline="false"
	 foreground-color="#b8b8b8">
   <element regexp="true" value="(\/\*)(.)*" type="initial-exp"/>
   <element regexp="true" value="(.)*(\*\/)(\n)*" type="final-exp"/>
  </group>

  <group name="operators" case-sensitive="false"
         bold="true" italic="false" underline="false"
	 foreground-color="#ffffff">
    <element regexp="true" value="(\(|\)|\+|\-|\*|\/|\!|\%|\=|\?|&amp;|\||#|@|\&lt;|&gt;|\^|~|&apos;)+"/>
  </group>

  <group name="keywords" case-sensitive="false"
         bold="true" italic="false" underline="false"
	 foreground-color="#7070a7">
    <element value="AT"/>
    <element value="ATTACH"/>
    <element value="ACTION"/>
    <element value="ADD"/>
    <element value="ADMIN"/>
    <element value="AFTER"/>
    <element value="AGGREGATE"/>
    <element value="ALIGNMENT"/>
    <element value="ALL"/>
    <element value="ALLOW_CONNECTIONS"/>
    <element value="ALSO"/>
    <element value="ALTER"/>
    <element value="ALWAYS"/>
    <element value="ANALYZE"/>
    <element value="AND"/>
    <element value="AS"/>
    <element value="ASC"/>
    <element value="ASSIGNMENT"/>
    <element value="ATTRIBUTE"/>
    <element value="AUTHORIZATION"/>
    <element value="AUTO"/>
    <element value="BEFORE"/>
    <element value="BEGIN"/>
    <element value="BETWEEN"/>
    <element value="BY"/>
    <element value="BYPASSRLS"/>
    <element value="BUFFERING"/>
    <element value="BUFFERS"/>
    <element value="CACHE"/>
    <element value="CALLED"/>
    <element value="CASCADE"/>
    <element value="CASE"/>
    <element value="CAST"/>
    <element value="CANONICAL"/>
    <element value="CATEGORY"/>
    <element value="CHECK"/>
    <element value="CLASS"/>
    <element value="COLUMN"/>
    <element value="COLLATION"/>
    <element value="COLLATE"/>
    <element value="COLLATABLE"/>
    <element value="COMMENT"/>
    <element value="COMMENTS"/>
    <element value="COMMIT"/>
    <element value="COMMUTATOR"/>
    <element value="CONCURRENTLY"/>
    <element value="CONNECTION"/>
    <element value="CONSTRAINT"/>
    <element value="CONSTRAINTS"/>
    <element value="CONVERSION"/>
    <element value="COST"/>
    <element value="COSTS"/>
    <element value="CREATE"/>
    <element value="CREATEDB"/>
    <element value="CREATEROLE"/>
    <element value="CREATEUSER"/>
    <element value="CROSS"/>
    <element value="CURRENT"/>
    <element value="CYCLE"/>
    <element value="DATA"/>
    <element value="DATABASE"/>
    <element value="DEFAULT"/>
    <element value="DECLARE"/>
    <element value="DEFAULTS"/>
    <element value="DEFERRABLE"/>
    <element value="DEFERRED"/>
    <element value="DEFINER"/>
    <element value="DELETE"/>
    <element value="DELIMITER"/>
    <element value="DESC"/>
    <element value="DETTACH"/>
    <element value="DISTINCT"/>
    <element value="DISABLE"/>
    <element value="DO"/>
    <element value="DOMAIN"/>
    <element value="DROP"/>
    <element value="EACH"/>
    <element value="ELEMENT"/>
    <element value="ELSE"/>
    <element value="ELSIF"/>
    <element value="ENABLE"/>
    <element value="END"/>
    <element value="ENCODING"/>
    <element value="ENCRYPTED"/>
    <element value="ENUM"/>
    <element value="EVENT"/>
    <element value="EXCEPT"/>
    <element value="EXCEPTION"/>
    <element value="EXCLUDE"/>
    <element value="EXCLUDING"/>
    <element value="EXECUTE"/>
    <element value="EXISTS"/>
    <element value="EXPLAIN"/>
    <element value="EXTERNAL"/>
    <element value="EXTENSION"/>
    <element value="FALSE"/>
    <element value="FAMILY"/>
    <element value="FASTUPDATE"/>
    <element value="FETCH"/>
    <element value="FILLFACTOR"/>
    <element value="FINALFUNC"/>
    <element value="FIRST"/>
    <element value="FOLLOWING"/>
    <element value="FOR"/>
    <element value="FORCE"/>
    <element value="FOREIGN"/>
    <element value="FORMAT"/>
    <element value="FREEZE"/>
    <element value="FROM"/>
    <element value="FULL"/>
    <element value="FUNCTION"/>
    <element value="GENERATED"/>
    <element value="GLOBAL"/>
    <element value="GRANT"/>
    <element value="GROUP"/>
    <element value="HANDLER"/>
    <element value="HASH"/>
    <element value="HASHES"/>
    <element value="HAVING"/>
    <element value="IMMEDIATE"/>
    <element value="IMMUTABLE"/>
    <element value="IMPLICIT"/>
    <element value="IN"/>
    <element value="IF"/>
    <element value="INCLUDE"/>
    <element value="INCLUDING"/>
    <element value="INCREMENT"/>
    <element value="INDEX"/>
    <element value="INDEXES"/>
    <element value="INHERIT"/>
    <element value="INHERITS"/>
    <element value="INITCOND"/>
    <element value="INITIALLY"/>
    <element value="INLINE"/>
    <element value="INNER"/>
    <element value="INOUT"/>
    <element value="INPUT"/>
    <element value="INSERT"/>
    <element value="INSTEAD"/>
    <element value="INTERNALLENGTH"/>
    <element value="INTERSECT"/>
    <element value="INTO"/>
    <element value="INVOKER"/>
    <element value="IDENTITY"/>
    <element value="IS"/>
    <element value="IS_TEMPLATE"/>
    <element value="ILIKE"/>
    <element value="JOIN"/>
    <element value="KEY"/>
    <element value="LANGUAGE"/>
    <element value="LAST"/>
    <element value="LC_COLLATE"/>
    <element value="LC_CTYPE"/>
    <element value="LEAKPROOF"/>
    <element value="LEFT"/>
    <element value="LEFTARG"/>
    <element value="LEVEL"/>
    <element value="LIKE"/>
    <element value="LIST"/>
    <element value="LIMIT"/>
    <element value="LOCAL"/>
    <element value="LOCALE"/>
    <element value="LOCATION"/>
    <element value="LOGIN"/>
    <element value="MAPPING"/>
    <element value="MATCH"/>
    <element value="MATERIALIZED"/>
    <element value="MAXVALUE"/>
    <element value="MERGES"/>
    <element value="MINVALUE"/>
    <element value="MODULUS"/>
    <element value="NATURAL"/>
    <element value="NEGATOR"/>
    <element value="NEW"/>
    <element value="NEXT"/>
    <element value="NO"/>
    <element value="NOCREATEDB"/>
    <element value="NOCREATEROLE"/>
    <element value="NOCREATEUSER"/>
    <element value="NOINHERIT"/>
    <element value="NOLOGIN"/>
    <element value="NONE"/>
    <element value="NOSUPERUSER"/>
    <element value="NOREPLICATION"/>
    <element value="NOT"/>
    <element value="NOTHING"/>
    <element value="NOWAIT"/>
    <element value="NULL"/>
    <element value="NULLS"/>
    <element value="OF"/>
    <element value="OFF"/>
    <element value="OFFSET"/>
    <element value="OIDS"/>
    <element value="OLD"/>
    <element value="ON"/>
    <element value="ONLY"/>
    <element value="OPERATOR"/>
    <element value="OPTION"/>
    <element value="OPTIONS"/>
    <element value="OR"/>
    <element value="ORDER"/>
    <element value="OUTER"/>
    <element value="OUTPUT"/>
    <element value="OWNED"/>
    <element value="OWNER"/>
    <element value="PARALLEL"/>
    <element value="PARTIAL"/>
    <element value="PARTITION"/>
    <element value="PASSEDBYVALUE"/>
    <element value="PASSWORD"/>
    <element value="PERMISSIVE"/>
    <element value="POLICY"/>
    <element value="PRECEDING"/>
    <element value="PREFERRED"/>
    <element value="PRESERVE"/>
    <element value="PRIMARY"/>
    <element value="PRIVILEGES"/>
    <element value="PROCEDURAL"/>
    <element value="PROCEDURE"/>
    <element value="PUBLIC"/>
    <element value="QUERY"/>
    <element value="RAISE"/>
    <element value="RANGE"/>
    <element value="RECEIVE"/>
    <element value="RECHECK"/>
    <element value="RECURSIVE"/>
    <element value="REFERENCES"/>
    <element value="REFERENCING"/>
    <element value="RENAME"/>
    <element value="REMAINDER"/>
    <element value="RESET"/>
    <element value="REPLACE"/>
    <element value="REPLICA"/>
    <element value="RESTART"/>
    <element value="RESTRICTED"/>
    <element value="RESTRICT"/>
    <element value="RETURNING"/>
    <element value="RETURNS"/>
    <element value="RETURN"/>
    <element value="RETURNSTABLE"/>
    <element value="REVOKE"/>
    <element value="REPLICATION"/>
    <element value="RIGHT"/>
    <element value="RIGHTARG"/>
    <element value="ROLLBACK"/>
    <element value="ROLE"/>
    <element value="ROW"/>
    <element value="ROWS"/>
    <element value="RULE"/>
    <element value="SAFE"/>
    <element value="SCHEMA"/>
    <element value="SEARCH"/>
    <element value="SECURITY"/>
    <element value="SELECT"/>
    <element value="SERVER"/>
    <element value="SEND"/>
    <element value="SEQUENCE"/>
    <element value="SET"/>
    <element value="SETOF"/>
    <element value="SFUNC"/>
    <element value="SHARE"/>
    <element value="SIMPLE"/>
    <element value="SORTOP"/>
    <element value="STABLE"/>
    <element value="START"/>
    <element value="STATEMENT"/>
    <element value="STATISTICS"/>
    <element value="STORAGE"/>
    <element value="STORED"/>
    <element value="STRICT"/>
    <element value="STYPE"/>
    <element value="SUPERUSER"/>
    <element value="SUBTYPE"/>
    <element value="SUBTYPE_DIFF"/>
    <element value="SUBTYPE_OPCLASS"/>
    <element value="SYSID"/>
    <element value="TABLE"/>
    <element value="TABLESPACE"/>
    <element value="TAG"/>
    <element value="TEMP"/>
    <element value="TIME"/>
    <element value="TIMING"/>    
    <element value="TG_OP"/>
    <element value="THEN"/>
    <element value="TEMPLATE"/>
    <element value="TEMPORARY"/>
    <element value="TO"/>
    <element value="TRANSACTION"/>
    <element value="TRIGGER"/>
    <element value="TRUNCATE"/>
    <element value="TRUE"/>
    <element value="TRUSTED"/>
    <element value="TYPE"/>
    <element value="TYPMOD_IN"/>
    <element value="TYPMOD_OUT"/>
    <element value="UNBOUNDED"/>
    <element value="UNENCRYPTED"/>
    <element value="UNION"/>
    <element value="UNIQUE"/>
    <element value="UNTIL"/>
    <element value="UPDATE"/>
    <element value="UNSAFE"/>
    <element value="UNLOGGED"/>
    <element value="USAGE"/>
    <element value="USER"/>
    <element value="USING"/>
    <element value="VACUUM"/>
    <element value="VALID"/>
    <element value="VALIDATE"/>
    <element value="VALIDATOR"/>
    <element value="VALUE"/>
    <element value="VALUES"/>
    <element value="VARIABLE"/>
    <element value="VARIADIC"/>
    <element value="VERSION"/>    
    <element value="VERBOSE"/>
    <element value="VIEW"/>
    <element value="VOLATILE"/>
    <element value="WRAPPER"/>
    <element value="WHEN"/>
    <element value="WHERE"/>
    <element value="WINDOW"/>
    <element value="WITH"/>
    <element value="WITHOUT"/>
    <element value="ZONE"/>
  </group>

  <group name="datatypes" case-sensitive="true"
	bold="true" italic="true" underline="false"
	foreground-color="#ff9b0f">
    <element value="&quot;char&quot;"/>
    <element value="&quot;TopoGeometry&quot;"/>
    <element value="abstime"/>
    <element value="aclitem"/>
    <element value="addbandarg"/>
    <element value="any"/>
    <element value="anyarray"/>
    <element value="anyelement"/>
    <element value="anyenum"/>
    <element value="anynonarray"/>
    <element value="anyrange"/>
    <element value="bigint"/>
    <element value="bigserial"/>
    <element value="bit"/>
    <element value="bit varying"/>
    <element value="bool"/>
    <element value="boolean"/>
    <element value="box"/>
    <element value="box2d"/>
    <element value="box3d"/>
    <element value="bpchar"/>
    <element value="bytea"/>
    <element value="char"/>
    <element value="character"/>
    <element value="character varying"/>
    <element value="cid"/>
    <element value="cidr"/>
    <element value="circle"/>
    <element value="cstring"/>
    <element value="date"/>
    <element value="daterange"/>
    <element value="decimal"/>
    <element value="double precision"/>
    <element value="fdw_handler"/>
    <element value="float"/>
    <element value="float4"/>
    <element value="float8"/>
    <element value="geography"/>
    <element value="geometry"/>
    <element value="geometry_dump"/>
    <element value="geomval"/>
    <element value="getfaceedges_returntype"/>
    <element value="gtsvector"/>
    <element value="inet"/>
    <element value="int2"/>
    <element value="int2vector"/>
    <element value="int4"/>
    <element value="int4range"/>
    <element value="int8"/>
    <element value="int8range"/>
    <element value="integer"/>
    <element value="internal"/>
    <element value="interval"/>
    <element value="json"/>
    <element value="language_handler"/>
    <element value="line"/>
    <element value="lseg"/>
    <element value="macaddr"/>
    <element value="money"/>
    <element value="name"/>
    <element value="numeric"/>
    <element value="numrange"/>
    <element value="oid"/>
    <element value="oidvector"/>
    <element value="opaque"/>
    <element value="path"/>
    <element value="point"/>
    <element value="polygon"/>
    <element value="rastbandarg"/>
    <element value="raster"/>
    <element value="real"/>
    <element value="reclassarg"/>
    <element value="record"/>
    <element value="refcursor"/>
    <element value="regclass"/>
    <element value="regconfig"/>
    <element value="regdictionary"/>
    <element value="regoper"/>
    <element value="regoperator"/>
    <element value="regproc"/>
    <element value="regprocedure"/>
    <element value="regtype"/>
    <element value="reltime"/>
    <element value="serial"/>
    <element value="smallint"/>
    <element value="smallserial"/>
    <element value="text"/>
    <element value="tid"/>
    <element value="time"/>
    <element value="timestamp"/>
    <element value="timestamptz"/>
    <element value="timetz"/>
    <element value="tinterval"/>
    <element value="trigger"/>
    <element value="tsquery"/>
    <element value="tsrange"/>
    <element value="tstzrange"/>
    <element value="tsvector"/>
    <element value="txid_snapshot"/>
    <element value="unionarg"/>
    <element value="uuid"/>
    <element value="validatetopology_returntype"/>
    <element value="varbit"/>
    <element value="varchar"/>
    <element value="varying"/>
    <element value="void"/>
    <element value="xid"/>
    <element value="xml"/>
  </group>
  
  <group name="invalidtypes" case-sensitive="true"
	bold="true" italic="true" underline="false"
	foreground-color="#f70000">
    <element value="invalid_type"/>
  </group>   
  
  <group name="unmatched" case-sensitive="true"
	bold="false" italic="false" underline="false"
	foreground-color="#ffffff">
    <element value="*" wildcard="true"/>
  </group>     
</source-code-highlight>
