Variable: sql-mode-postgres-font-lock-keywords

sql-mode-postgres-font-lock-keywords is a variable defined in sql.el.gz.

Value

(("^\\s-*\\\\.*$" . font-lock-doc-face)
 ("\\b\\(a\\(?:bs\\(?:ent\\)?\\|ccording\\|da\\|l\\(?:ias\\|locate\\)\\|r\\(?:e\\|ray_agg\\)\\|sensitive\\|t\\(?:omic\\|tributes?\\)\\|vg\\)\\|b\\(?:ase64\\|ernoulli\\|it\\(?:_length\\|var\\)\\|lo\\(?:b\\|cked\\)\\|om\\|readth\\)\\|c\\(?:a\\(?:ll\\|rdinality\\|talog_name\\)\\|eil\\(?:ing\\)?\\|h\\(?:ar\\(?:_length\\|acter\\(?:_\\(?:length\\|set_\\(?:catalog\\|name\\|schema\\)\\)\\|s\\)\\)\\|ecked\\)\\|l\\(?:ass_origin\\|ob\\)\\|o\\(?:bol\\|l\\(?:l\\(?:ation\\(?:_\\(?:catalog\\|name\\|schema\\)\\)?\\|ect\\)\\|umn\\(?:_name\\|s\\)\\)\\|m\\(?:mand_function\\(?:_code\\)?\\|pletion\\)\\|n\\(?:dition\\(?:_number\\)?\\|nect\\(?:ion_name\\)?\\|str\\(?:aint_\\(?:catalog\\|name\\|schema\\)\\|uctor\\)\\|t\\(?:ains\\|rol\\)\\|vert\\)\\|rr\\(?:esponding\\)?\\|unt\\|var_\\(?:\\(?:po\\|sam\\)p\\)\\)\\|u\\(?:be\\|me_dist\\|r\\(?:rent_\\(?:default_transform_group\\|path\\|transform_group_for_type\\)\\|sor_name\\)\\)\\)\\|d\\(?:at\\(?:alink\\|etime_interval_\\(?:code\\|precision\\)\\)\\|b\\|e\\(?:fined\\|gree\\|nse_rank\\|pth\\|r\\(?:ef\\|ived\\)\\|s\\(?:cri\\(?:be\\|ptor\\)\\|tr\\(?:oy\\|uctor\\)\\)\\|terministic\\)\\|i\\(?:agnostics\\|s\\(?:connect\\|patch\\)\\)\\|l\\(?:newcopy\\|previouscopy\\|url\\(?:complete\\(?:only\\|write\\)?\\|path\\(?:only\\|write\\)?\\|s\\(?:cheme\\|erver\\)\\)\\|value\\)\\|ynamic\\(?:_function\\(?:_code\\)?\\)?\\)\\|e\\(?:lement\\|mpty\\|nd-exec\\|quals\\|very\\|x\\(?:ception\\|ec\\|isting\\|p\\)\\)\\|f\\(?:i\\(?:l\\(?:e\\|ter\\)\\|nal\\|rst_value\\)\\|l\\(?:ag\\|oor\\)\\|o\\(?:rtran\\|und\\)\\|ree\\|s\\|usion\\)\\|g\\(?:e\\(?:nera\\(?:l\\|ted\\)\\|t\\)\\|o\\(?:to\\)?\\|rouping\\)\\|h\\(?:ex\\|ierarchy\\|ost\\)\\|i\\(?:d\\|gnore\\|mp\\(?:lementation\\|ort\\)\\|n\\(?:d\\(?:ent\\|icator\\)\\|fix\\|itialize\\|stan\\(?:\\(?:c\\|tiabl\\)e\\)\\|te\\(?:grity\\|rsection\\)\\)\\|terate\\)\\|key_\\(?:member\\|type\\)\\|l\\(?:a\\(?:g\\|st_value\\|teral\\)\\|e\\(?:ad\\|ngth\\|ss\\)\\|i\\(?:brary\\|ke_regex\\|nk\\)\\|n\\|o\\(?:\\(?:cato\\|we\\)r\\)\\)\\|m\\(?:a\\(?:tched\\|x_cardinality\\|[px]\\)\\|e\\(?:mber\\|rge\\|ssage_\\(?:length\\|octet_length\\|text\\)\\|thod\\)\\|in\\|o\\(?:d\\(?:if\\(?:ies\\|y\\)\\|ule\\)?\\|re\\)\\|u\\(?:ltiset\\|mps\\)\\)\\|n\\(?:amespace\\|clob\\|e\\(?:sting\\|w\\)\\|f\\(?:k[cd]\\|[cd]\\)\\|il\\|ormalized?\\|t\\(?:\\(?:h_valu\\|il\\)e\\)\\|u\\(?:llable\\|mber\\)\\)\\|o\\(?:c\\(?:currences_regex\\|tet\\(?:_length\\|s\\)\\)\\|ld\\|pe\\(?:\\(?:ratio\\)?n\\)\\|rd\\(?:ering\\|inality\\)\\|thers\\|utput\\|verriding\\)\\|p\\(?:a\\(?:d\\|rameter\\(?:_\\(?:mode\\|name\\|ordinal_position\\|specific_\\(?:catalog\\|name\\|schema\\)\\)\\|s\\)?\\|s\\(?:cal\\|s\\(?:ing\\|through\\)\\)\\)\\|er\\(?:cent\\(?:_rank\\|ile_\\(?:cont\\|disc\\)\\)\\|mission\\)\\|li\\|o\\(?:s\\(?:\\(?:ition_rege\\|tfi\\)x\\)\\|wer\\)\\|re\\(?:fix\\|order\\)\\|ublic\\)\\|r\\(?:ank\\|e\\(?:ads\\|covery\\|f\\(?:erencing\\)?\\|gr_\\(?:avg[xy]\\|count\\|intercept\\|r2\\|s\\(?:lope\\|x[xy]\\|yy\\)\\)\\|quiring\\|s\\(?:pect\\|tore\\|ult\\)\\|turn\\(?:ed_\\(?:cardinality\\|length\\|octet_length\\|sqlstate\\)\\)?\\)\\|o\\(?:llup\\|utine\\(?:_\\(?:catalog\\|name\\|schema\\)\\)?\\|w_\\(?:count\\|number\\)\\)\\)\\|s\\(?:c\\(?:ale\\|hema_name\\|ope\\(?:_\\(?:catalog\\|name\\|schema\\)\\)?\\)\\|e\\(?:ction\\|l\\(?:ective\\|f\\)\\|nsitive\\|rver_name\\|ts\\)\\|ize\\|ource\\|p\\(?:ace\\|ecific\\(?:\\(?:_nam\\|typ\\)e\\)?\\)\\|q\\(?:l\\(?:code\\|e\\(?:rror\\|xception\\)\\|state\\|warning\\)?\\|rt\\)\\|t\\(?:at\\(?:e\\|ic\\)\\|ddev_\\(?:\\(?:po\\|sam\\)p\\)\\|\\(?:ructur\\|yl\\)e\\)\\|u\\(?:b\\(?:class_origin\\|list\\|multiset\\|string_regex\\)\\|m\\)\\|ystem_user\\)\\|t\\(?:able\\(?:\\(?:_nam\\|sampl\\)e\\)\\|erminate\\|han\\|i\\(?:es\\|mezone_\\(?:hour\\|minute\\)\\)\\|o\\(?:ken\\|p_level_count\\)\\|r\\(?:ans\\(?:action\\(?:_active\\|s_\\(?:committed\\|rolled_back\\)\\)\\|forms?\\|lat\\(?:e\\(?:_regex\\)?\\|ion\\)\\)\\|i\\(?:gger_\\(?:catalog\\|name\\|schema\\)\\|m_array\\)\\)\\)\\|u\\(?:escape\\|n\\(?:der\\|link\\|n\\(?:amed\\|est\\)\\|typed\\)\\|pper\\|ri\\|s\\(?:age\\|er_defined_type_\\(?:c\\(?:atalog\\|ode\\)\\|name\\|schema\\)\\)\\)\\|var\\(?:_\\(?:\\(?:po\\|sam\\)p\\)\\|binary\\|iable\\)\\|w\\(?:henever\\|i\\(?:dth_bucket\\|thin\\)\\)\\|xml\\(?:agg\\|binary\\|c\\(?:\\(?:as\\|ommen\\)t\\)\\|d\\(?:eclaration\\|ocument\\)\\|exists\\|iterate\\|namespaces\\|query\\|schema\\|t\\(?:able\\|ext\\)\\|validate\\)\\|[acgkmpt]\\)\\b"
  . font-lock-builtin-face)
 ("\\b\\(a\\(?:b\\(?:ort\\|solute\\)\\|c\\(?:cess\\|tion\\)\\|d\\(?:d\\|min\\)\\|fter\\|ggregate\\|l\\(?:so\\|ter\\|ways\\)\\|ss\\(?:ertion\\|ignment\\)\\|t\\(?:tribute\\)?\\)\\|b\\(?:ackward\\|e\\(?:fore\\|\\(?:gi\\|twee\\)n\\)\\|y\\)\\|c\\(?:a\\(?:che\\|lled\\|scaded?\\|talog\\)\\|h\\(?:a\\(?:in\\|racteristics\\)\\|eckpoint\\)\\|l\\(?:ass\\|ose\\|uster\\)\\|o\\(?:alesce\\|mm\\(?:ents?\\|it\\(?:ted\\)?\\)\\|n\\(?:figuration\\|nection\\|straints\\|t\\(?:ent\\|inue\\)\\|version\\)\\|py\\|st\\)\\|reate\\(?:db\\|role\\|user\\)\\|sv\\|ur\\(?:rent\\|sor\\)\\|ycle\\)\\|d\\(?:a\\(?:ta\\(?:base\\)?\\|y\\)\\|e\\(?:allocate\\|c\\(?:lare\\)?\\|f\\(?:aults\\|erred\\|iner\\)\\|l\\(?:ete\\|imiters?\\)\\)\\|i\\(?:ctionary\\|s\\(?:able\\|card\\)\\)\\|o\\(?:cument\\|main\\)\\|rop\\)\\|e\\(?:ach\\|n\\(?:able\\|c\\(?:oding\\|rypted\\)\\|um\\)\\|scape\\|x\\(?:clu\\(?:d\\(?:e\\|ing\\)\\|sive\\)\\|ecute\\|ists\\|plain\\|t\\(?:e\\(?:nsion\\|rnal\\)\\|ract\\)\\)\\)\\|f\\(?:amily\\|irst\\|loat\\|o\\(?:llowing\\|r\\(?:ce\\|ward\\)\\)\\|unctions?\\)\\|g\\(?:lobal\\|r\\(?:anted\\|eatest\\)\\)\\|h\\(?:andler\\|eader\\|o\\(?:ld\\|ur\\)\\)\\|i\\(?:dentity\\|f\\|m\\(?:m\\(?:\\(?:ediat\\|utabl\\)e\\)\\|plicit\\)\\|n\\(?:c\\(?:luding\\|rement\\)\\|dex\\(?:es\\)?\\|herits?\\|line\\|out\\|put\\|s\\(?:e\\(?:nsitive\\|rt\\)\\|tead\\)\\|voker\\)\\|solation\\)\\|key\\|l\\(?:a\\(?:bel\\|nguage\\|rge\\|st\\)\\|c_c\\(?:\\(?:ollat\\|typ\\)e\\)\\|e\\(?:a\\(?:kproof\\|st\\)\\|vel\\)\\|isten\\|o\\(?:ad\\|c\\(?:a\\(?:l\\|tion\\)\\|k\\)\\|gin\\)\\)\\|m\\(?:a\\(?:pping\\|tch\\|xvalue\\)\\|in\\(?:\\(?:ut\\|valu\\)e\\)\\|o\\(?:de\\|nth\\|ve\\)\\)\\|n\\(?:a\\(?:mes\\|tional\\)\\|char\\|ext\\|o\\(?:create\\(?:db\\|role\\|user\\)\\|inherit\\|login\\|ne\\|replication\\|superuser\\|t\\(?:hing\\|ify\\)\\|wait\\)?\\|ull\\(?:if\\|s\\)\\)\\|o\\(?:bject\\|ff?\\|ids\\|p\\(?:erator\\|tions?\\)\\|ut\\|verlay\\|wne[dr]\\)\\|p\\(?:a\\(?:r\\(?:ser\\|ti\\(?:al\\|tion\\)\\)\\|ss\\(?:ing\\|word\\)\\)\\|lans\\|osition\\|r\\(?:e\\(?:c\\(?:eding\\|ision\\)\\|pared?\\|serve\\)\\|i\\(?:or\\|vileges\\)\\|ocedur\\(?:al\\|e\\)\\)\\)\\|quote\\|r\\(?:ange\\|e\\(?:a\\(?:d\\|ssign\\)\\|c\\(?:heck\\|ursive\\)\\|f\\|index\\|l\\(?:\\(?:ativ\\|eas\\)e\\)\\|name\\|p\\(?:eatable\\|l\\(?:ace\\|ica\\(?:tion\\)?\\)\\)\\|s\\(?:\\(?:e\\|t\\(?:ar\\|ric\\)\\)t\\)\\|turns\\|voke\\)\\|o\\(?:l\\(?:e\\|lback\\)\\|ws?\\)\\|ule\\)\\|s\\(?:avepoint\\|c\\(?:hema\\|roll\\)\\|e\\(?:arch\\|c\\(?:ond\\|urity\\)\\|quence\\|r\\(?:ializable\\|ver\\)\\|ssion\\|t\\(?:of\\)?\\)\\|h\\(?:are\\|ow\\)\\|imple\\|napshot\\|t\\(?:a\\(?:ble\\|ndalone\\|rt\\|t\\(?:ement\\|istics\\)\\)\\|d\\(?:in\\|out\\)\\|orage\\|ri\\(?:ct\\|p\\)\\)\\|u\\(?:bstring\\|peruser\\)\\|ys\\(?:id\\|tem\\)\\)\\|t\\(?:ables\\(?:pace\\)?\\|emp\\(?:late\\|orary\\)?\\|r\\(?:ansaction\\|eat\\|im\\|u\\(?:ncate\\|sted\\)\\)\\|ypes?\\)\\|u\\(?:n\\(?:bounded\\|committed\\|encrypted\\|l\\(?:isten\\|ogged\\)\\|til\\)\\|pdate\\)\\|v\\(?:a\\(?:cuum\\|l\\(?:id\\(?:at\\(?:e\\|or\\)\\)?\\|ues?\\)\\|rying\\)\\|ersion\\|iew\\|olatile\\)\\|w\\(?:hitespace\\|ithout\\|ork\\|r\\(?:apper\\|ite\\)\\)\\|xml\\(?:attributes\\|concat\\|e\\(?:lement\\|xists\\)\\|forest\\|p\\(?:arse\\|i\\)\\|root\\|serialize\\)\\|ye\\(?:ar\\|s\\)\\|zone\\)\\b"
  . font-lock-builtin-face)
 ("\\b\\(a\\(?:ll\\|n\\(?:aly\\(?:[sz]e\\)\\|d\\)\\|rray\\|s\\(?:\\(?:ymmetri\\)?c\\)?\\|uthorization\\)\\|b\\(?:inary\\|oth\\)\\|c\\(?:as[et]\\|heck\\|o\\(?:l\\(?:late\\|umn\\)\\|n\\(?:currently\\|straint\\)\\)\\|r\\(?:eate\\|oss\\)\\|urrent_\\(?:catalog\\|date\\|role\\|schema\\|time\\(?:stamp\\)?\\|user\\)\\)\\|d\\(?:e\\(?:f\\(?:ault\\|errable\\)\\|sc\\)\\|istinct\\|o\\)\\|e\\(?:lse\\|nd\\|xcept\\)\\|f\\(?:alse\\|etch\\|or\\(?:eign\\)?\\|r\\(?:eeze\\|om\\)\\|ull\\)\\|gr\\(?:ant\\|oup\\)\\|having\\|i\\(?:like\\|n\\(?:itially\\|ner\\|t\\(?:ersect\\|o\\)\\)\\|snull\\|[ns]\\)\\|join\\|l\\(?:e\\(?:ading\\|ft\\)\\|i\\(?:ke\\|mit\\)\\|ocaltime\\(?:stamp\\)?\\)\\|n\\(?:atural\\|ot\\(?:null\\)?\\|ull\\)\\|o\\(?:ffset\\|nly\\|rder\\|uter\\|ver\\(?:laps\\)?\\|[nr]\\)\\|p\\(?:lacing\\|rimary\\)\\|r\\(?:e\\(?:ferences\\|turning\\)\\|ight\\)\\|s\\(?:e\\(?:lect\\|ssion_user\\)\\|imilar\\|ome\\|ymmetric\\)\\|t\\(?:able\\|hen\\|o\\|r\\(?:ailing\\|ue\\)\\)\\|u\\(?:ni\\(?:on\\|que\\)\\|s\\(?:er\\|ing\\)\\)\\|v\\(?:ariadic\\|erbose\\)\\|w\\(?:he\\(?:n\\|re\\)\\|i\\(?:ndow\\|th\\)\\)\\)\\b"
  . font-lock-keyword-face)
 ("\\b\\(assign\\|c\\(?:\\(?:a\\|lo\\)se\\)\\|dynexecute\\|e\\(?:lsif\\|x\\(?:ecsql\\|it\\)\\)\\|f\\(?:etch\\|or\\(?:each\\)?\\)\\|getdiag\\|if\\|loop\\|move\\|open\\|perform\\|r\\(?:aise\\|eturn\\)\\|while\\)\\b"
  . font-lock-keyword-face)
 ("\\b\\(b\\(?:i\\(?:g\\(?:int\\|serial\\)\\|t\\)\\|o\\(?:ol\\(?:ean\\)?\\|x\\)\\|ytea\\)\\|c\\(?:har\\(?:acter\\)?\\|i\\(?:dr\\|rcle\\)\\)\\|d\\(?:ate\\(?:range\\)?\\|ecimal\\|ouble\\)\\|float[48]\\|in\\(?:et\\|t\\(?:4range\\|8range\\|e\\(?:ger\\|rval\\)\\|[248]\\)?\\)\\|json\\(?:b\\|path\\)\\|l\\(?:ine\\|seg\\)\\|m\\(?:acaddr8?\\|oney\\)\\|n\\(?:ame\\|um\\(?:eric\\|range\\)\\)\\|oid\\|p\\(?:ath\\|o\\(?:int\\|lygon\\)\\|recision\\)\\|re\\(?:al\\|g\\(?:c\\(?:lass\\|o\\(?:llation\\|nfig\\)\\)\\|dictionary\\|namespace \\|oper\\(?:ator\\)?\\|proc\\(?:edure\\)?\\|\\(?:rol\\|typ\\)e\\)\\)\\|s\\(?:e\\(?:quences\\|rial[48]?\\)\\|mall\\(?:int\\|serial\\)\\)\\|t\\(?:ext\\|ime\\(?:stamp\\(?:tz\\)?\\|tz\\)?\\|s\\(?:query\\|range\\|tzrange\\|vector\\)\\|xid_snapshot\\)\\|u\\(?:nknown\\|uid\\)\\|var\\(?:bit\\|char\\|ying\\)\\|without\\|xml\\|zone\\)\\b"
  . font-lock-type-face))

