a
    T_/                     @   s   d Z dZdZdZeeeeeeej	e ZdZ
edkrddlZzddlmZ W n eyr   ddlmZ Y n0 dd	lmZ d
Zed Zed Zdd Zdd Zdd Zdd Zdd Ze  dS )z
    pygments.lexers._postgres_builtins
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Self-updating data files for PostgreSQL lexer.

    :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
(  ZABORTZABSOLUTEZACCESSZACTIONZADDZADMINZAFTERZ	AGGREGATEZALLZALSOZALTERZALWAYSZANALYSEZANALYZEZANDANYZARRAYZASZASCZ	ASSERTIONZ
ASSIGNMENTZ
ASYMMETRICATZATTACHZ	ATTRIBUTEZAUTHORIZATIONZBACKWARDZBEFOREZBEGINZBETWEENZBIGINTZBINARYZBITZBOOLEANZBOTHZBYZCACHECALLZCALLEDZCASCADEZCASCADEDZCASEZCASTZCATALOGZCHAINZCHARZ	CHARACTERZCHARACTERISTICSZCHECKZ
CHECKPOINTZCLASSZCLOSEZCLUSTERZCOALESCEZCOLLATEZ	COLLATIONZCOLUMNZCOLUMNSCOMMENTZCOMMENTSZCOMMITZ	COMMITTEDZCONCURRENTLYZCONFIGURATIONZCONFLICTZ
CONNECTIONZ
CONSTRAINTZCONSTRAINTSZCONTENTZCONTINUEZ
CONVERSIONZCOPYZCOSTZCREATEZCROSSZCSVZCUBEZCURRENTZCURRENT_CATALOGZCURRENT_DATEZCURRENT_ROLEZCURRENT_SCHEMAZCURRENT_TIMEZCURRENT_TIMESTAMPZCURRENT_USERZCURSORZCYCLEZDATAZDATABASEZDAYZ
DEALLOCATEZDECZDECIMALZDECLAREZDEFAULTZDEFAULTSZ
DEFERRABLEZDEFERREDZDEFINERZDELETEZ	DELIMITERZ
DELIMITERSZDEPENDSZDESCZDETACHZ
DICTIONARYZDISABLEZDISCARDZDISTINCTZDOZDOCUMENTZDOMAINZDOUBLEZDROPZEACHELSEZENABLEENCODINGZ	ENCRYPTEDZENDZENUMZESCAPEZEVENTZEXCEPTZEXCLUDEZ	EXCLUDINGZ	EXCLUSIVEZEXECUTEZEXISTSZEXPLAINZ
EXPRESSIONZ	EXTENSIONZEXTERNALZEXTRACTZFALSEZFAMILYZFETCHZFILTERZFIRSTZFLOATZ	FOLLOWINGZFORZFORCEZFOREIGNZFORWARDZFREEZEZFROMZFULLZFUNCTIONZ	FUNCTIONSZ	GENERATEDZGLOBALZGRANTZGRANTEDZGREATESTZGROUPZGROUPINGZGROUPSZHANDLERZHAVINGZHEADERZHOLDZHOURZIDENTITYZIFZILIKEZ	IMMEDIATEZ	IMMUTABLEZIMPLICITZIMPORTINZINCLUDEZ	INCLUDINGZ	INCREMENTZINDEXZINDEXESZINHERITZINHERITSZ	INITIALLYZINLINEZINNERZINOUTZINPUTZINSENSITIVEZINSERTZINSTEADZINTZINTEGERZ	INTERSECTZINTERVALZINTOZINVOKERZISZISNULLZ	ISOLATIONZJOINZKEYZLABELZLANGUAGEZLARGEZLASTZLATERALZLEADINGZ	LEAKPROOFZLEASTZLEFTZLEVELZLIKEZLIMITZLISTENZLOADZLOCALZ	LOCALTIMEZLOCALTIMESTAMPZLOCATIONZLOCKZLOCKEDZLOGGEDZMAPPINGZMATCHZMATERIALIZEDZMAXVALUEZMETHODZMINUTEZMINVALUEZMODEZMONTHZMOVENAMEZNAMESZNATIONALZNATURALZNCHARZNEWZNEXTZNFCZNFDZNFKCZNFKDZNOZNONEZ	NORMALIZEZ
NORMALIZEDZNOTZNOTHINGZNOTIFYZNOTNULLZNOWAITZNULLZNULLIFZNULLSZNUMERICZOBJECTZOFZOFFZOFFSETZOIDSZOLDZONZONLYZOPERATORZOPTIONZOPTIONSORZORDERZ
ORDINALITYZOTHERSZOUTZOUTERZOVERZOVERLAPSZOVERLAYZ
OVERRIDINGZOWNEDZOWNERZPARALLELZPARSERZPARTIALZ	PARTITIONZPASSINGZPASSWORDZPLACINGZPLANSZPOLICYZPOSITIONZ	PRECEDINGZ	PRECISIONZPREPAREZPREPAREDZPRESERVEZPRIMARYZPRIORZ
PRIVILEGESZ
PROCEDURALZ	PROCEDUREZ
PROCEDURESZPROGRAMZPUBLICATIONZQUOTERANGEZREADZREALZREASSIGNZRECHECKZ	RECURSIVEZREFZ
REFERENCESZREFERENCINGZREFRESHZREINDEXZRELATIVEZRELEASEZRENAMEZ
REPEATABLEZREPLACEZREPLICAZRESETZRESTARTZRESTRICTZ	RETURNINGZRETURNSZREVOKEZRIGHTZROLEZROLLBACKZROLLUPZROUTINEZROUTINESZROWZROWSZRULEZ	SAVEPOINTZSCHEMAZSCHEMASZSCROLLZSEARCHZSECONDZSECURITYZSELECTZSEQUENCEZ	SEQUENCESZSERIALIZABLEZSERVERZSESSIONZSESSION_USERZSETZSETOFZSETSZSHAREZSHOWZSIMILARZSIMPLEZSKIPZSMALLINTZSNAPSHOTZSOMEZSQLZSTABLEZ
STANDALONEZSTARTZ	STATEMENTZ
STATISTICSZSTDINZSTDOUTZSTORAGEZSTOREDZSTRICTZSTRIPZSUBSCRIPTIONZ	SUBSTRINGZSUPPORTZ	SYMMETRICZSYSIDZSYSTEMZTABLEZTABLESZTABLESAMPLEZ
TABLESPACEZTEMPTEMPLATEZ	TEMPORARYZTEXTZTHENZTIESZTIME	TIMESTAMPZTOZTRAILINGZTRANSACTIONZ	TRANSFORMZTREATZTRIGGERZTRIMZTRUEZTRUNCATEZTRUSTEDZTYPEZTYPESZUESCAPEZ	UNBOUNDEDZUNCOMMITTEDZUNENCRYPTEDZUNIONZUNIQUEZUNKNOWNZUNLISTENZUNLOGGEDZUNTILZUPDATEZUSERZUSINGZVACUUMZVALIDZVALIDATEZ	VALIDATORZVALUEZVALUESZVARCHARZVARIADICZVARYINGVERBOSEZVERSIONZVIEWZVIEWSZVOLATILEZWHENZWHERE
WHITESPACEZWINDOWZWITHZWITHINZWITHOUTZWORKZWRAPPERZWRITEZXMLZXMLATTRIBUTESZ	XMLCONCATZ
XMLELEMENTZ	XMLEXISTSZ	XMLFORESTZXMLNAMESPACESZXMLPARSEZXMLPIZXMLROOTZXMLSERIALIZEZXMLTABLEZYEARZYESZZONE);ZbigintZ	bigserialbitzbit varyingboolZbooleanZboxZbyteachar	characterzcharacter varyingZcidrZcircledateZdecimalzdouble precisionZfloat4Zfloat8ZinetintZint2Zint4Zint8ZintegerZintervalZjsonZjsonblineZlsegZmacaddrZmacaddr8ZmoneyZnumericpathZpg_lsnZpg_snapshotZpointZpolygonrealserialZserial2Zserial4Zserial8ZsmallintZsmallserialtexttimeZ	timestampZtimestamptzZtimetzZtsqueryZtsvectorZtxid_snapshotZuuidZvarbitZvarcharzwith time zonezwithout time zoneZxml)anyZanyarrayZanycompatibleZanycompatiblearrayZanycompatiblenonarrayZanycompatiblerangeZ
anyelementZanyenumZanynonarrayZanyrangeZcstringZevent_triggerZfdw_handlerZindex_am_handlerZinternalZlanguage_handlerZpg_ddl_commandrecordZtable_am_handlerZtriggerZtsm_handlerunknownZvoid)ZALIASZCONSTANTZDIAGNOSTICSZELSIFZ	EXCEPTIONZEXITZFOREACHZGETZLOOPZNOTICEZOPENZPERFORMZQUERYZRAISEZRETURNZREVERSEZSQLSTATEZWHILE__main__    N)urlopen)format_linesz/https://github.com/postgres/postgres/raw/masterz/src/include/parser/kwlist.hz/doc/src/sgml/datatype.sgmlc                  C   sx   t t jddd} t|  }t|}t|}t t jddd} t	| }t
td| t
td| t
td| d S )Nzutf-8ignore)errors	DATATYPESPSEUDO_TYPESKEYWORDS)r    DATATYPES_URLreaddecodelist
splitlinesparse_datatypesparse_pseudosKEYWORDS_URLparse_keywordsupdate_consts__file__)contentZ	data_fileZ	datatypesZpseudoskeywords r4   D/usr/lib/python3/dist-packages/pygments/lexers/_postgres_builtins.pyupdate_myselfD  s    r6   c                 C   sB   g }t d| D ]}||d  q|s6td|  |S )NzPG_KEYWORD\("(.+?)"   zno keyword found)refinditerappendgroupupper
ValueErrorsort)fkwmr4   r4   r5   r/   Q  s    r/   c              	   C   s   t  }| D ]}d|v r qd|vr$q
tdd|}tdd|}dd |dD D ]6}|d	D ]&}| }|stqb|d
|  qbqTq
t|}|  |S )Nz<sect1z<entry><type>z <replaceable>[^<]+</replaceable> z<[^>]+>c                 S   s(   g | ] }| d D ]}d|vr|qqS )]()split).0tmptr4   r4   r5   
<listcomp>m  s   z#parse_datatypes.<locals>.<listcomp>[, )	setr8   subrE   stripaddjoinr*   r>   )r?   dtr   rG   rH   r4   r4   r5   r,   \  s     r,   c                 C   s   g }t d}t d}t d}t| } | D ]}||d ur. qNq.td| D ]8}||}|d urx||d ||d urR qqRtd|std|  |S )Nz*\s*<table id="datatype-pseudotypes-table">z$\s*<entry><type>(.+?)</type></entry>z\s*</table>z pseudo datatypes table not foundr7   z'end of pseudo datatypes table not foundzpseudo datatypes not found)r8   compileitermatchr=   r:   r;   r>   )r?   rR   Zre_startZre_entryZre_endr   rA   r4   r4   r5   r-   x  s(    



r-   c                 C   s   t | }| }W d    n1 s&0    Y  td| tjtjB }||}|sdtd|f t||}|d |	  | ||
 d   }t | ddd}|| W d    n1 s0    Y  d S )Nz^%s\s*=\s*\($.*?^\s*\)$z)Could not find existing definition for %sw
)newline)openr(   r8   rS   MSsearchr=   r!   startendwrite)filenameZ	constnamer2   r?   dataZre_matchrA   Z	new_blockr4   r4   r5   r0     s    
&

$r0   )__doc__r&   r$   r%   tuplesortedrM   mapstrlowerZPLPGSQL_KEYWORDS__name__r8   Zurllibr    ImportErrorZurllib.requestZpygments.utilr!   Z
SOURCE_URLr.   r'   r6   r/   r,   r-   r0   r4   r4   r4   r5   <module>   s0      H> 