ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ M!Vc@s ddlZddlmZddlmZddlmZmZmZmZddl m Z ddl m Z m Z dd lmZmZmZejrdd lmZndd lmZddlZejeZd e fd YZeeddZdS(iNi(tcompat(tutili(tcompilest alter_tabletformat_table_namet RenameTable(t DefaultImpl(tINTEGERtBIGINT(ttexttNumerictColumn(tUnaryExpression(t_UnaryExpressiontPostgresqlImplcBs8eZdZeZdZdZdZdZRS(t postgresqlcCs7x0|jD]%}|jdk r |j|q q WdS(N(t constraintstnametNonetdrop_constraint(tselfttablet constraint((sG/opt/alt/python27/lib/python2.7/site-packages/alembic/ddl/postgresql.pytprep_table_for_batchscCs|jr||jjkrtS|}d||fkrA||kS|jdk rt|jjtj rt j d| rt|j t  rt jdd|}n|jjd||f S(Ns^'.+'$s ^u?'?|'?$t'sSELECT %s = %s(t primary_keyRt_autoincrement_columntFalseRtserver_defaultt isinstancetargRt string_typestretmatchttypeR tsubt connectiontscalar(Rtinspector_columntmetadata_columntrendered_metadata_defaulttrendered_inspector_defaulttconn_col_default((sG/opt/alt/python27/lib/python2.7/site-packages/alembic/ddl/postgresql.pytcompare_server_defaults"     cCs|jdrt|dttfrtjd|d}|r|jjtdd|j dj }|r|\}}||dkrt j d||j |f|d=qqqndS( NtdefaultR"snextval\('(.+?)'::regclass\)s+select c.relname, a.attname from pg_class as c join pg_depend d on d.objid=c.oid and d.classid='pg_class'::regclass and d.refclassid='pg_class'::regclass join pg_class t on t.oid=d.refobjid join pg_attribute a on a.attrelid=t.oid and a.attnum=d.refobjsubid where c.relkind='S' and c.relname=:seqnametseqnameiRs^Detected sequence named '%s' as owned by integer column '%s(%s)', assuming SERIAL and omitting(tgetRRRR R!tbindtexecuteR tgrouptfirsttlogtinfoR(Rt inspectorRt column_infot seq_matchR4R-tcolname((sG/opt/alt/python27/lib/python2.7/site-packages/alembic/ddl/postgresql.pytautogen_column_reflect<s     c s"td|Dtd|DtfdtjD}x-|jD]\}\}}|j|qgWxt|D]} | jkrqntjr| j } n | j } xG| D]?} t | t t fstjd| j|j| qqWqWdS(Ncss|]}|j|fVqdS(N(R(t.0tc((sG/opt/alt/python27/lib/python2.7/site-packages/alembic/ddl/postgresql.pys _scss|]}|j|fVqdS(N(R(R:R;((sG/opt/alt/python27/lib/python2.7/site-packages/alembic/ddl/postgresql.pys asc3s)|]}|||ffVqdS(N((R:R(tconn_indexes_by_nametconn_uniques_by_name(sG/opt/alt/python27/lib/python2.7/site-packages/alembic/ddl/postgresql.pys fssQautogenerate skipping functional index %s; not supported by SQLAlchemy reflection(tdicttsett intersectiontitemstremovetlistRRtsqla_08t expressionstcolumnsRR R Rtwarntdiscard( Rtconn_unique_constraintst conn_indexestmetadata_unique_constraintstmetadata_indexestdoubled_constraintsRtuqtixtidxtexprstexpr((R<R=sG/opt/alt/python27/lib/python2.7/site-packages/alembic/ddl/postgresql.pytcorrect_for_autogen_constraintsZs,      ( t__name__t __module__t __dialect__tTruettransactional_ddlRR+R9RS(((sG/opt/alt/python27/lib/python2.7/site-packages/alembic/ddl/postgresql.pyRs    RcKs/dt||j|jt||jdfS(Ns%s RENAME TO %s(Rt table_nametschemaRtnew_table_nameR(telementtcompilertkw((sG/opt/alt/python27/lib/python2.7/site-packages/alembic/ddl/postgresql.pytvisit_rename_table}s(R RRttbaseRRRRtimplRtsqlalchemy.dialects.postgresqlRRt sqlalchemyR R R RDtsqlalchemy.sql.expressionR R tloggingt getLoggerRTR3RR_(((sG/opt/alt/python27/lib/python2.7/site-packages/alembic/ddl/postgresql.pyts "  i