From a95d8b61b3f9102f566462fc50781e3e7c769232 Mon Sep 17 00:00:00 2001 From: Kristijan Husak Date: Thu, 20 Jun 2024 08:19:08 +0200 Subject: [PATCH] Add proper support for mariadb scheme --- autoload/db_ui.vim | 7 +------ autoload/db_ui/schemas.vim | 15 +++++++++++++++ autoload/db_ui/table_helpers.vim | 1 + 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/autoload/db_ui.vim b/autoload/db_ui.vim index 81794de..2235fa1 100644 --- a/autoload/db_ui.vim +++ b/autoload/db_ui.vim @@ -403,14 +403,9 @@ function! s:dbui.populate_schema_info(db) abort let parsed_url = self.parse_url(url) let scheme = get(parsed_url, 'scheme', '') let scheme_info = db_ui#schemas#get(scheme) - let schema_support = !empty(get(scheme_info, 'schemes_query', 0)) - if schema_support && tolower(scheme) ==? 'mysql' && parsed_url.path !=? '/' - let schema_support = 0 - endif - let a:db.scheme = scheme let a:db.table_helpers = db_ui#table_helpers#get(scheme) - let a:db.schema_support = schema_support + let a:db.schema_support = db_ui#schemas#supports_schemes(scheme_info, parsed_url) let a:db.quote = get(scheme_info, 'quote', 0) let a:db.default_scheme = get(scheme_info, 'default_scheme', '') let a:db.filetype = get(scheme_info, 'filetype', 'sql') diff --git a/autoload/db_ui/schemas.vim b/autoload/db_ui/schemas.vim index 2b98f70..1f58019 100644 --- a/autoload/db_ui/schemas.vim +++ b/autoload/db_ui/schemas.vim @@ -218,3 +218,18 @@ function! db_ui#schemas#query(db, scheme, query) abort let result = call('db#systemlist', s:format_query(a:db, a:scheme, a:query)) return map(result, {_, val -> substitute(val, "\r$", "", "")}) endfunction + +function db_ui#schemas#supports_schemes(scheme, parsed_url) + let schema_support = !empty(get(a:scheme, 'schemes_query', 0)) + if empty(schema_support) + return 0 + endif + let scheme_name = tolower(get(a:parsed_url, 'scheme', '')) + " Mysql and MariaDB should not show schemas if the path (database name) is + " defined + if (scheme_name ==? 'mysql' || scheme_name ==? 'mariadb') && a:parsed_url.path !=? '/' + return 0 + endif + + return 1 +endfunction diff --git a/autoload/db_ui/table_helpers.vim b/autoload/db_ui/table_helpers.vim index 9912af2..14c3c18 100644 --- a/autoload/db_ui/table_helpers.vim +++ b/autoload/db_ui/table_helpers.vim @@ -186,6 +186,7 @@ let s:helpers = { \ 'bigquery': s:bigquery, \ 'postgresql': s:postgres, \ 'mysql': s:mysql, + \ 'mariadb': s:mysql, \ 'oracle': s:oracle, \ 'sqlite': s:sqlite, \ 'sqlserver': s:sqlserver,