Xׯdar ddlmZmZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddlmZddlmZdd lmZdd lmZddlZddlZddlZddlZddlZddlZed d d ZeejdZeejejjdZ eejejj!dZ"e#ddej$gdeejejj%dZ&e#ddej$gdeejejj%dZ'dZ(eej)ej)dZ*e#ddej+gdeejejj,d Z-d!Z.e#d"d#ej$gd$eejejj%d%Z/e#d&d'ej$gd(eejejj%d)Z0d*Z1e#d+d,ej$gd,eejejj%d-Z2e#d.d/ej$gd/eejejj%d0Z3e#d1d2ej$gd3eejejj%d4Z4eejejjej5d5Z6e#d6d7ej7gd7eejejjd8Z8eejejjej)d9Z9dS):) DefineModulewbinputsN) log_error)NotificationCenter)formatter_for_statement_ast) TextOutputTab) RunScriptForm)show_schema_manager)show_table_inspector)handleResultsetContextMenu SQLIDEUtilsz Oracle Corp.z1.1)nameauthorversionc t}|tdtj|tjd|t jd|tjd|tj d|tj d|tj ddS)NGRNSQLResultsetMenuWillShow)rGRNLiveDBObjectMenuWillShow) r add_observerr sqlide_schematree_extinithandleLiveTreeContextMenusqlide_catalogman_extsqlide_tableman_extsqlide_import_spatialhandleContextMenusqlide_power_import_wizardsqlide_power_export_wizard)ncs ..\modules\sqlide_grt.py initialize0r 6s   BOO.7TOUUU   OO)CLiOjjjOO)CLiOjjjOO'AJgOhhhOO);DaObbbOO.@IfOgggOO.@IfOgggggc@tj|d|jddS)N)tableschemar)rshowPowerImport defaultSchemaeditors rlaunchPowerImportr)Es&.vQWQe7f7fggg 1r!c  tjdtj}|d|t jd|dd| r]t| d5}t j |j d}d}|dkrddl}n |d krnddl}|r||}t#|j}t&t(t*t&t&t&t&t&d  t- fd |jD}|D]8}t#||kr4|d |t#|dD d t1||D} n#t2$rYrwxYw|t7| D]\} } t9| t&r|| | 1t9| t(r|| | ]t9| t*r|| | | | :|dddn #1swxYwYdS)NzImport Recordset From CSV File~zCSV Files (*.csv)|*.csvimportrz.csvrz.sql)stringintrealblobdatetimedatetimegeoc32K|]}|jVdSN) columnType).0column type_classess r z.importRecordsetDataFromFile..fs+"c"cv<0A#B"c"c"c"c"c"cr!c3*K|]}|VdSr8)r: converters rr=z.importRecordsetDataFromFile..is("V"V999;;"V"V"V"V"V"Vr!c*g|]\}}||Sr?r?)r:r@values r z/importRecordsetDataFromFile..ks'+l+l+lBR)UYYu-=-=+l+l+lr!)!mformsnewFileChooserOpenFile set_title set_directoryospath expanduserset_extensions run_modalopenget_pathsplitextrlowercsvreaderlencolumnsstrr0floattupleextendzip ValueError addNewRow enumerate isinstancesetStringFieldValuesetIntFieldValuesetFloatFieldValue setFieldNull) resultset file_chooser import_fileext import_modulerS column_count convertersrowconverted_valuesr;rBr<s @rimportRecordsetDataFromFilerlJs?(v??L;<<<rw11#66777 98DDD(& ,''))3 / /' &;'"";#344Q7==??C Mf}}+++++++++ &&--k::"9#455 *-'*(-(+(+(+,/'* ! ! #"c"c"c"cQZQb"c"c"ccc !;;C3xx,.. "V"V 3s8899@U"V"V"VVVV!+l+lVYZdfiVjVj+l+l+l((%!!! !''))))23C)D)D;; %eS11;%99&%HHHH's33;%66vuEEEE'u55;%88GGGG%226::::;##%%%O' &' &' &' &' &' &' &' &' &' &' &' &' &' &' &P 1s85D K%G10K%1 G>;K%=G>>CK%%K),K)zwb.sqlide.executeToTextOutputzExecute Query Into Text OutputzExecute Into Text Output)captioninputaccessibilityNamec|j}|jp|j}||}|r[t d}t j|j}||dd| d| ||D]}dg}| d|j zg}g} t|j} |jD]I} | | jdz| t| jdzJg} | D]} | d| zd | } | d | zd zd |}| d |zdz| d | zdz|}|r-|jd|ddl}d}g}|rg}t+| D]I}||}|d}| || |Jd |}| d |zdz||z dkrF|}|jd|dzg}|}||r0|jd|dz|jd | zdz|jd|jdzzdS)Nrz Query OutputzExecute:> %s z -z + z+ z +z | z| z |z +  NULLg?z %i rows r.)owner selectedTextscript executeScriptrrDfromgrtresultDockingPoint dock_viewrG select_viewappendsqlrTrUrjoin goToFirstRowtextbox append_textr4rangestringFieldValueljustnextRow currentRow)qbufferr(r resultsetsviewdockresultoutputlinecolumn_lengthsncolumnsr; separatorcokr4 last_flushrowsirBs rexecuteQueryAsTextr|s]F   0'.C%%c**J:NR  ~g899 tR### ~&&&  2 N2 NF \F MM(VZ/ 0 0 0DN6>**H . : : FK%/000%%c&+&6&6q&89999I# ( (  Q'''' 9--I MM$y.- . . .::d##D MM$t)D. ) ) ) MM$y./ 0 0 0$$&&B < ((6):):;;; KKKJD &x>>A 11!44%]"E++ekk.*;<<====jj&& DIdN+++99;;+s22!%JL,,TYYt__T-ABBBD^^%% &" ? ((4)=>>> L $ $T)^F%: ; ; ; L $ $]f6G!6K%L M M M M 1r!zwb.sqlide.verticalOutputVertical OutputzExecute Into Vertical Outputc<|j}|r|j|}d|zg}t|D]a\}}t |dkr|d|dzzt d|jD}|}|r|d|j dzzt|jD]R\}} | j || |} } || d| | ndS| }||d|j dzz|t |dkr|d ctd |d z} t#j|j} | | d d | | | d d S) Nrrr.z Result set %ic3>K|]}t|jVdSr8)rTr)r:cols rr=z!verticalOutput..s*$K$KsS]]$K$K$K$K$K$Kr!z2******************** %s. row *********************z: rvz%d rows in setrqrurr)currentStatementrwrzr]rTrmaxrUrrrrjustrrreset_referencesrrrDr{r|r}r~rG)r( statementrsetsridxrsetcolumn_name_lengthrrr;col_name col_valuerrs rverticalOutputrs)'I* **955i')"5))  IC5zzA~~ oQ7888!$$K$Kdl$K$K$K!K!K ""$$B $ RVZVehiVijkkk!*4.trim_ast_fix_bqsp G G G * * *Gd1g%Eq'DG#CqyyT%']c11d3i36F6FQYYsD111 q\\ 5 5EAr HH__T2z:: ; ; ; 5bez11bekkmmv6M6MSTX[\]X^X^_`X`S`S`defghifidjkldmdsdsduduzBeBeB*h34441ayr!z WITH ROLLUP) grtmodulesMysqlSqlFacadeparseAstFromSqlScriptrT ExceptiontyperVrrrun)rreturn_none_if_unsupportedast_listast formatterrprs @rdoReformatSQLStatementrs{)??EEH 8}}1222 HQKC5 CDDD 1+C",C00I "djjll2 IoodC<< = =uuww % 4 r!c"t|dS)NF)r)rs rreformatSQLStatementr s !$ . ..r!zwb.sqlide.enbeautificatezReformat SQL QueryzReformat Queryc |j}d}|s d}|j}d}d}d}g}tjj|}|D]\}} || z} ||kr||||||| } | d} | dt| t| z } | } | d} | | kr)| t| t| z d} nd} | } | dr$| d\}}}| |dzz } |} nP| d r:| d }|dkr| | d|d zz } | |d zd} nnn| d} | | dt| t| z z } | } | d} | | kr+| | t| t| z dz } | } t| d}n5#ddl}td | d|dd}YnxYw|ro|d z }| r(|| d||| r(|| dn"|d z }|||| | }|||dd|}|r||n|||dkr7t*jd||fzn4t*jd|zdS)zAReformat the selected SQL statements or the one under the cursor.TFrz Nrqz-- ruz/*z*/rzError reformating SQL: r. z@Formatted %i statements, %i unsupported statement types skipped.zFormatted %i statements.)rxrrrrgetSqlStatementRangesrlstriprTrstrip startswith partitionfindr tracebackr format_excstriprreplaceSelectionreplaceCurrentStatementrDAppgetset_status_text)r(r selectionOnlyok_count bad_countprev_endnew_textrangesrrrstrippedleadingtrailingcomment_restposrrs renbeautificaters8  DM ' &HIHH [ ' = =d C CF88 sck 8   OOD%0 1 1 1sO ##I..;S^^c(mm;;< ##I.. y  3y>>CMM#A!B!C!CDHHH  ##E** #,#6#6t#<#< D74<' %%d++ nnT**!88y#a%00G )#a%&& 1II ##I..9.get_keyword_offsetss&*#1aq!/IAIA ,,1v...<z upcaseKeywords..qwwyyr!rr's rupcaseKeywordsr  V%8%8 9 99r!zwb.sqlide.lowercaseKeywordsz Make keywords in query lowercasezLowercase Query Keywordsc$t|dS)Nc*|Sr8)rQrs rrz#lowercaseKeywords..rr!r r's rlowercaseKeywordsrr r!cd}d}||}d}g}d}d} |D]D} |} |t| z} |||| | dz r|| }| } || | }E|| |fS)Nc||cxkr|ks0n||cxkr|ks!n||cxkr|ksn||cxkr|krnndSdS)NTFr?)start1end1start2end2s rintersects_rangez,get_lines_in_range..intersects_ranges V # # # #t # # # #v'='='='='='='='= F " " " "d " " " "f&<&<&<&<&<&<&<&<&<4ur!cg}|ra|d}|dkr.||d|dz||dzd}n||n|a|S)Nrurr.)rr)rlinesrs rsplitz!get_lines_in_range..splits~  $AAvv T!AaC%[)))AaCDDz T"""  r!rr.)rTr) r range_start range_endrr all_linesoffsrfirst_line_start last_line_endr line_startline_ends rget_lines_in_ranger!s   d I D EM D >  KJ K K '#- $M LL    mU 33r!zwb.sqlide.indentzIndent Selected Linescd}|j}|j}|j}||krt|||\}}}|||z}|}|t |kr6||dz dkr'|dz }|t |kr||dz dk'||kr|d||z }t |t |z} ||_|||| z|_|t |z|_nz|jx} } | dkr)|| dz dkr| dz} | dkr|| dz dk||d| |z|| dz| t |z|_dS)N r.rur) selectionStart selectionEndryr!rrTrinsertionPointr) r( indentationstartr full_textrrrrdeltarrs rindentr+sK  !E  C I U{{1CIuVY1Z1Z.-!1!1%!8!88 c)nn,,=?1Kt1S1S Q Mc)nn,,=?1Kt1S1S C   5=#4!5 56HE S--- 0)))!Ek %K(8(8 8!00 S1nn:a> c)nn,,=?1Kt1S1S Q Mc)nn,,=?1Kt1S1S C   5=#4!5 56HE S--- 0))) 3{## #&6 6 6C ,,,EE$E ; ( (+CC!C! %!00 S1nn:a.2sG x xjndook>Z>Z"d$'8'9'9":":`d x x x x x xr!c32K|]}|dkr|zn|VdS)rqNr?)r:rr3s rr=zcommentText..4s6 ^ ^PTtrzzt!3!3t ^ ^ ^ ^ ^ ^r!FTr)rrootwboptionsrTrxrrrrr&ryrr) r(rrrrr)donerr3r4s @@r commentTextr:)sv#(+-56[\\KCHK/78]^__bcc  D $ 4   8  { + + _yy x x x x xrw x x xxxHHyy ^ ^ ^ ^X] ^ ^ ^^^H))))#M  S... /; > >  " "9TcT?YsCT?T?U?U5V#V W W WDD1XX  SU3q5):#::;{JJ**9Vc!eV+ ? ? ? ? 816A B B B B ;8FK777 :1VZ000 >@V^Y??? 1r!zwb.sqlide.runScriptzRun SQL ScriptcHt|}|Sr8)r r)r(forms r runSQLScriptrEms  D 88::r!cJt|}||Sr8)r run_file)r(rJrDs rrunSQLScriptFilerHts!  D ==  r!):r7rrrrDrI workbench.logrworkbench.notificationsrrr text_outputr run_scriptr rr rr sqlide_resultset_extr rrrr ModuleInfoexportINTr classesdb_query_Editorr)db_query_EditableResultsetrlplugincurrentQueryEditordb_query_QueryEditorrrrSTRINGrcurrentQueryBufferdb_query_QueryBufferrrr rr!r+r0r:LISTrBcurrentSQLEditorrErHr?r!rr\s2&%%%%%%% ######666666777777%%%%%%$$$$$$555555444444;;;;;;!!!!!!!!\ ~u U U U  37 h h h 37CK788  98  37CKBCC. . DC. b 2=]hCgohChEhEgFZtuu 37CK<==B B >=uuB J -7HQlQYQlQnQnPoDbcc 37CK<==  >=cc >$$$N 3:sz**//+*/ -9MVqV^VqVsVsUtIYZZ 37CK<==V V >=ZZV t0 0 0 f -9[ddldeBeBdCWqrr 37CK<==::>=rr: 0<^hCgohChEhEgFZtuu 37CK<==::>=uu:!4!4!4H %1HQlQYQlQnQnPoD[\\ 37CK<==  >=\\ D '3LUpU]UpUrUrTsHabb 37CK<==1 1 >=bb1 h &2HQlQYQlQnQnPoDdee 37CK<==# # >=ee# J 37CK7BB  CB 8 (4DMfXMfMhMhLi~NOO 37CK78898OO  37CK7DDEDr!