--- mariadb-connector-odbc-3.1.6/ma_statement.c	2020-01-26 08:12:25.016888049 +0100
+++ mariadb-connector-odbc-3.1.6/ma_statement.c	2020-01-26 08:17:49.821721953 +0100
@@ -3389,8 +3389,7 @@
      the result set contains a list of valid catalogs for the data source. 
      (All columns except the TABLE_CAT column contain NULLs
   */
-  if (CatalogName && CatalogNameLength && TableName != NULL && !TableNameLength &&
-    SchemaName != NULL && SchemaNameLength == 0 && !strcmp(CatalogName, SQL_ALL_CATALOGS))
+  if (CatalogName && CatalogNameLength && !TableNameLength && !strcmp(CatalogName, SQL_ALL_TABLE_TYPES))
   {
     MADB_InitDynamicString(&StmtStr, "SELECT SCHEMA_NAME AS TABLE_CAT, CONVERT(NULL,CHAR(64)) AS TABLE_SCHEM, "
                                   "CONVERT(NULL,CHAR(64)) AS TABLE_NAME, NULL AS TABLE_TYPE, NULL AS REMARKS "
@@ -3403,8 +3402,7 @@
      the result set contains a list of valid table types for the data source. 
      (All columns except the TABLE_TYPE column contain NULLs.)
   */
-  else if (CatalogName != NULL && !CatalogNameLength && TableName != NULL && !TableNameLength &&
-    SchemaName != NULL && SchemaNameLength == 0 && TableType && TableTypeLength &&
+  else if (!CatalogNameLength && !TableNameLength && TableType && TableTypeLength &&
             !strcmp(TableType, SQL_ALL_TABLE_TYPES))
   {
     MADB_InitDynamicString(&StmtStr, "SELECT NULL AS TABLE_CAT, NULL AS TABLE_SCHEM, "
@@ -3416,16 +3414,6 @@
                                   "SELECT NULL, NULL, NULL, 'SYSTEM VIEW', NULL FROM DUAL",
                                   8192, 512); 
   }
-  /* Since we treat our databases as catalogs, the only acceptable value for schema is NULL or "%"
-     if that is not the special case of call for schemas list. Otherwise we return empty resultset*/
-  else if (SchemaName &&
-    ((!strcmp(SchemaName,SQL_ALL_SCHEMAS) && CatalogName && CatalogNameLength == 0 && TableName && TableNameLength == 0) ||
-      strcmp(SchemaName, SQL_ALL_SCHEMAS)))
-  {
-    MADB_InitDynamicString(&StmtStr, "SELECT NULL AS TABLE_CAT, NULL AS TABLE_SCHEM, "
-      "NULL AS TABLE_NAME, NULL AS TABLE_TYPE, NULL AS REMARKS "
-      "FROM DUAL WHERE 1=0", 8192, 512);
-  }
   else
   {
     MADB_InitDynamicString(&StmtStr, "SELECT TABLE_SCHEMA AS TABLE_CAT, NULL AS TABLE_SCHEM, TABLE_NAME, "
@@ -3441,14 +3429,16 @@
       strcpy(Quote, "'");
     }
 
-    if (CatalogName)
+    MADB_DynstrAppend(&StmtStr, " AND TABLE_SCHEMA ");
+    if (CatalogName && CatalogNameLength)
     {
-      MADB_DynstrAppend(&StmtStr, " AND TABLE_SCHEMA ");
       MADB_DynstrAppend(&StmtStr, "LIKE ");
       MADB_DynstrAppend(&StmtStr, Quote);
       MADB_DynstrAppend(&StmtStr, CatalogName);
       MADB_DynstrAppend(&StmtStr, Quote);
     }
+    else
+      MADB_DynstrAppend(&StmtStr, "= DATABASE() ");
 
     if (TableName && TableNameLength)
     {
