o
    8Di                     @  s   d dl mZ d dlZd dlmZmZ d dlmZ d dl	m
Z
 d dlmZ ejr9d dlmZ d dlmZ d d	lmZ 		ddddZdS )    )annotationsN)aliasexp)OptimizeError)traverse_scope)ensure_schema)E)Schema)DialectType
expressionr   schemat.Optional[t.Dict | Schema]dialectr
   returnc              
   C  s   t ||d}t| D ]T}t|jdkrq
|j D ]D\}}|js"J t|tjr<|	|r<t|jtj
s<t|jjtjr=q|jsDtd|tdjt||jddddj|jdd qq
| S )	N)r      z9Tables require an alias. Run qualify_tables optimization.*T)tableF)copy)r   r   lenselected_sourcesvaluesparent
isinstancer   Tablecolumn_namesSubqueryr   r   replaceselectfrom_alias_or_namesubquery)r   r   r   scope_source r$   `/var/www/Datamplify/venv/lib/python3.10/site-packages/sqlglot/optimizer/isolate_table_selects.pyisolate_table_selects   s8   

r&   )NN)r   r   r   r   r   r
   r   r   )
__future__r   typingtsqlglotr   r   sqlglot.errorsr   sqlglot.optimizer.scoper   sqlglot.schemar   TYPE_CHECKINGsqlglot._typingr   r	   sqlglot.dialects.dialectr
   r&   r$   r$   r$   r%   <module>   s    