@@ -47,7 +47,7 @@ fun! g:RunArray(sqlarray, timing)
47
47
endif
48
48
49
49
if a: timing
50
- let l: thesql = [' SELECT NOW(3)+0 INTO @startTime;' ] + a: sqlarray + [' SELECT CONCAT(ROUND(NOW(3) - @startTime, 3), "s") Took' ]
50
+ let l: thesql = [' SELECT NOW(3)+0 INTO @startTime;' ] + a: sqlarray + [' ; SELECT CONCAT(ROUND(NOW(3) - @startTime, 3), "s") Took' ]
51
51
else
52
52
let l: thesql = a: sqlarray
53
53
endif
@@ -72,13 +72,27 @@ func! g:DescriptCursorTable()
72
72
call RunArray ([' SHOW FULL COLUMNS FROM `' . l: Table . ' `;' ], 0 )
73
73
endfun
74
74
75
- fun ! g: RunInstruction ()
75
+ fun ! s: GetInstruction ()
76
76
let l: PrevSemicolon = search (' ;' , ' bnW' )
77
77
let l: NextSemicolon = search (' ;' , ' nW' )
78
- let l: Lines = getline (l: PrevSemicolon , l: NextSemicolon )[1 :]
78
+ return getline (l: PrevSemicolon , l: NextSemicolon )[1 :]
79
+ endfun
80
+
81
+ fun ! g: RunInstruction ()
82
+ let l: Lines = s: GetInstruction ()
79
83
call g: RunArray (l: Lines , 1 )
80
84
endfun
81
85
86
+ fun ! g: RunExplain ()
87
+ let l: Lines = s: GetInstruction ()
88
+ call g: RunArray ([' explain ' ] + l: Lines , 1 )
89
+ endfun
90
+
91
+ fun ! g: RunExplainSelection ()
92
+ let l: Selection = g: GetSelection ()
93
+ call g: RunArray ([' explain ' ] + l: Selection , 1 )
94
+ endfun
95
+
82
96
fun ! s: GetCommand ()
83
97
let l: Command = ' mysql '
84
98
let l: LineNum = 1
@@ -97,3 +111,5 @@ autocmd FileType sql nnoremap <silent><buffer> <leader>ss :call g:SelectCursorTa
97
111
autocmd FileType sql nnoremap <silent> <buffer> <leader> ds :call g:DescriptCursorTable()<CR>
98
112
autocmd FileType sql nnoremap <silent> <buffer> <leader> rs :call g:RunSelection()<CR>
99
113
autocmd FileType sql vnoremap <silent> <buffer> <leader> rs :<C-U> call g:RunSelection()<CR>
114
+ autocmd FileType sql nnoremap <silent> <buffer> <leader> re :call g:RunExplain()<CR>
115
+ autocmd FileType sql vnoremap <silent> <buffer> <leader> re :call g:RunExplainSelection()<CR>
0 commit comments