XׯdF^ddlZddlZddlZddlmZddlmZddlmZddlmZddlm Z ddlm Z m Z m Z ddl mZdd lmZmZdd lmZd Zd(d Zd ZGddejZGddejZGddejZGddejZGddZGddeeZGddee ZGddeeZ GddeeZ!Gd d!eeZ"Gd"d#eeZ#Gd$d%eejZ$Gd&d'ej%Z&dS))N) log_error)MaintenanceResultForm) ObjectManager)TriggerManager) ColumnManager)IconStringColumnTypeStringColumnTypeLongIntegerColumnType)make_panel_header) human_sizeVersion) to_unicodecltj|}|tj|SN)mformsnewLabel set_style BoldStyle)tls !..\modules\sqlide_tableman_ext.py make_titler$s+AKK !!! Hc|D]\}}t|}|||tj|j}||dd|||t|dt||| |dS)Nr.) TableInspector show_tablerfromgrt dockingPoint dock_view select_view set_titlerswitch_to_page)editor selectionpageschematabletinspectdpoints rshow_table_inspectorr,)s"** !&))FE*** 3442q)))8$$$j&8&8&8&8*U:K:K:KLMMM    # #D ) ) )**rc tj|d}|d}|dd}g}d |D]e}|jdkr"||j|jf/|jdkr)d ||j|jjfcdS|rtj rdnd }| ||f fd |rK| d || d tjd tj dS| rd nd |dSdS)Nmenur&schema_inspectorFzdb.Tablezdb.IndexT Create IndexTable Inspectorc.t||rdndS)Nindexes)r,)sendertables_selectedshow_index_pages rz+handleLiveTreeContextMenu..FsCYmntwFVeIoIRIRkoZpZprrr) rrgettypeappend schemaNamenameowner newMenuItemadd_clicked_callback insert_itemSeparatorMenuItem) r=r4argsr.r&from_schema_inspectorr5sitemr6s @rhandleLiveTreeContextMenurG4s >$v, ' 'D[!I HH%7??OO  6Z    " "AL! : : : : Vz ! !"O  " "AL!',#? @ @ @ @ FF@!O"Z..IZ[[ !!#p#p#p#p#p q q q  @   Q % % %   Q 22v7O P P Q Q Q Q Q   /8QQq$ ? ? ? ? ?@@rc:eZdZdZdZdZdZdZdZdZ dZ d S) TableInfoPanelInfo informationsc "tj|d||||_t j|jj|_ tj |_ | rdnd}|j d|z|j d|j d|j dtjd|_|jdd|_||jdd|j t-ddddd tj|j tjd dd d d tjtjd |_|jtj|j |jd dd d tjtjz|j tjddd d dtjtjd |_|jtj|j |jd dd dtjtjz|j tjddd ddtjtjd |_|jtj|j |jd dddtjtjz|j tjddd ddtjtjd |_|jtj|j |jd dddtjtjz|j tjddd ddtjtjd |_ |j tj|j |j d dddtjtjz|j tjddd ddtjtjd |_!|j!tj|j |j!d dddtjtjz|j tjddd ddtjtjd |_"|j"tj|j |j"d dddtjtjz|j tjddd ddtjtjd |_#|j#tj|j |j#d dddtjtjz|j tjddd ddtjtjd |_$|j$tj|j |j$d dddtjtjz|j tjddd ddtjtjd |_%|j%tj|j |j%d dddtjtjz| rf|j tjddd ddtjtjd |_&|j&tj|j |j&d dddtjtjz|j tjd dd dd!tjtjd |_'|j'tj|j |j'd ddd!tjtjz|j tjd"dd d|zd|ztjtjd |_(|j(tj|j |j(d dd|zd|ztjtjz|j tjd#dd d|zd!|ztjtjd |_)|j)tj|j |j)d dd|zd!|ztjtjz|j tjd$dd d!|zd%|ztjtjd |_*|j*tj|j |j*d dd!|zd%|ztjtjz|j tjd&dd d%|zd'|ztjtjd |_+|j+tj|j |j+d dd%|zd'|ztjtjz|j tjd(dd d'|zd)|ztjtjd |_,|j,tj|j |j,d dd'|zd)|ztjtjz|j tjd*dd d)|zd|ztjtjd |_-|j-tj|j-.dt^j01d+kr|j-2d d,|j |j-d dd)|zd|ztjtjztj3}|4dd|5dtjd}|6d!|d!||j dd||||ddtjd}|6d!|d!tj }| d |d tj7|_8|j89d-|j8:|j;|j8<d|tjd.dd dd tj||j8d ddd tj|tjd/dd dd tj||dd||dddS)0NFrT z Table Detailsr8zEngine:rz Row format:z Column count:z Table rows:zAVG row length:z Data length: z Index length:zMax data length: z Data free: zTable size (estimate): z File format:z Data path:z Update time:z Create time:zAuto increment:zTable collation:zCreate options:Comment:win32z Analyze Tablez0Information on this page may be outdated. Click z to update it.)=rBox__init__ set_managedset_release_on_addr%r r serverVersiontarget_versionnewTabler)i_s_innodb_available set_row_countset_column_countset_row_spacingset_column_spacingnewBoxpanel_header_box set_padding _table_engineaddr HFillFlagrenginerr HExpandFlag row_format column_count table_rowsavg_row_length data_length index_lengthmax_data_length data_free table_size file_format data_path update_time create_timeauto_incrementtable_collationcreate_options table_comment set_wrap_textsysplatformlowerset_size ScrollPanelset_visible_scrollersset_autohide_scrollers set_spacing newButton analyze_btnset_textr@ analyze_tableenable_internal_padding)selfr%offsetscrolltboxbboxr)s rrczTableInfoPanel.__init__Qs D%(((  !!! %odk.GHH_&& //118q   f--- ##A&&& ""1%%% %%a((( & d 3 3 ))"---! &ud333 z/22Aq!Q@PQQQ vy111aFL\]]]ob))  f./// t{1aFL\]c]oLoppp v}551aFL\]]] /"-- !!&"2333 t1aFL\]c]oLoppp v771aFL\]]]"OB// ##F$4555 t(1aFL\]c]oLoppp v}551aFL\]]] /"-- !!&"2333 t1aFL\]c]oLoppp v'8991aFL\]]]$ob11 %%f&6777 t*1aFL\]c]oLoppp v~661aFL\]]]!?2.. ""6#3444 t'1aFL\]c]oLoppp v771aVM]^^^"OB// ##F$4555 t(1aVM]^d^pMpqqq v'9::1b"fN^___%r22 &&v'7888 t+1b"fN^_e_qNqrrr v|441b"fN^___,,   !1222 t~1b"fN^_e_qNqrrr v'?@@1aQSUWY_Yijjj /"-- !!&"2333 t1b"fN^_e_qNqrrr  $ $ & & v JNN6?>::1aRQWQa b b b%r22D    & &v'7 8 8 8 JNN4+1aRQWQabhbtQt u u u JNN6?<881aRQWQa b b b#_R00DN N $ $V%5 6 6 6 JNN4>1aRQWQabhbtQt u u u v~661b6kSUX^S^`f`pqqq!?2.. ""6#3444 t'1b6kSUX^S^`f`pqwrDaD E E E v~661b6kSUX^S^`f`pqqq!?2.. ""6#3444 t'1b6kSUX^S^`f`pqwrDaD E E E v'8991b6kSUX^S^`f`pqqq$ob11 %%f&6777 t*1b6kSUX^S^`f`pqwrDaD E E E v'9::1b6kSUX^S^`f`pqqq%r22 &&v'7888 t+1b6kSUX^S^`f`pqwrDaD E E E v'8991b6kSUX^S^`f`pqqq$ob11 %%f&6777 t*1b6kSUX^S^`f`pqwrDaD E E E vz221b6kSUX^S^`f`pqqq#_R00 $$V%5666 ((... <    7 * *   ' '2 . . . t)1b6kSUX^S^`f`pqwrDaD E E E#%%$$T5111%%d+++z%     T4((( 4 t$$$z$  !! A q!!!!+-- !!/222 --d.@AAA 00777 &/"TUUWXZ[]^`acicsttt $"XY[\^_abdjdtuuu &/"233RSUVXY[\^d^nooo t$$$ ud#####rc|jSr)rqrs rget_table_enginezTableInfoPanel.get_table_engines !!rc|jd|jd|jdd}t |d}|d||dS)NzANALYZE TABLE ``.``r8Fz ANALYZE TABLE)r%executeManagementQuery_schema_tablerr#runrefresh)rresultforms rrzTableInfoPanel.analyze_tablesu333QUQ]Q]Q]_c_j_j_j4kmnoo$VU33 '''   rc8|jddS)NrSrT)rg#is_supported_mysql_version_at_leastrs rriz#TableInfoPanel.i_s_innodb_availables%II!QOO Orc b |jd|jd|jdd}nA#tj$r/}t d|jd|jd|dd}Yd}~nd}~wwxYw|r|}g}i}|jD]C}t||j r| |j D|r|D]}| dd d kr,|| |_t!|| dd |||||| <|}| |jt)t+|d t+|d z|jt)t+|d |jt)t+|d |jt)t+|d |jt)t+|d n:#t4$r-}t d|jd|jd|dYd}~nd}~wwxYw |jd|jd|jdd}nA#tj$r/}t d|jd|jd|dd}Yd}~nd}~wwxYw|rC|}|r-|j|d|r|jddrd|jd|jd}nd|jd|jd} |j|d}n3#tj$r!}t |d|dd}Yd}~nd}~wwxYw|r |}|r|jddr0|jd|d}nB|j|d|d}|dddkr;|j |d|dddS|j |dSdSdSdS)Nz>select * from information_schema.tables WHERE table_schema = 'z' AND table_name = ''rz':   _rtrzr{r}r|z Error displaying table info for r: zSselect count(*) column_count from information_schema.columns WHERE table_schema = 'z' and table_name = 'rwrOzSELECT @@datadir datadir,sd.path FROM information_schema.INNODB_TABLES st JOIN information_schema.innodb_datafiles sd USING(space) WHERE st.name = '/zSELECT @@datadir datadir,st.FILE_FORMAT,sd.path FROM information_schema.INNODB_SYS_TABLES st JOIN information_schema.innodb_sys_datafiles sd USING(space) WHERE st.name = 'rPATH FILE_FORMATpathr8datadirrM)!r%rrrgrtDBErrorr goToFirstRowcolumnshasattrr=rr;replacestringFieldValueByNamerqgetattrrnextRowr~r intrzr{r}r| Exceptionrwrirgrrr) rrseteokr column_valuescolqueryrs rrzTableInfoPanel.refreshsN ;555TXT`T`T`bfbmbmbm7npqrrDD{    Iy}zFzFzFHLHSHSHSUVUVUVW X X XDDDDDD   j""$$BGM| - -4!1!122-NN38,,, $"RRC{{3,,2244@@-1-H-H-M-M-S-S-U-U*D#++c3"7"7"="="?"?@@II$JeJefiJjJjkkk151L1LS1Q1QM#))++..\\^^ $ j((C m8T4U4UX[\ijx\yXzXz4z){){||| ))*S}9U5V5V*W*WXXX!**:c-:W6X6X+Y+YZZZ'' 3}[7Q3R3R(S(STTT$--j]K\=]9^9^._._```` j j j 4<<|| d dddtj|tjd#d d d dd tjtj|_?|j? gd$|j?<| ||j?d ddd tj|tjd%d d d d dtjtj|_@|j@ gd&|j@<| ||j@d dd dtjtjd } | dtj0|_A|jA2d'tj0|_B|jB2d(tjCD| |jA|jB|E| dd |.d)d*|FdS)+NzCreate Index for Table rFrXrUrMrOTz Index Name:rr8)z Non-UniqueUniqueFullTextSpatial)memoryheapndbzType:BTREEHASHzColumns:rQColumnLength<raPrRu▲u▼rz Comments:rSrTz Create/Online Optionsz, Create/Online Options (requires MySQL 5.6+)z Algorithm:)DefaultCopyInPlacezLocking:)z/Default (allow as much concurrency as possible)z)Exclusive (totally block access to table)z"Shared (allow queries but not DML)zNone (allow queries and DML)CreateCanceli&i)GrFormrc main_form FormNormal_owner_editorrr_columns_enginer rrfrgr#rn set_contentrprrhrjrkrlrmrrrrs newTextEntryr= newSelectorkind add_items VFillFlagrur:set_text_alignTopRight newTreeView TreeFlatListTreeAltRowColorsTreeShowColumnLinesr add_columnr end_columnsr VExpandFlagrmove_uprr@ move_row_upr move_down move_row_down newTextBoxcomments majorNumber minorNumber set_enabledrr algorithmlockrcancel Utilitiesadd_end_ok_cancel_buttonsadd_endcenter) rr>r%r(r)rrtcontenthboxrtbl online_ddl_okrs rrczCreateIndexForm.__init__ssM  T6;#8#8#:#:F > > OJ ' ' ))) !Q1a!1&2B!BCCC)&*=f>U*UV\Vp*pqq   73NNN  72tLLL   """ b"%%%o ! Q A q!!!  aAq&*:6;K*KFL^*^_e_q*qrrr'))  n--- ))$*:;;; ,,U333)++ /// ++D,>??? ..u555  aAq&*:6;K*KLLL 1aF,N-NOOO 2>Bdt|GaGmqrGrHcw{xDxRx^bcxc  ! 9::AA OPPA MM%  F$%%% !Q1a!1222 &/,55q!Q6CSTTT+--   !?!?!?@@@ ""=111 $.!Q1f.>??? &/*d33Q1aAQRRR&((  CCC D D D m,,, $)Q1a)9:::}T"" "$$ """&((  X&&&224$+NNNeT*** c3 rc|j}|r|j|}|dkr|d|d}}|j|dz }|d||d|||j|dSdSdS)Nrr8) rget_selected_node row_for_node get_string root_node insert_child set_stringremove_from_parent select_nodernoderowr=lengthnew_nodes rr zCreateIndexForm.move_row_ups|--//  3,++D11CQww#q114??13E3Ef<1133@@QGG##At,,,##Av...''))) ((22222 3 3wrc|j}|r|j|}||jdz kr|d|d}}||j|dz}|d||d||j |dSdSdS)Nr8r) rrr countr!r%r"r#r$r&r's rr zCreateIndexForm.move_row_downs|--//  3,++D11CT\''))!+++#q114??13E3Ef'')))<1133@@QGG##At,,,##Av... ((22222 3 3++rcVd|jdd|j}|j||jD]1}|j}|d|2||j |j rg}t|j D]y}|j |}|d}|d}|r||d|dd||z|j}|jdkrd}nd|z}d |d |jd t)|d r.d |jzndd|jd|jdd|d }|jjjdks*|jjjdkrH|jjjdkr3|d|jddzz }|jjjdks*|jjjdkr|jjjdkrz|d|jzz }|d|jdzz } |j |ddS#tBj"$r;} tFj$%dd| j&dzdddYd} ~ nd} ~ wwxYwdS)Nidx_rrr8()rrCREATEz INDEX `` r:zUSING %sz ON `rz` (, rSz COMMENT '%s'rz''rTz ALGORITHM %sz LOCK %sTr0zError creating index. %sOK)'rjoinrr=rradd_noder$ run_modalrrranger- node_at_rowr!r;rget_string_valueupperget_selected_indexrr:rrrfrrrrrrsplitexecuteManagementCommandrrrr show_errorrC) rr=cr(rirrsqlrs rrzCreateIndexForm.runsc"kkk388DM+B+B+BC D!!! " "A<((**D OOAq ! ! ! ! >>$'4; / / :G4<--//00 & &|//22OOA&&OOA&&&NNqqq!!!#45555NN1%%%%9--//5577Dy++--224x@DdiF`F`FbFbFbFbZabfhnZoZoewdnquqzrLrLrNrNrTrTrVrVeVeVuwewewy}yEyEyEGKGRGRGRTXT]T]^eTfTfTfTfgC|)599dl>X>dhi>i>inrnzoIoUYZoZoZ)G)G)I)I)Q)QRUW[)\)\\\|)599dl>X>dhi>i>inrnzoIoUYZoZoZ)H)H)J)J)P)P)R)RRRzDI$>$>$@$@$F$F$H$H$N$N$P$PQR$SSS : 55c1===t; : : : ++N,G!&QR),S,0"b:::::::: :ts?MN&+1N!!N&N)rrrrcr r rrrrrrrsTrrrh 3 3 3 3 3 3$$$$$rrc@eZdZdZdZdZdZdZdZdZ dZ d Z d S) TableIndexInfoPanelIndexesr3c tj|d|||d|d||_tj |jj |_ d|_ tj }|d|d|d|d||dd|t'dd d d d tjtjtjtjztjz|_|j dd d r'|jtjd d d|jtjd dd|jtjddd|jtjddd|jtjddd|j|j |j!|j"|j#|j$dd||jd d d dtjtj%ztj&d}|t'dddtj'|_(|j()d|j(*d|j(+|j,|-|j(dd||d dd d tjtj.ztj%ztj |_/||j/d dd dtjtj.ztj%z|j/d|j/d|j/d|j/d|j/d|j/tj0dd d d d tjtj0d|_1|j12tj3|j/|j1d dd d tjtj.z|j/tj0dd d d dtjtj0d|_4|j42tj3|j/|j4d dd dtjtj.z|j/tj0dddd dtjtj0d|_5|j52tj3|j/|j5ddd dtjtj.z|j/tj0dd d ddtjtj0d|_6|j62tj3|j/|j6d dddtjtj.z|j/tj0dddddtjtj0d|_7|j72tj3|j/|j7ddddtjtj.z|j/tj0d d d ddtjtj0d|_8|j82tj3|j/|j8d dddtjtj.z|j/tj0d!d d dd"tjtj0d|_9|j92tj3|j/|j9d ddd"tjtj.z|j/tj0d#d d d"d$tjtj0d|_:|j:2tj3|j/|j:d dd"d$tjtj.ztj }|d|d|d|d||dd|t'd%d dd d tjtj.ztjtjtjztjz|_;|j;tjd&d'd|j;tjdd'd|j;tjd(d d|j;tjd)d*d|j;|j;<tj=||j;d dd dtjtj.ztj%ztj>ztj&d}tj'|_?|j?)d+|j?+|j@|-|j?dd||dddS),NFrXrMrQrRrOTzIndexes in Tablerr8Visible2KeyTyperr(Columnsriraz Index Details Drop IndexrUz Key Name:rz Index Type:zPacked:z Allows NULL:zUnique:z Cardinality:r_rSz User Comment:rTzColumns in tablerNullablerFi,z$Create Index for Selected Columns...)Arrbrcrdrerprr%r rrfrgrrhrjrkrlrmrrrrsrrrr index_listrrCheckColumnTyperr radd_changed_callbackindex_selectedset_cell_edited_callback edit_indexrrrnr drop_indexrrr@ do_drop_indexrruinforkey_namerr index_typepacked allows_null unique_values cardinalitycomment user_comment column_listset_selection_modeTreeSelectMultipler  create_indexdo_create_index)rr%r)dhboxrs rrczTableIndexInfoPanel.__init__)sX  D%(((  !!!   %odk.GHH $!! A q!!! a      ### t$$$ */00!Q1f>NOOO ,V-@AX-XY_Ys-stt   B B1a K K T O & &v'=y"d S S S ""6#>sERRR ""6#:FBNNN ""6#:Hb%PPP ""6#:IsERRR ##%%% ,,T-@AAA 00AAA   b))) $/1aAv/?@P/PQQQ d## *_--ud;;; *,,   ... ##E*** ,,T-?@@@ doud333 %Aq!V%5f6H%HIY%YZZZO%%  $)Q1a)9&:L)LVM])]^^^ a    """ ""1%%% !!!$$$ $$Q''' fok221aAvGWXXX++   0111 dm1aAvGWX^XjGjkkk fom441aAvGWXXX /"-- !!&"2333 do1aAvGWX^XjGjkkk foi001aAvGWXXXob))  f./// dk1aAvGWX^XjGjkkk fon551aAvGWXXX!?2.. ""6#3444 d&1aAvGWX^XjGjkkk foi001aAvGWXXX#_R00 $$V%5666 d(1aAvGWX^XjGjkkk fon551aAvGWXXX!?2.. ""6#3444 d&1aAvGWX^XjGjkkk foj111aAvGWXXXr**  v/000 dl1aAvGWX^XjGjkkk foo661aAvGWXXX"OB// ##F$4555 d'1aAvGWX^XjGjkkk!! A q!!! a      ### d### */00!Q1f>NvOa>abbb!-f.A&BY.YZ`Zt.tuu ##F$?3PUVVV ##F$;VS%PPP ##F$;ZUSSS ##F$;YUSSS $$&&& ++F,EFFF $"Aq!Q0@AS0STZTd0dekew0wxxx}T""",.. ""#IJJJ ..t/CDDD T&t444 ud#####rc |j}|r|jdddr|dn|d}t jdd|d|jd|j dd d d t j kr |j d |d |jd|j dd| dS#tj$r<}t jdd|jdzdd d Yd}~dSd}~wwxYwdSdS)NrOrr8rOz Drop index `z` from table `rz`?Droprrz DROP INDEX `z` ON `rzError dropping index. %sr5)rRrrgrr!rr show_messagerrResultOkr%r?rrrr@rC)rr(indexrs rrYz!TableIndexInfoPanel.do_drop_indexs0022  u*.*=*a*abcefhi*j*jCDOOA&&&ptppABqCqCE,,\\fkfkfkmqmymymy{|G|G|GY\]\bcd\e>egkmoqstttttttttu  u urrs)AC..D9=1D44D9c g}|jD]*}||d+|rjt ||j|j|j||jr|nd}| r| dSdStj ddddddS)Nrr0z(You have to select at least one column. r5r)rc get_selectionr;r!rr%rrrrrrr show_warning)rcolsr(rs rrgz#TableIndexInfoPanel.do_create_indexs$2244 , ,D KK** + + + +  t"4dlDKQUrvsHXRW[WlWlWnWnWnNRSSDxxzz       ) ).9dfjlnpr s s s s src |jdddr|d}d|jd|jd|d|ddurd nd }t jd d |zd ddt j krN|j |d| d|ddurdnddSdSdS)NrOrr8z ALTER TABLE `rz` ALTER INDEX `r3T INVISIBLEVISIBLEz Alter IndexzDo you really want to %s ?YesrrF) rgrr!rrget_boolrrrkrlr%r?set_bool)rr(columnvaluermrCs rrWzTableIndexInfoPanel.edit_indexs<   B B1a K K NOOA&&EEAEt{{{\a\a\arvrrABsCsCGKsKsKcncnQZdZ[C,,]">t"D"DECMD' M " "47 + + +   ' 'Q3E J J JAw)##(=#$BWBWBYBY]eBeBe(()9DG)CDDDD((a111   % %d1g . . . K a ) ) )   % %d1g . . . L ! !$q' * * *"FFq!LL 4!**47333 O ' ' - - - - - O ' ' . . . M " "2 & & &   ' ' + + + O $ $R ( ( (   % %b ) ) ) K  $ $ $   % %b ) ) ) L ! !" % % %   & &r * * * * *rcF||j|jdSr)rrrrs rrzTableIndexInfoPanel.refreshs   dk22222rc ||_||_|jg|_|jt j d}t j d}|r |j d|d|ddn7#tj $r%}td|d|d|d dYd}~nd}~wwxYw|jt#jd rt't)d }nt't)d }gd }|D]}||i} r'} d} d} d} d}g}| rd}|| kr|rr|j}|jdddr|d||d||d| |d| |d| dkrdnd|ddd|Dn|d||d| |d| |d| dkrdnd|ddd|Dg}|jfd|D|f|} d} d} d}|jdddrd dk}d}|| vr|g| |<n| |||fd|D} | |rr|j}|jdddr|d||d||d| |d| |d| dkrdnd|ddd|Dn|d||d| |d| |d| dkrdnd|ddd|D |j d|d|ddn7#tj $r%}td |d|d|d dYd}~nd}~wwxYwr*} | r|j}|d||dd|dd|dd|dd| dg} | dSdSdS|j|j|dS)!Nzdb.Column.16x16.pngzdb.Index.16x16.pngzSHOW INDEX FROM `rrrz Cannot execute SHOW INDEX FROM `z`: rz5.6rYrX)rQrRrSrUTrMrOr8rQr{r}r|rRr4cg|] }|d Sr8r.0rAs r z2TableIndexInfoPanel.show_table.. =T=T=Tqad=T=T=Trcg|] }|d Srrrs rrz2TableIndexInfoPanel.show_table..rrc:g|]}|SrrrrBrs rrz2TableIndexInfoPanel.show_table..s'0d0d0da1F1Fq1I1I0d0d0drrPc:g|]}|Srrrs rrz2TableIndexInfoPanel.show_table.. s'#X#X#XD$9$9!$<$<#X#X#Xrcg|] }|d Srrrs rrz2TableIndexInfoPanel.show_table..+5L5L5Lqad5L5L5Lrcg|] }|d Srrrs rrz2TableIndexInfoPanel.show_table..1rrzSHOW COLUMNS FROM `z"Cannot execute SHOW COLUMNS FROM `) rrrRclearrrcrAppr9get_resource_pathr%rrrrrgrr fromstrlistr9removerrr7rw set_icon_pathr$r6r;rrU)rr(r) column_icon index_iconrindex_rs_columnscolumn_rs_columnsrBcolumn_to_indexrcurnameitype non_unique is_visiblerr=r(cnamers @rrzTableIndexInfoPanel.show_tables       jnn&&889NOO Z^^%%778LMM [ " {999Y_Y_Y_afafaf:gijkk;    fffV[V[V[]^]^]^_``` "FFwW\G]G]^^ 3#'b ??  #'b ?? , & + + ''**** O8 O&&((! ! !(0033Dw"W#'?#;#;#=#=D#2VVWXZ[]^__ W $ a < < < $ 2 21j A A A $7 ; ; ; $5 9 9 9 $J#)>r)B)Be)KJ 11!44EO3326..'.55d;;;NN#X#X#X#XFW#X#X#XYYYBC!(FO?3355D*NNqRSUVWW O a444**1j99973335111J#4E4E554PPP4995L5LG5L5L5L+M+MNNNN**1j99973335111J#4E4E554PPP4995L5LG5L5L5L+M+MNNN {999[a[a[achchch:iklmm;    PVPVPVX]X]X]_`_`_`abbb  (&&(((+4466D&&q+666OOAt'<'333c"c"c"c"c"rrEceZdZdZdZdS) TableManDefscvg}t|jD]x\}\}}}}}|r-|jt j|s: |d|dzZ#|d|zYvxYw|j|j|j d |dzS)Nz`%s`fieldr4)r(r)r) enumeraterrgrr rr; show_queryr(r)r6)rrqrB field_objctyperwidth min_versions r get_queryzTableManDefs.get_queryHsBKDLBYBY 0 0 >A> 5'5+ 4#6#Z#Z[b[jkv[w[w#x#x  0 FYw%778888 0 FY./////T[DJ\`\e\efj\k\k!l!llls A11B cJ||_||_|dSr)r(r)rrs rrzTableManDefs.show_tableSs!   rN)rrrrrrrrrrGs5 m m mrrc eZdZdZdZdedddfdedddfd ed ddfd ed ddfd ed ddfd ed ddfdedddfdedddfdedddfg ZdZdS)TableTriggerManagerrz0show triggers from `%(schema)s` like '%(table)s'TriggerNamerNEventdTimingCreatedsql_modezSQL ModeDefinercharacter_set_clientzClient Character Setcollation_connectionzConnection CollationzDatabase Collationctj||d||dSr)rrcrdrers rrczTableTriggerManager.__init__esAfd333  !!!!!r) rrr icon_columnrrr rrcrrrrrXsKCJ/dC %wT : &#t < 'C > (*c4 @ 'C > "$46LcSW X "$46LcSW X "24H#t T  G"""""rrc eZdZdZdZdZdedddfdedd dfd ed d dfd ed ddfdedddfdedddfdedddfdedddfdedddfg ZdZ dS)TableColumnManagerzqselect %(columns)s from information_schema.columns where table_schema = '%(schema)s' and table_name = '%(table)s'r COLUMN_NAMErrPN COLUMN_TYPErLxCOLUMN_DEFAULTz Default Value IS_NULLABLErQrICHARACTER_SET_NAMEz Character SetrCOLLATION_NAME Collationr PRIVILEGES PrivilegesrEXTRAExtraCOLUMN_COMMENTCommentsctj||d||dSr)rrcrdrers rrczTableColumnManager.__init__xAtVT222  !!!!!r) rrrrr name_columnrr rrcrrrrrksEJKK3XsDI/dC "2OS$O/RF$&6TR "2KdK. c4H)7C> "2JTJLG"""""rrc eZdZdZdZdZdZdZdZde ddd fd e d d d fd e dd d fde dd d fde dd d fde dd d fde dd d fgZ dZ d S)ConstraintManagerrz Foreign keyszdb.Constraints constraintsaTselect %(columns)s FROM information_schema.KEY_COLUMN_USAGE WHERE ((REFERENCED_TABLE_SCHEMA = '%(schema)s' AND referenced_table_name = '%(table)s') OR (TABLE_SCHEMA='%(schema)s' and table_name = '%(table)s')) AND REFERENCED_TABLE_NAME is not null ORDER BY TABLE_NAME, COLUMN_NAME;constraint_namerrNconstraint_schemaSchemar table_nameTable column_namerreferenced_table_schemazReferenced Schemareferenced_table_namezReferenced Tablereferenced_column_namezReferenced Columnctj||d||dSrrrcrdrers rrczConstraintManager.__init__rr) rrrrrklassrrrrr rrcrrrrr}sKG EIYJK!#7dK#%5xdK.dC/3E)+;=PRUW[\')9;MsTXY(*:r;rrrrrrs rpreload_columnsz"GrantsTableManager.preload_columnss t|  q FK ;55eQ??DD{   vayD  AF1I$5$5|A|A|ACDCIJKCLCL1MNNNN FKFKFKMNMSTUMVMV0WXXX FFFFF   !163E!163E "2GS$GI      M226::122>ssCII%PP M M ##S*:CT$JKKKK M M M M:C A1CCct|jdkrgSg}g}g}t|jD]\}\}}}}} d} |d} n #|} YnxYw| dkr'| dvr\|| ddd| d|d | ddz|| |d d |d |d z|dd ||jdzg}g}t|jD]q\}\}}}}} d} |d} n #|} YnxYw| dkr'| dvr1|d| ddd| d\|| r|dd ||j|jdz|S)Nrrrrrrrz _priv AS 'rz %s_priv = 'Y'zPSELECT '' as scope,%(sel_fields)s FROM mysql.user WHERE %(where_fields)s,z OR ) sel_fields where_fieldszJSELECT Db as scope,%(sel_fields)s FROM mysql.db WHERE '%(schema)s' like db)rr(IF(FIND_IN_SET('z!',Table_priv) = 0, 'N', 'Y') AS 'zSELECT CONCAT(Db,'.',Table_name) as scope,%(sel_fields)s FROM mysql.tables_priv WHERE '%(schema)s' LIKE Db AND '%(table)s' LIKE Table_namerr(r)r rrr;rr6r(r)) routputfields fields_whererBrrrrrrs rrzGrantsTableManager.get_querys$ t|   ! !I BKDLBYBY % % >A> 5'5+E "!'* "!O++ 5==S3I3I3I3I555QRRR##OemmC6L6L$LMMMM e$$$$ h{~|D|DEK|L|L_e_j_jkw_x_xlylyy z z z buxu}u}EvFvFSWS^f_f__ ` ` ` BKDLBYBY % % >A> 5'5+E "!'* "!O++ Z_ZgZghkloZpZpZpZprwrwrwxyyyy e$$$$ cvyv~v~EvFvFSWS^jnjtfufuu v v v sA  A,E55E;c|j|D]}|||dSrtreerr preload_datarefresh_row_countrrs rrzGrantsTableManager.refresh\ ^^%% % %E   e $ $ $ $      rN rrrrrrrrcr rrrrrrrsh G E"IK%%%MMM0+++Z!!!!!rrc6eZdZdZdZdZdZdZdZdZ dZ d S) GrantsColumnManagerzColumn privilegesrcolumn_privilegesrcg|_tj||d|||jddSrrrs rrczGrantsColumnManager.__init__sa tVT222  !!! e$$$$$rc t|jdkrdSd} |j|d}n#tj$r|}|jddks|jddkr(|dd|d|jdn'|d d |d |jdYd}~dSd}~wwxYwd td ddfdtdddfdtdddfg|_| }|r_| ddddd dD](}|j |t|ddf'dSdS)Nrz;show columns from `mysql`.`columns_priv` like 'Column_priv'r8rrrrrrrrrrrrrrrrLrSrrrIrr s rr z#GrantsColumnManager.preload_columnss t|  q FM ;55eQ??DD{   vayD  AF1I$5$5|A|A|ACDCIJKCLCL1MNNNN FKFKFKMNMSTUMVMV0WXXX FFFFF   !163E!163E "2GS$GI      M226::122>ssCII%PP M M ##S*:CT$JKKKK M M M Mr ct|jdkrgSg}g}t|jD]q\}\}}}}}d} |d} n #|} YnxYw| dkr'| dvr1|d| ddd| d \|| r|d d ||j|jd z|S) Nrrrrrrrz"',Column_priv) = 0, 'N', 'Y') AS 'rzSELECT CONCAT(Db,'.',Table_name,'.',Column_name) as scope,%(sel_fields)s FROM mysql.columns_priv WHERE Db LIKE '%(schema)s' AND Table_name LIKE '%(table)s'rrr) rrrrBrrrrrrs rrzGrantsColumnManager.get_query2s_ t|   ! !IBKDLBYBY % % >A> 5'5+E "!'* "!O++ [`[h[hilmp[q[q[q[qsxsxsxyzzzz e$$$$ tGJGOGOPVGWGWdhdo{{EwFwFF G G G s A  Ac|j|D]}|||dSrrrs rrzGrantsColumnManager.refreshHrrNrrrrr!r! sg!G E#IK%%%MMM.,!!!!!rr!c*eZdZdZdZdZdZdZdZdS) GrantsManagerGrantsrgrantsrcZtj|d||||_|d|dtjd}|dt|j|_ | t|j j dd| |j ddtjdd}| |dtjd}|dt|j|_| t|jj dd| |jdd| |d| |ddtjd|_|jd| |jddtj|_|jd|j|j|j|jdddS)NFrOr8TrRefresh)rrbrcrdrer%rprrnr grants_tablerrrr newSplitterr! grants_columnrrrrr@rr)rr%tbl_boxsplittercol_boxs rrczGrantsManager.__init__TsD D%(((  !!!   -&&A.t{;; Jt08995$GGG D%tT222%eU33 Wc"""-&&A0== Jt19::E4HHH D&d333 Wc""" 4&&&M$''  a    E4(((!+-- !!),,, --dl;;; $*E488888rc|j|j|j|j|j|jdSr)r.rr(r)r0rs rrzGrantsManager.refreshzsB $$T[$*=== %%dk4:>>>>>rN) rrrrrrrrcrrrrr(r(OsLG EIK$9$9$9L@@@@@rr(c eZdZdZdZdZdS)rc i|_g|_tj|dddd||tj|_| |jddttttttt t"g}d}|D]} ||}t%|d|jz|||j|j<|j||j|j||dz }v#t.$r4ddl}t3d|jd |d YwxYwdS) NFr1rTrtab_r8Error initializing tab rr)tab_listpagesrAppViewrcrdre newTabViewtabrrrIrrErrrr(rsetattrradd_pagerr;r tracebackr format_exc)rr%tabsrBTabr=r@s rrczTableInspector.__init__s  e->@PRWXXX  !!!$&& 4&&& 24GI\^orBDQS[\  g gC gc&kkfS]2C888/0 cm,!!#s{333 !!#&&&Q g g g     s}}}iNbNbNdNdNdNdefffff g g gsA2D::;E87E8c :|jD]Z} |||#t$r4ddl}t d|jd|dYWwxYw|j|jdj|j|jd_dS)Nrr8rrrKr3) r:rrr@rrrAr9r)rr(r)r=r@s rrzTableInspector.show_tables:  C vu----        s}}}iNbNbNdNdNdNdefff  AE 4=YgKh@i@z 4=+,===s";A A cv|j|}||j|dSdSr)r9r9r=set_active_tab)rr'rs rr$zTableInspector.switch_to_pages?m%% ? H # #C ( ( ( ( ( ?rN)rrrrcrr$rrrrrsGggg8 { { {)))))rrr)'rrr workbench.logrsqlide_catalogman_extrrrrrr r wb_admin_utilsr workbench.utilsr r wb_commonrrr,rGrbrIrrrrErrrrrrr!r(r;rrrrrLs, ######777777//////000000//////PPPPPPPPPP,,,,,,////////    * * * *@@@4wwwwwVZwwwr)))))vz)))Vqqqqqfkqqqh_"_"_"_"_"&*_"_"_"B """""","""&"""""}"""$""""" m""","""""|]"""@X!X!X!X!X!}X!X!X!t?!?!?!?!?!, ?!?!?!D-@-@-@-@-@L&*-@-@-@`+)+)+)+)+)V^+)+)+)+)+)r