o
    8DiR                     @  sX   d dl mZ d dlmZ d dlmZ d dlmZ d dlZ	d dl
mZ G dd deZdS )	    )annotations)Postgres)	Generator)	TokenTypeN)expc                   @  sB   e Zd ZG dd dejZG dd dejZG dd dejZdS )
RisingWavec                   @  s&   e Zd Zi ejjejejdZdS )zRisingWave.Tokenizer)SINKSOURCEN)	__name__
__module____qualname__r   	TokenizerKEYWORDSr   r   r	    r   r   T/var/www/Datamplify/venv/lib/python3.10/site-packages/sqlglot/dialects/risingwave.pyr      s    r   c                   @  sT   e Zd ZdZi ejjdd dd dd dZdd	d
ZdddZddddZ	dS )zRisingWave.ParserFc                 C     |   S N_parse_encode_propertyselfr   r   r   <lambda>       zRisingWave.Parser.<lambda>c                 C  r   r   )_parse_include_propertyr   r   r   r   r      r   c                 C  s   | j ddS )NT)keyr   r   r   r   r   r      s    )ENCODEINCLUDEKEYreturn"t.Optional[t.List[exp.Expression]]c                 C  s   d S r   r   r   r   r   r   _parse_table_hints   s   z$RisingWave.Parser._parse_table_hintst.Optional[exp.Expression]c                 C  sl   d }d }|   }| tjs|  }|r| jtj||  d}| tj | j	| j
d}| jtj|||dS )N)thiskind)tokens)r"   alias
column_def)_parse_var_or_string_matchr   ALIAS_parse_field
expressionr   	ColumnDef_parse_types_parse_id_varALIAS_TOKENSIncludeProperty)r   headercoldefr"   r%   r   r   r   r   !   s   z)RisingWave.Parser._parse_include_propertyNr   t.Optional[bool]exp.EncodePropertyc                 C  sP   |  d |  }| jtjddr| jtj|  d}nd }| jtj	|||dS )Nr   F)advance)expressions)r"   
propertiesr   )
_match_text_seqr'   r(   r   L_PARENr+   r   
Properties_parse_wrapped_propertiesEncodeProperty)r   r   r"   r7   r   r   r   r   1   s   

z(RisingWave.Parser._parse_encode_property)r   r   )r   r!   r   )r   r3   r   r4   )
r
   r   r   #WRAPPED_TRANSFORM_COLUMN_CONSTRAINTr   ParserPROPERTY_PARSERSr    r   r   r   r   r   r   r>      s    

r>   c                   @  sV   e Zd ZdZi ejjejdd iZi ejj	ejej
jjiZ	dhZdd	d
ZdS )zRisingWave.GeneratorFc                 C  s   d|  |d S )NzFORMAT r"   )sql)r   er   r   r   r   C   s    zRisingWave.Generator.<lambda>r   r+   exp.ComputedColumnConstraintr   strc                 C  s   t | |S r   )r   computedcolumnconstraint_sql)r   r+   r   r   r   rD   M   s   z1RisingWave.Generator.computedcolumnconstraint_sqlN)r+   rB   r   rC   )r
   r   r   LOCKING_READS_SUPPORTEDr   r   
TRANSFORMSr   FileFormatPropertyPROPERTIES_LOCATIONr:   LocationPOST_EXPRESSION)EXPRESSION_PRECEDES_PROPERTIES_CREATABLESrD   r   r   r   r   r   >   s    
r   N)r
   r   r   r   r   r>   r   r   r   r   r   r   
   s    ,r   )
__future__r   sqlglot.dialects.postgresr   sqlglot.generatorr   sqlglot.tokensr   typingtsqlglotr   r   r   r   r   r   <module>   s    