diff --git a/autoload/vim_dadbod_completion/job.vim b/autoload/vim_dadbod_completion/job.vim index 832e6e5..45fdd75 100644 --- a/autoload/vim_dadbod_completion/job.vim +++ b/autoload/vim_dadbod_completion/job.vim @@ -54,7 +54,11 @@ function! vim_dadbod_completion#job#run(cmd, callback) abort let opts['noblock'] = 1 endif - return job_start([&shell, '-c', a:cmd], opts) + if has('win32') + return job_start(printf('%s %s %s', &shell, &shellcmdflag, a:cmd), opts) + else + return job_start([&shell, &shellcmdflag, a:cmd], opts) + endif endif let list = systemlist(a:cmd) diff --git a/autoload/vim_dadbod_completion/schemas.vim b/autoload/vim_dadbod_completion/schemas.vim index fc737f1..b61cc86 100644 --- a/autoload/vim_dadbod_completion/schemas.vim +++ b/autoload/vim_dadbod_completion/schemas.vim @@ -1,6 +1,6 @@ let s:base_column_query = 'select table_name,column_name from information_schema.columns' let s:query = s:base_column_query.' order by column_name asc' -let s:count_query = 'select count(*) as "total" from information_schema.columns' +let s:count_query = 'select count(*) as total from information_schema.columns' let s:table_column_query = s:base_column_query.' where table_name={db_tbl_name}' function! s:map_and_filter(delimiter, list) abort @@ -15,8 +15,8 @@ function! s:count_parser(index, result) abort endfunction let s:postgres = { - \ 'column_query': printf("-A -c '%s'", s:query), - \ 'count_column_query': printf("-A -c '%s'", s:count_query), + \ 'column_query': printf('-A -c "%s"', s:query), + \ 'count_column_query': printf('-A -c "%s"', s:count_query), \ 'table_column_query': {table -> printf('-A -c "%s"', substitute(s:table_column_query, '{db_tbl_name}', "'".table."'", ''))}, \ 'quote': 1, \ 'column_parser': function('s:map_and_filter', ['|']), @@ -27,16 +27,16 @@ let s:schemas = { \ 'postgres': s:postgres, \ 'postgresql': s:postgres, \ 'mysql': { - \ 'column_query': printf("-e '%s'", s:query), - \ 'count_column_query': printf("-e '%s'", s:count_query), + \ 'column_query': printf('-e "%s"', s:query), + \ 'count_column_query': printf('-e "%s"', s:count_query), \ 'table_column_query': {table -> printf('-e "%s"', substitute(s:table_column_query, '{db_tbl_name}', "'".table."'", ''))}, \ 'quote': 0, \ 'column_parser': function('s:map_and_filter', ['\t']), \ 'count_parser': function('s:count_parser', [1]) \ }, \ 'sqlserver': { - \ 'column_query': printf("-h-1 -W -s '|' -Q '%s'", s:query), - \ 'count_column_query': printf("-h-1 -W -Q '%s'", s:count_query), + \ 'column_query': printf('-h-1 -W -s "|" -Q "%s"', s:query), + \ 'count_column_query': printf('-h-1 -W -Q "%s"', s:count_query), \ 'table_column_query': {table -> printf('-h-1 -W -Q "%s"', substitute(s:table_column_query, '{db_tbl_name}', "'".table."'", ''))}, \ 'quote': 0, \ 'column_parser': function('s:map_and_filter', ['|']),