XׯdE^ddlZddlZddlmZmZddlmZmZmZmZm Z ddl m Z ddl m Z ddlmZmZd)dZd ZGd d ejZd ZGd dejZGddeZGddejZGddejZGddeZGddeZGddeZGddeZGddeZ Gdd eZ!Gd!d"eZ"Gd#d$eZ#Gd%d&ejZ$Gd'd(ej%Z&dS)*N) log_error log_warning)IconStringColumnTypeStringColumnTypeLongIntegerColumnTypeIntegerColumnTypeNumberWithUnitColumnType)NotificationCenter)make_panel_header) human_sizeVersionFc |ddnO#tj$r=}tjdddddt dYd}~dSd}~wwxYw|D]}t||}tj|j }| |dd| || ||r| dS) Nzselect 1rSchema InspectorzFCan not launch the Schema Inspector because the server is unreacheble.OKzGCan not launch the Schema Inspector because the server is unreacheble. F)executeManagementQuerygrtDBErrormforms Utilities show_errorr SchemaManagerfromgrt dockingPoint dock_view select_view set_titleshow_table_maintenance)editor selectiontable_maintenancee schema_namesmandpoints #..\modules\sqlide_catalogman_ext.pyshow_schema_managerr's.%%j!4444 ;##$69ACGIKMO P P P\]]]uuuuu !** V[11 344r1%%%4    {###  *  ' ' ) ) )**sA%2A  A%c:tj|d}|d}g|D]*}|jdkr|j(dSrEtjd}|fd|d|dSdS)Nmenur db.Schemarc$tSN)r')schemas_selectedsendersr&z+handleLiveTreeContextMenu..Bs*=fFV*W*W)rrtypeappendname newMenuItemadd_clicked_callback insert_item)r4r.argsr)r sitemr-s ` @r&handleLiveTreeContextMenur;2s >$v, ' 'D[!I 6[  # #AF + + + + FF"!"455 !!"W"W"W"W"WXXX D!!!!!""r0c"eZdZddZdZdZdS)MaintenanceResultFormFc tj|tjtjtjd|_|jd|jd| |jtj tj tj ztj z|_|jtj|j|jdd|jtjddd|r(|jtjdddnN|jtjd d d|jtjd d d|j||_tj}|d |dd|d|dd}|}|r<|j}|d|d|s|d|d|d||dd|d|d||dn)|d|d| }|???  TYd+++ V4gsEJJJ  U I !8*c5 Q Q Q Q I !8+r5 Q Q Q I !#>???""1immG4L4LQ4O4OQS&T&TUUU7#;#;A#>#>??? W55a8899997#;#;A#>#>???""B #}T""  T5$'''!! !!$"8999 )*** ud###"$$  $$TZ000 TWeT*** c3r0c\g}jp1fdtjDD]}|d|dg}jsO||||d|d|tj d|dS)NcDg|]}j|S)r_ node_at_row).0irws r& z;MaintenanceResultForm.copy_to_clipboard..s)1m1m1mq$)2G2G2J2J1m1m1mr0rrOr1  ) r_ get_selectionrangecount get_stringrer3get_tagjoinrrset_clipboard_text)rwrowsr|rows` r&rqz'MaintenanceResultForm.copy_to_clipboardsI++--m1m1m1m1mTYZ^ZcZiZiZkZkTlTl1m1m1m ( (D??1%%tq'9'9:C> / 4<<>>*** 4??1--... KK # ' ' ' '++DIIdOO<<<<rBoxrS set_managedset_release_on_addschemarr r serverVersiontarget_versionrVmainrbnewLabel error_heading set_style BoldStyle error_body error_boxrYrXshowr[r\r]r^r_r`rahasattrcallablegetattrrcolumns#is_supported_mysql_version_at_leastfromstrrcrdset_allow_sortingnewContextMenur)add_will_show_callbackmenu_will_showadd_activated_callback on_activateset_context_menurfrgrhklassr{ bad_icon_path row_countrrrp refresh_btnr6refreshr}ruactions) rwrrfieldr2captionwidth min_version callback_namebtns r&rSzObjectManager.__init__s D%(((  !!!  %of.BCCM%((  D$'''#_R00 $$V%5666 /"--u-- ""1%%% ""1%%% 4-tU;;; 4?D%888 u--- E""" a    a   &v':6;R'RSYSm'mnn  $$V%>??? 4* + + #GX9Y9Y0Z0Z #  " " "8<  > > 4E4% 4#6#Z#Z[b[jkv[w[w#x#x  I wu = = = =  ##D))) dit,,,)++  (()<=== (()9::: ""49---));;DJ|>D&*kDO $ DI +DI $CI#.r63KLL ""#=>>>))*DEEE ""9--- --iyR[\\\xzz$-[!%|DI}EEV +/'("$$))*GVZ[[[[[k <|r0cJg}|jD]u\}}}}}|r-|jtj|s7 |d|dzW#|d|zYsxYw|j|jd|dzS)Nz`%s`rr)rr) rrrr rr3 show_queryrr)rwcols field_objctyperrrs r& get_queryzObjectManager.get_query4s=A\ 0 0 9Iuguk 4#6#Z#Z[b[jkv[w[w#x#x  0 FYw%778888 0 FY./////T[diiPToo!V!VVVs A!!A=c  |j|d}n#tj$r}|jddks|jddkr5t jdd|d|jddd d n4t jd d |d |jddd d Yd}~dSd}~wwxYw|}|r$|j r| |r|j }| |r!| |j|jn'|j | |j|jd}|jD]m\}}} } } | r-|jt)j| s8d} d} |d } n#YnxYw |d} nP#|jdddr+t-| t.ur|} n|} YnxYw|t jurpt-| t4ur-|||| pdnp|||| pdnC|t jurt-| t4ur9||t5| | pdn||t5|!| pdnt-| t4urL|"|| | | pd n| | | nK|"|| |!| pd n| |!| |dz }o|#}|"dSdS)NrrOiivz Access Errorz+b+bcjcrs~cc,A,A! "&K E&/ &> . )' 2..RRSTVWYZ[[.aefkalalpsasas$-OO$5$5EE$-E 888;;#-- LLD,>,>u,E,E,JKKKK LLD,D,DU,K,K,PqQQQQ&">>>;;#-- MM!S1F1Fu1M1M1RQR-S-STTTT MM!S1L1LU1S1S1XWX-Y-YZZZZ;;#-- OOAU`Uht/D/DU/K/K/Qrnynyz~{P{PQV{W{WoXoXYYYY OOA[f[nt/J/J5/Q/Q/WUWttAEA\A\]bAcAcududeeeFAABQ( ( ( ( ( s.CB B>>C6F??GGA Hc|j|||dSr,)r_clearr rrrs r&rzObjectManager.refreshssJ  $..**+++      r0cl|j}|r||ddSdS)Nr)r_get_selected_noder)rwr|s r& inspect_tablezObjectManager.inspect_tableysCy**,,  &   T1 % % % % % & &r0cdS)NFrrwr s r&rzObjectManager.is_row_corrupted~sur0)rrrrrrrrrSrrrrrr rrrrr0r&rrs FK$MIGG,G,G,R&&& AAAxxx9\9\9\v W W W2 2 2 h!!! &&& r0rc2eZdZdZdZdZdZdZdZdZ de dddfd e d d dfd e d d dfd e dddfde dddfde dddfddde dddfddde dddfddde dddfddde d ddfd!e d"ddfd#e d$d%dfd&e d'd%dfd(e d)d%dfd*e d*ddfd+e d+ddfd,e d,d-dfgZd.Zd/Zd0Zd1ZdS)2 TableManagerTablesrtablesrNz;show table status from `%(schema)s` where Comment <> 'VIEW'NameEngine<r 2 Row_format Row FormatrDRowsrFAvg_row_lengthzAvg Row Length Data_lengthcB|rtt|ndSNrr rxs r&r/zTableManager.s!Z[DcJsSTvvDVDVDVacr0rrz Data LengthMax_data_lengthcB|rtt|ndSr$r%r&s r&r/zTableManager.s$^_Hg SVWXSYSYHZHZHZegr0zMax Data Length Index_lengthcB|rtt|ndSr$r%r&s r&r/zTableManager.s$[\EdZPSTUPVPVEWEWEWbdr0z Index Length Data_freecB|rtt|ndSr$r%r&s r&r/zTableManager.s!XYBa*SQRVVBTBTBT_ar0z Data FreeAuto_incrementzAuto Increment Create_timez Create Time Update_timez Update Time Check_timez Check Time CollationrCCommentrQc.|d S)Nr)r rs r&rzTableManager.is_row_corrupteds..x8888r0cHg|_t|dSr,) table_namesrrrs r&rzTableManager.refreshs$d#####r0c`|j|ddS)NrT)r8r3r rs r&rzTableManager.filters,  ; ;F C CDDDtr0cg}|jD]l}tj}||j|_|j|_ |j |_ | |m|Sr,) r_rrrrrrr4rrrr2r3)rwr r|rs r&rzTableManager.get_selections| I++-- " "D+3355Ct'788CH![CNzCH   S ! ! ! !r0)rrrrrrrr8rrrrrr rrrrrrr0r&rrsG EIKKNJK,fc4@*Hb$?+YDA. c4H-vr4@ "79I3PTU(:c:cddf~ANPSUYZ,>g>ghhkCEVX[]ab);d;deegBPRUW[\&8a8abbd|JLNPTU "79I2tT/TJ/TJ. c4H-{CF,j"dC+YTB!G&999$$$ r0rc8eZdZdZdZdZdZdZdZdZ dS) TableMaintenancePanelc tjd|_ddtjd}| tj  |ddtjd} |ddtj d_ j ddtjd_jdjdj jg_d%fd }tj_jd |jd d d jg|jjd ks"|jjd kr|jjdkrtjd}|dtj_jdjj| jddtjd}|dd| |dd| tjdddtj_jddjd| jdd|dd}|rA| r-j!|"dn d}d_tj_#j#d |j$dddj#g|tj%_&j&'gdtj_(j(dtj_)j)dj&j(j)g}|j*ddd |tj_+j+d!j+g}|j,d"d#d$|dS)&NFr@r?zTable Maintenance OperationsTzSelect tables and click the operation you want to perform. NOTE: Some commands may require locking tables until completion, which may take a long time for large tables.rc tj|}|tj j|ddtj|} j|dd|r j|ddtjd}|dtj}| tj d| |||dd|D]}||ddtj} | || ||| dd j|  j|dddS)NFTr?rI)rrrrcontentrbrVrY newImageBox set_imagerfrgrh set_tooltiprpr6rrrru_buttonsr3) rrdesctooltipoptions extra_optionslhborrws r&make_command_boxz8TableMaintenancePanel.__init__..make_command_boxs&&A KK( ) ) ) L  Qt , , ,%%A L  Qt , , , =   t<<<t$$B NN2   "$$A KK ((::;LMM N N N MM' " " " FF1eT " " " ' 'q%&&&&"$$C  $ $X . . . LL ' ' ' JJsE4 ( ( ( M  % % % L  R - - - - -r0zDon't write to BINLOG (local)z Analyze TablezAnalyzes and stores the key distribution for a table. During the analysis, the table is locked with a read lock for InnoDB and MyISAM.aWith InnoDB tables, when you enable the innodb_stats_persistent option, you must run ANALYZE TABLE after loading substantial data into an InnoDB table, or creating a new index for one. MySQL uses the stored key distribution to decide the order in which tables should be joined when you perform a join on something other than a constant. In addition, key distributions can be used when deciding which indexes to use for a specific table within a query.zOptimize FULLTEXT onlyrz$Number of words to optimize per run:rz1SHOW VARIABLES LIKE 'innodb_ft_num_word_optimize'rOz Optimize TablezReorganizes the physical storage of table data and associated index data, to reduce storage space and improve I/O efficiency when accessing the table.aThe exact changes made to each table depend on the storage engine used by that table. Use OPTIMIZE TABLE in these cases, depending on the type of table: * After doing substantial insert, update, or delete operations on an InnoDB table that has its own .ibd file. The table and indexes are reorganized, and disk space can be reclaimed for use by the operating system. * After doing substantial insert, update, or delete operations on columns that are part of a FULLTEXT index in an InnoDB table. Set the configuration option innodb_optimize_fulltext_only=1 first. To keep the index maintenance period to a reasonable time, set the innodb_ft_num_word_optimize option to specify how many words to update in the search index, and run Optimize Table until the search index is fully updated.)rQuickMediumExtendedz For UpgradeFastChangedz Check TablezlCHECK TABLE checks a table or tables for errors. For MyISAM tables, the key statistics are updated as well.aThe FOR UPGRADE option checks whether the named tables are compatible with the current version of MySQL. With FOR UPGRADE, the server checks each table to determine whether there have been any incompatible changes in any of the table's data types or indexes since the table was created. Check Options: - QUICK Do not scan the rows to check for incorrect links. Applies to InnoDB and MyISAM tables and views. - FAST Check only tables that have not been closed properly. Applies only to MyISAM tables and views; ignored for InnoDB. - CHANGED Check only tables that have been changed since the last check or that have not been closed properly. Applies only to MyISAM tables and views; ignored for InnoDB. - MEDIUM Scan rows to verify that deleted links are valid. This also calculates a key checksum for the rows and verifies this with a calculated checksum for the keys. Applies only to MyISAM tables and views; ignored for InnoDB. - EXTENDED Do a full key lookup for all keys for each row. This ensures that the table is 100% consistent, but takes a long time. Applies only to MyISAM tables and views; ignored for InnoDB.zQuick (if supported)z Checksum Tablez>CHECKSUM TABLE reports a checksum for the contents of a table.zYou can use this statement to verify that the contents are the same before and after a backup, rollback, or other operation that is intended to put the data back to a known state.)NN)-rrrSrrrrYrXrrBigStylerbnewScrollPanelscrollrVr?rC newCheckBox analyze_localrr analyze_tabler majorNumber minorNumberoptimize_ft_onlyr6optimize_ft_only_toggledrv newTextEntryoptimize_ft_numwords set_enabledrri set_valuerloptimize_localoptimize_table newSelectorcheck_scan_opt add_itemscheck_fast_optcheck_changed_opt check_tablechecksum_quickchecksum_table) rwrheadinghelprKrGrHrrFs ` r&rSzTableMaintenancePanel.__init__sS D%(((  !!!   /"@AA&/*** %&&& LMM ud###+A..  dD)))}U++    ###   $$$  %%%  . . . . . .>$/11 ##$CDDD+_TN,-  / / /   +a / /F4H4TXY4Y4Y^d^r^~CD_D_D"M$//M  % %a ( ( ($*$6$8$8D !  ! * *+C D D D  ! 6 6t7T U U U   d3UD A A A##A JJr2      a - - -   fo.TUUW\^b c c c(.(;(=(=D %  % . .r2 6 6 6  % 1 1% 8 8 8   d7 E E E223fhijjF P&--// P)33F4K4KA4N4NOOO M$(D !$022 $$%DEEE,.EPf-.  ? ? ?%022 %%&X&X&XYYY$022 $$V,,,!'!3!5!5 '' 222&(;T=ST)+?>E! " " "&%022 $$%;<<<&',.E]SU\ ] ] ] ] ]r0ch|j|jdSr,)rarbr^ get_activers r&r_z.TableMaintenancePanel.optimize_ft_only_toggledMs. !--d.C.N.N.P.PQQQQQr0c||jrdnd}t|jd|z|jdS)N NO_WRITE_TO_BINLOGrzANALYZE%s TABLE %%s)rZrqrr table_list)rwlocals r&r[z#TableMaintenancePanel.analyze_tableQsC)-);)F)F)H)HP%%bT[*?%*GYYYYYr0c&|jrd}|jdd}|r-|r|ddk}d|jrdndd|j}|j|d|j rd nd }t|jd |z|j |jr$|$d |z}|j|ddSdSdS) Nz&SELECT @@innodb_optimize_fulltext_onlyrOFFz)SET GLOBAL innodb_optimize_fulltext_only=10z, innodb_ft_num_word_optimize=rOrsrzOPTIMIZE%s TABLE %%sz+SET GLOBAL innodb_optimize_fulltext_only=%s) r^rrrirlrqraget_string_valueexecuteManagementCommandrdrrt)rw old_valuerescommandrus r&rez$TableMaintenancePanel.optimize_tableUs{   =I+445]_`aaC =s'')) =0033u< nroDoOoOoQoQhZgjgjWZhZhZ\`\u\F\F\H\H\HIG K 0 0! < < <)-)<)G)G)I)IQ%%rT[*@5*H$/ZZZ   =Y%:CiOG K 0 0! < < < < < = =%:%:r0c|j}||jrdndz }||jrdndz }t |jd|z|jdS)Nz FASTrz CHANGEDzCHECK TABLE %%s %s)rgrzrirqrjrrrtrwoptions r&rkz!TableMaintenancePanel.check_tablefs|$5577T0;;==E''2E 6 A A C CK**KT[*>*GYYYYYr0c||jrdnd}t|jd|z|jdS)Nz QUICKrzCHECKSUM TABLE %%s%s)rlrqrrrtrs r&rmz$TableMaintenancePanel.checksum_tablelsA!0;;==E2T[*@6*I4?[[[[[r0cfd|D|_|jD]-}|t|jdk.dS)Nc(g|]\}}dd|dS)`z`.`r)rrenginers r&rz5TableMaintenancePanel.show_tables..rs,UUU]UFF&&&%%%8UUUr0r)rtrCrblen)rwrrbs ` r& show_tablesz!TableMaintenancePanel.show_tablesqs]UUUUfUUU 4 4A MM#do..2 3 3 3 3 4 4r0N) rrrrSr_r[rerkrmrrr0r&r<r<sR]R]R]hRRRZZZ==="ZZZ \\\ 44444r0r<cHeZdZdZedZdZdZdZdZ dZ dS) TableManagerParentctj|dd||||_||_t|||_| |jdd|jj |_ |jj |_ |jj |jtj|_|jd|j|j|jj |jdd|jdtj|_|jd|j|jj|jj|jddtj|_|jd|j|j|jj |jddd|_dS)NTFrDz< Summary Listz Inspect Tablez Maintenance >)rSplitterrSrrrrr summary_viewrbrrr_add_changed_callbacktable_selection_changedrp goback_btnrrr6 switch_backr}r inspect_btnrrumaintenance_btnswitch_maintenance right_view)rwrrs r&rSzTableManagerParent.__init__xs  tU333  !!!  (88 "C...*4(0  33D4PQQQ *,,   !1222 ,,T-=>>> ""4?E4@@@ U###!+-- !!/222 --d.?.MNNN &&t'7EEE%/11 %%o666 11$2IJJJ ""4#7EEEr0c|jjSr,)rr8rs r&r8zTableManagerParent.table_namess ,,r0c8|jdSr,)rrrs r&rzTableManagerParent.refreshs !!#####r0c0|jr!||jd|_|jjd|jd|jd|jddS)NTF)rremoverrrrrrrs r&rzTableManagerParent.switch_backs ? # KK ( ( ("DO %**4000 !!$''' U### d#####r0c.t|j|_||j||j|d|j|j||j j d|j d|j d|j ddS)NFT)r<rrrbrelayoutset_divider_positionrrselected_tablesrrrrrrrs r&rz%TableManagerParent.switch_maintenances/ << !!!    """ !!#&&& ##DK1E1E1G1GHHH %**5111 !!%((( T""" e$$$$$r0cg}|jjD]?}||d|df@|S)NrrO)rr_rr3r)rwrr|s r&rz"TableManagerParent.selected_tablessa%*88:: D DD MM4??1--tq/A/AB C C C C r0c||jr4|j|j|dSdSr,)rrrrrs r&rz*TableManagerParent.table_selection_changedsE ? M O ' ' T5I5I5K5K L L L L L M Mr0N) rrrrSpropertyr8rrrrrrr0r&rrwsB--X-$$$$$$ % % %MMMMMr0rceZdZdZdZdZdZdZdZdZ dZ de d d dfd e d d dfd e dddfde dddfde dddfde dddfde dddfde dddfde dddfd e d!ddfg Z dS)" ColumnManagerColumnsz db.ColumnrNzJselect * from information_schema.columns where table_schema = '%(schema)s'rOr TABLE_NAMErAr1 COLUMN_NAMEColumn COLUMN_TYPETypexCOLUMN_DEFAULTz Default Value IS_NULLABLENullablerCHARACTER_SET_NAMEz Character SetrFCOLLATION_NAMEr4rD PRIVILEGES PrivilegesrBEXTRAExtraCOLUMN_COMMENTComments)rrrrrrrrrrrrrrrr0r&rrsG EI F]JKK.dC3XsDI/dC "2OS$O/RF$&6TR "2KdK. c4H)7C> "2JTJ LGGGr0rceZdZdZdZdZdZdZdZdZ dZ de dd dfd e d d dfd d de dddfde dddfde dd dfde dddfde dddfde dddfde dddfde dddfde dddfd e d!ddfd"e d"d dfg Zd#Zd$Zd%Zd&ZdS)' IndexManagerIndexesrrNz-show index from `%(table)s` from `%(schema)s`rrOrArBKey_namer Non_uniquec|dkrdndS)NrxYesNor)vals r&r/zIndexManager.scUXjjUU^br0r(Uniquer Index_typez Index Type Index_commentz Index Commentz5.5 Column_namerrD Seq_in_indexz Seq in IndexPackedr4 CardinalitySub_partzSub partNullNULLr5cdt|||||_|j|_dSr,)rrSr tab_tables table_manager)rwrrrs r&rSzIndexManager.__init__s2tVV444 "-r0c|jdddr&|jdtdddfdSdS)Nr@rrNVisibleK)rrrr3rrs r&rzIndexManager.preload_columnssT   B B1a K K T L  ,3M*Hb$?-{BE/DI,j"dC(&"d;+YTB DG ... TTT(((%!%!%!%!%!r0rc*eZdZdZdZdZdZdedddfdedddfd ed ddfd ed d dfdedd dfdedd dfdedd dfdedd dfdedd dfdedd dfdedd dfdedd dfdedd dfd ed!d dfd"ed#d dfd$ed%d dfd&ed'd dfd(ed)d dfd*ed+d dfd,ed-d dfd.ed/d dfgZ d0Z d1Z dS)2 GrantsManagerGrantsz db.Grantstable_privilegesrHostrDNUserDbScope Select_privSelectr Insert_privInsert Update_privUpdate Delete_privDelete Create_privCreate Drop_privDrop Grant_privGrantReferences_priv References Index_privIndex Alter_privAlterCreate_tmp_table_privzCreate tmp tableLock_tables_privz Lock TablesCreate_view_privz Create ViewCreate_routine_privzCreate RoutineAlter_routine_privz Alter Routine Execute_privExecute Event_privEvent Trigger_privTriggercvt|jdkrgSg}g}g}|jD]\}}}}}|r-|jt j|s7d} |d} n #|} YnxYw| dkrS| dvr|| | dvr,|d| ddz|d d |d |d z|d d ||j dz|S)Nrrscope)r)rrrz%s = 'Y'r_zMSELECT '' as Db,%(sel_fields)s FROM mysql.user WHERE %(where_fields)s,z OR ) sel_fields where_fieldszASELECT Db,%(sel_fields)s FROM mysql.db WHERE '%(schema)s' like db)rr) rrrrr rr3rrr) rwoutputfields fields_whererrrrrrs r&rzGrantsManager.get_queryGs t|   ! !I =A\ I I 9Iuguk 4#6#Z#Z[b[jkv[w[w#x#x E "!'* "!F"" e$$$000##Js31G1G$GHHH ex{yAyABHyIyI\b\g\ght\u\uivivv w w w Yloltltu{l|l|JNJU]V]VV W W W s "A++A1c|j|D]}|||dSr,)r_rrr r)rwrs r&rzGrantsManager.refreshes\ ^^%% % %E   e $ $ $ $      r0) rrrrrrrrrrrrrr0r&rr+sG E"IK,fc4@ $fc4 8 "GS$ 7 +Xr4 @ +Xr4 @ +Xr4 @ +Xr4 @ +Xr4 @ )62t < *GR > /r4 H *GR > *GR > #%57I2t T  0-T J  0-T J !#35Er4 P "2OR N ,iT B *GR > ,iT B) G.<!!!!!r0rc:eZdZdZdZdZdZdZdZdZ de dddfgZ dS) ViewManagerViewszdb.ViewviewsNz:show table status from `%(schema)s` where Comment = 'VIEW'rrrH) rrrrrrrrrrrrrr0r&r r lsEG EI FMJKK'd;)7C>*Hc4@+YTB,j#tD+YTB&(8:PRUW[\&(8:PRUW[\$&68LcSWX GGGr0rceZdZdZdZdZdZdZdZde dddfd e d d dfd e d d dfd e d d dfd e d d dfde dd dfde dd dfde dd dfde dd dfde dddfg Z dS)ProcedureManagerzStored Procedureszdb.StoredProcedurestoredProceduresz-show procedure status where Db = '%(schema)s'rrrBNrrDrModifiedr Security_typez Security Typerrrrrr5rHrrr0r&rrs!G E"I@JKK,fc4@(&#t<+YTB,j#tD+YTB!1?CN&(8:PRUW[\&(8:PRUW[\$&68LcSWX+YTB GGGr0rc4eZdZdZdZdZdZdZdZe j Z dS)FunctionManager Functionsz db.Function functionsz,show function status where Db = '%(schema)s'rN) rrrrrrrrrrrrr0r&r!r!s4G EI?JKK&GGGr0r!ceZdZdZdZdZdZdZdZde dddfd e d d dfd e d d dfde dd dfde dd dfde dd dfde dd dfde dd dfde dd dfde dd dfde dd dfde dd dfde dd dfde dd dfgZ dS) EventManagerEvents GrtObjecteventszshow events from `%(schema)s`rrrBNrrrDz Time zonez Time Zonerz Execute atzInterval valuezInterval fieldStartsEndsStatus Originatorrrrrrrrr0r&r%r%sG EI0JKK,fc4@+\3E-{CF(&#t<. c4H "24Dc4P "24Dc4P*Hc4@(&#t<*Hc4@. c4H&(8:PRUW[\&(8:PRUW[\$&68LcSWXGGGr0r%c"eZdZdZdZdZdZdS)SchemaInfoPanelInfo informationsc  tj|d||||_||_tj|_|j d|j d|j d|j dd}tj d|_|jd|jt#d|jjjd |zdd||jdd|j|d d dd d tj|jtjd d d ddtjtjd|_|jtj|j|jd dddtjtjz|jtjdd d ddtjtjd|_|jtj|j|jd dddtjtjz|jtjdd d ddtjtjd|_|jtj|j|jd dddtjtjz|jtjdd d ddtjtjd|_|jtj|j|jd dddtjtjztjd}|d|d||jdd||dddS)NFr1r@cltj|}|tj|Sr,)rrrr)trHs r& make_titlez,SchemaInfoPanel.__init__..make_titles+""A KK( ) ) )Hr0T zdb.Schema.32x32.pngz%szSchema DetailsrrOzDefault collation:rPrNrzDefault characterset:rLz Table count:rMzDatabase size (rough estimate):)rrrSrrr_schemanewTabler set_row_countset_column_countset_row_spacingset_column_spacingrVpanel_header_boxrXrbr connectionr4 HFillFlagrcol_default_collation_namerr HExpandFlagcol_default_character_set_name table_count database_sizerY)rwrrr5tboxs r&rSzSchemaInfoPanel.__init__s D%(((  !!!  _&&    ### ##A&&& ""1%%% %%a(((    !' d 3 3 ))"--- !!"34I4;KaKfhlpvhw"x"xzBF G G G &t444 zz"233Q1aAQRRR v';<<1aQRTUW]Wghhh*0/"*=*=' '11&2BCCC t61aQRTUW]WghnhzWz{{{ v'>??1aQRTUW]Wghhh.4ob.A.A+ +55f6FGGG t:1aQRTUW]WghnhzWz{{{ v~661aQRTUW]Wghhh!?2.. ""6#3444 t'1aQRTUW]WghnhzWz{{{ v'HII1aQRTUW]Wghhh#_R00 $$V%5666 t)1aQRTUW]WghnhzWz{{{z%     T4((( ud#####r0c  |jd|jzd}n9#tj$r'}t d|jd|dd}Yd}~nd}~wwxYw|r|}|r|jD]}t|d|j zrit|d|j dd z ||j  |jd |jzd}n9#tj$r'}t d |jd|dd}Yd}~nd}~wwxYw|r|}|rk|j t!|d |j |d dSdSdS) NzBselect * from information_schema.schemata WHERE schema_name = '%s'rz?select * from information_schema.schemata WHERE schema_name = 'z' : rzcol_%srrzselect sum(data_length) + sum(index_length) database_size,count(*) table_count from information_schema.tables WHERE table_schema = '%s'zselect sum(data_length) + sum(index_length) database_size,count(*) table_count from information_schema.tables WHERE table_schema = 'rErD)rrr8rrrrirrr4lowerrrrrr rEr floatFieldValueByNamerD)rwr r"rsrs r&rzSchemaInfoPanel.refreshs ;556z~B~J7JLMNNDD{    Ieieqeqeqstststu v v vDDDDDD   E""$$B E<EECtX0@0@%@AAEh1A1A#s1K1K1Q1Q1S1S&STT]]^b^y^yz}{C_D_DEEE ;557@CGCO7OQRSSDD{    Ikokwkwkwyzyzyz{ | | |DDDDDD   V""$$B V"++Jt7Q7QRa7b7b,c,cddd ))$*E*Em*T*TUUUUU  V V V Vs,#&AAA#D99E/E**E/N)rrrrrrSrrr0r&r.r.sBGI4$4$4$lVVVVVr0r.c eZdZdZdZdZdS)rc tj|dddd||_tj|_||jddg|_ttttttttt g }|jjjdks*|jjjdkr/|jjjdkr|t*|D]} |tur||||}n |||}t-|d|jz||j||j||jz#t4$r4ddl}t9d |jd |d YwxYw|dS) NFrrTrLrOtab_rzError initializing tab rr)rAppViewrSr newTabViewtabviewrbpagesr.rrrrr rr!rrr\r]r3r%setattrradd_pager Exception tracebackr format_excr)rwrr#tabsTabtabrTs r&rSzSchemaManager.__init__se-?ASUZ[[[ (**  tT*** !3]LR`bmoBQS`a ; $ 01 4 49R9^bc9c9chlhsiBiNRSiSiS KK % % % g gC g,&&#fk488CC#fk22CfS]2C888 !!#&&& %%c3;7777 g g g     s}}}iNbNbNdNdNdNdefffff g sr_s, 00000000}}}}}}}}}}}}}}666666,,,,,,////////****&"""&G&G&G&G&G&FKG&G&G&TgggggFJgggT22222=222l|4|4|4|4|4FJ|4|4|4~MMMMMMMMMMMMMMMM^LLLLLMLLL,L!L!L!L!L!=L!L!L!^>!>!>!>!>!M>!>!>!B=====-===](}('''''m'''=.RVRVRVRVRVfjRVRVRVh$$$$$FN$$$$$r0