Documentation

Postgres SQL keywords used by font-lock.

This variable is used by sql-mode and sql-interactive-mode. The regular expressions are created during compilation by calling the function regexp-opt. Therefore, take a look at the source before you define your own sql-mode-postgres-font-lock-keywords.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/sql.el.gz
(defvar sql-mode-postgres-font-lock-keywords
  (eval-when-compile
    (list
     ;; Postgres psql commands
     '("^\\s-*\\\\.*$" . font-lock-doc-face)

     ;; Postgres unreserved words but may have meaning
     (sql-font-lock-keywords-builder 'font-lock-builtin-face nil "a"
"abs" "absent" "according" "ada" "alias" "allocate" "are" "array_agg"
"asensitive" "atomic" "attribute" "attributes" "avg" "base64"
"bernoulli" "bit_length" "bitvar" "blob" "blocked" "bom" "breadth" "c"
"call" "cardinality" "catalog_name" "ceil" "ceiling" "char_length"
"character_length" "character_set_catalog" "character_set_name"
"character_set_schema" "characters" "checked" "class_origin" "clob"
"cobol" "collation" "collation_catalog" "collation_name"
"collation_schema" "collect" "column_name" "columns"
"command_function" "command_function_code" "completion" "condition"
"condition_number" "connect" "connection_name" "constraint_catalog"
"constraint_name" "constraint_schema" "constructor" "contains"
"control" "convert" "corr" "corresponding" "count" "covar_pop"
"covar_samp" "cube" "cume_dist" "current_default_transform_group"
"current_path" "current_transform_group_for_type" "cursor_name"
"datalink" "datetime_interval_code" "datetime_interval_precision" "db"
"defined" "degree" "dense_rank" "depth" "deref" "derived" "describe"
"descriptor" "destroy" "destructor" "deterministic" "diagnostics"
"disconnect" "dispatch" "dlnewcopy" "dlpreviouscopy" "dlurlcomplete"
"dlurlcompleteonly" "dlurlcompletewrite" "dlurlpath" "dlurlpathonly"
"dlurlpathwrite" "dlurlscheme" "dlurlserver" "dlvalue" "dynamic"
"dynamic_function" "dynamic_function_code" "element" "empty"
"end-exec" "equals" "every" "exception" "exec" "existing" "exp" "file"
"filter" "final" "first_value" "flag" "floor" "fortran" "found" "free"
"fs" "fusion" "g" "general" "generated" "get" "go" "goto" "grouping"
"hex" "hierarchy" "host" "id" "ignore" "implementation" "import"
"indent" "indicator" "infix" "initialize" "instance" "instantiable"
"integrity" "intersection" "iterate" "k" "key_member" "key_type" "lag"
"last_value" "lateral" "lead" "length" "less" "library" "like_regex"
"link" "ln" "locator" "lower" "m" "map" "matched" "max"
"max_cardinality" "member" "merge" "message_length"
"message_octet_length" "message_text" "method" "min" "mod" "modifies"
"modify" "module" "more" "multiset" "mumps" "namespace" "nclob"
"nesting" "new" "nfc" "nfd" "nfkc" "nfkd" "nil" "normalize"
"normalized" "nth_value" "ntile" "nullable" "number"
"occurrences_regex" "octet_length" "octets" "old" "open" "operation"
"ordering" "ordinality" "others" "output" "overriding" "p" "pad"
"parameter" "parameter_mode" "parameter_name"
"parameter_ordinal_position" "parameter_specific_catalog"
"parameter_specific_name" "parameter_specific_schema" "parameters"
"pascal" "passing" "passthrough" "percent_rank" "percentile_cont"
"percentile_disc" "permission" "pli" "position_regex" "postfix"
"power" "prefix" "preorder" "public" "rank" "reads" "recovery" "ref"
"referencing" "regr_avgx" "regr_avgy" "regr_count" "regr_intercept"
"regr_r2" "regr_slope" "regr_sxx" "regr_sxy" "regr_syy" "requiring"
"respect" "restore" "result" "return" "returned_cardinality"
"returned_length" "returned_octet_length" "returned_sqlstate" "rollup"
"routine" "routine_catalog" "routine_name" "routine_schema"
"row_count" "row_number" "scale" "schema_name" "scope" "scope_catalog"
"scope_name" "scope_schema" "section" "selective" "self" "sensitive"
"server_name" "sets" "size" "source" "space" "specific"
"specific_name" "specifictype" "sql" "sqlcode" "sqlerror"
"sqlexception" "sqlstate" "sqlwarning" "sqrt" "state" "static"
"stddev_pop" "stddev_samp" "structure" "style" "subclass_origin"
"sublist" "submultiset" "substring_regex" "sum" "system_user" "t"
"table_name" "tablesample" "terminate" "than" "ties" "timezone_hour"
"timezone_minute" "token" "top_level_count" "transaction_active"
"transactions_committed" "transactions_rolled_back" "transform"
"transforms" "translate" "translate_regex" "translation"
"trigger_catalog" "trigger_name" "trigger_schema" "trim_array"
"uescape" "under" "unlink" "unnamed" "unnest" "untyped" "upper" "uri"
"usage" "user_defined_type_catalog" "user_defined_type_code"
"user_defined_type_name" "user_defined_type_schema" "var_pop"
"var_samp" "varbinary" "variable" "whenever" "width_bucket" "within"
"xmlagg" "xmlbinary" "xmlcast" "xmlcomment" "xmldeclaration"
"xmldocument" "xmlexists" "xmliterate" "xmlnamespaces" "xmlquery"
"xmlschema" "xmltable" "xmltext" "xmlvalidate"
)

     ;; Postgres non-reserved words
     (sql-font-lock-keywords-builder 'font-lock-builtin-face nil
"abort" "absolute" "access" "action" "add" "admin" "after" "aggregate"
"also" "alter" "always" "assertion" "assignment" "at" "attribute" "backward"
"before" "begin" "between" "by" "cache" "called" "cascade" "cascaded"
"catalog" "chain" "characteristics" "checkpoint" "class" "close"
"cluster" "coalesce" "comment" "comments" "commit" "committed"
"configuration" "connection" "constraints" "content" "continue"
"conversion" "copy" "cost" "createdb" "createrole" "createuser" "csv"
"current" "cursor" "cycle" "data" "database" "day" "deallocate" "dec"
"declare" "defaults" "deferred" "definer" "delete" "delimiter"
"delimiters" "dictionary" "disable" "discard" "document" "domain"
"drop" "each" "enable" "encoding" "encrypted" "enum" "escape"
"exclude" "excluding" "exclusive" "execute" "exists" "explain"
"extension" "external" "extract" "family" "first" "float" "following" "force"
"forward" "function" "functions" "global" "granted" "greatest"
"handler" "header" "hold" "hour" "identity" "if" "immediate"
"immutable" "implicit" "including" "increment" "index" "indexes"
"inherit" "inherits" "inline" "inout" "input" "insensitive" "insert"
"instead" "invoker" "isolation" "key" "label" "language" "large" "last"
"lc_collate" "lc_ctype" "leakproof" "least" "level" "listen" "load" "local"
"location" "lock" "login" "mapping" "match" "maxvalue" "minute"
"minvalue" "mode" "month" "move" "names" "national" "nchar"
"next" "no" "nocreatedb" "nocreaterole" "nocreateuser" "noinherit"
"nologin" "none"  "noreplication" "nosuperuser" "nothing" "notify" "nowait" "nullif"
"nulls" "object" "of" "off" "oids" "operator" "option" "options" "out"
"overlay" "owned" "owner" "parser" "partial" "partition" "passing" "password"
"plans" "position" "preceding" "precision" "prepare" "prepared" "preserve" "prior"
"privileges" "procedural" "procedure" "quote" "range" "read"
"reassign" "recheck" "recursive" "ref" "reindex" "relative" "release"
"rename" "repeatable" "replace" "replica" "replication" "reset" "restart" "restrict"
"returns" "revoke" "role" "rollback" "row" "rows" "rule" "savepoint"
"schema" "scroll" "search" "second" "security" "sequence"
"serializable" "server" "session" "set" "setof" "share" "show"
"simple" "snapshot" "stable" "standalone" "start" "statement" "statistics"
"stdin" "stdout" "storage" "strict" "strip" "substring" "superuser"
"sysid" "system" "tables" "tablespace" "temp" "template" "temporary"
"transaction" "treat" "trim" "truncate" "trusted" "type" "types"
"unbounded" "uncommitted" "unencrypted" "unlisten" "unlogged" "until"
"update" "vacuum" "valid" "validate" "validator" "value" "values" "varying" "version"
"view" "volatile" "whitespace" "without" "work" "wrapper" "write"
"xmlattributes" "xmlconcat" "xmlelement" "xmlexists" "xmlforest" "xmlparse"
"xmlpi" "xmlroot" "xmlserialize" "year" "yes" "zone"
)

     ;; Postgres Reserved
     (sql-font-lock-keywords-builder 'font-lock-keyword-face nil
"all" "analyse" "analyze" "and" "array" "asc" "as" "asymmetric"
"authorization" "binary" "both" "case" "cast" "check" "collate"
"column" "concurrently" "constraint" "create" "cross"
"current_catalog" "current_date" "current_role" "current_schema"
"current_time" "current_timestamp" "current_user" "default"
"deferrable" "desc" "distinct" "do" "else" "end" "except" "false"
"fetch" "foreign" "for" "freeze" "from" "full" "grant" "group"
"having" "ilike" "initially" "inner" "in" "intersect" "into" "isnull"
"is" "join" "leading" "left" "like" "limit" "localtime"
"localtimestamp" "natural" "notnull" "not" "null" "offset"
"only" "on" "order" "or" "outer" "overlaps" "over" "placing" "primary"
"references" "returning" "right" "select" "session_user" "similar"
"some" "symmetric" "table" "then" "to" "trailing" "true" "union"
"unique" "user" "using" "variadic" "verbose" "when" "where" "window"
"with"
)

     ;; Postgres PL/pgSQL
     (sql-font-lock-keywords-builder 'font-lock-keyword-face nil
"assign" "if" "case" "loop" "while" "for" "foreach" "exit" "elsif" "return"
"raise" "execsql" "dynexecute" "perform" "getdiag" "open" "fetch" "move" "close"
)

     ;; Postgres Data Types
     (sql-font-lock-keywords-builder 'font-lock-type-face nil
 "bigint" "bigserial" "bit" "bool" "boolean" "box" "bytea" "char" "character"
"cidr" "circle" "date" "daterange" "decimal" "double" "float4" "float8" "inet"
"int" "int2" "int4" "int4range" "int8" "int8range" "integer" "interval"
"jsonb" "jsonpath" "line" "lseg" "macaddr" "macaddr8" "money" "name" "numeric"
"numrange" "oid" "path" "point" "polygon" "precision" "real" "regclass"
"regcollation" "regconfig" "regdictionary" "regnamespace " "regoper"
"regoperator" "regproc" "regprocedure" "regrole" "regtype" "sequences"
"serial" "serial4" "serial8" "smallint" "smallserial" "text" "time"
"timestamp" "timestamptz" "timetz" "tsquery" "tsrange" "tstzrange" "tsvector"
"txid_snapshot" "unknown" "uuid" "varbit" "varchar" "varying" "without" "xml"
"zone"
)))

  "Postgres SQL keywords used by font-lock.

This variable is used by `sql-mode' and `sql-interactive-mode'.  The
regular expressions are created during compilation by calling the
function `regexp-opt'.  Therefore, take a look at the source before
you define your own `sql-mode-postgres-font-lock-keywords'.")