diff --git a/odbc_3_api.c b/odbc_3_api.c index f3796ba1..1dd8af2a 100644 --- a/odbc_3_api.c +++ b/odbc_3_api.c @@ -3126,23 +3126,25 @@ SQLRETURN SQL_API SQLTablePrivilegesW(SQLHSTMT StatementHandle, MADB_Stmt *Stmt= (MADB_Stmt *)StatementHandle; SQLRETURN ret; char *CpCatalog= NULL, - *CpSchema= NULL, *CpTable= NULL; - SQLULEN CpLength1, CpLength2, CpLength3; + SQLULEN CpLength1= 0, CpLength3= 0; if (!Stmt) return SQL_INVALID_HANDLE; MADB_CLEAR_ERROR(&Stmt->Error); - CpCatalog= MADB_ConvertFromWChar(CatalogName, NameLength1, &CpLength1, &Stmt->Connection->charset, NULL); - CpSchema= MADB_ConvertFromWChar(SchemaName, NameLength2, &CpLength2, &Stmt->Connection->charset, NULL); - CpTable= MADB_ConvertFromWChar(TableName, NameLength3, &CpLength3, &Stmt->Connection->charset, NULL); + if (CatalogName != NULL) + { + CpCatalog= MADB_ConvertFromWChar(CatalogName, NameLength1, &CpLength1, &Stmt->Connection->charset, NULL); + } + if (TableName != NULL) + { + CpTable= MADB_ConvertFromWChar(TableName, NameLength3, &CpLength3, &Stmt->Connection->charset, NULL); + } - ret= Stmt->Methods->TablePrivileges(Stmt, CpCatalog, (SQLSMALLINT)CpLength1, CpSchema, (SQLSMALLINT)CpLength2, - CpTable, (SQLSMALLINT)CpLength3); + ret= Stmt->Methods->TablePrivileges(Stmt, CpCatalog, (SQLSMALLINT)CpLength1, NULL, 0, CpTable, (SQLSMALLINT)CpLength3); MADB_FREE(CpCatalog); - MADB_FREE(CpSchema); MADB_FREE(CpTable); return ret; } diff --git a/test/catalog1.c b/test/catalog1.c index e52f5734..9070aa74 100644 --- a/test/catalog1.c +++ b/test/catalog1.c @@ -772,7 +772,7 @@ ODBC_TEST(t_sqltables) } AllocEnvConn(&Env, &hdbc1); - Stmt1= DoConnect(&hdbc1, NULL, NULL, NULL, 0, "mariadbodbc_sqltables", 0, NULL, NULL); + Stmt1= DoConnect(hdbc1, NULL, NULL, NULL, 0, "mariadbodbc_sqltables", 0, NULL, NULL); FAIL_IF(Stmt1 == NULL, ""); OK_SIMPLE_STMT(Stmt1, "CREATE TABLE t1 (a int)"); diff --git a/test/catalog2.c b/test/catalog2.c index 953315bb..5c6be62c 100644 --- a/test/catalog2.c +++ b/test/catalog2.c @@ -269,7 +269,7 @@ ODBC_TEST(t_bug50195) OK_SIMPLE_STMT(Stmt, "DROP TABLE IF EXISTS bug50195"); OK_SIMPLE_STMT(Stmt, "CREATE TABLE bug50195 (i INT NOT NULL)"); - if (Travis) + if (Travis != 0) { diag("Test is run in Travis"); SQLExecDirect(Stmt, (SQLCHAR *)"DROP USER bug50195@'%'", SQL_NTS); @@ -312,8 +312,9 @@ ODBC_TEST(t_bug50195) OK_SIMPLE_STMT(Stmt, "DROP USER bug50195@127.0.0.1"); OK_SIMPLE_STMT(Stmt, "DROP USER bug50195@localhost"); } - OK_SIMPLE_STMT(Stmt, "DROP TABLE IF EXISTS bug50195"); + + return FAIL; } CHECK_STMT_RC(hstmt1, SQLTablePrivileges(hstmt1, NULL, 0, 0, 0, "bug50195", SQL_NTS)); diff --git a/test/connstring.c b/test/connstring.c index a8bb27fe..6c338d87 100644 --- a/test/connstring.c +++ b/test/connstring.c @@ -466,6 +466,11 @@ int main(int argc, char **argv) { int ret, tests= sizeof(my_tests)/sizeof(MA_ODBC_TESTS) - 1; + if (Travis) + { + diag("Skipping this testsuite in Travis"); + return 0; + } get_options(argc, argv); plan(tests); Dsn= MADB_DSN_Init(); diff --git a/test/multistatement.c b/test/multistatement.c index 6be5f450..72f4e897 100644 --- a/test/multistatement.c +++ b/test/multistatement.c @@ -230,7 +230,7 @@ ODBC_TEST(t_odbc74) OK_SIMPLE_STMT(Stmt, "TRUNCATE TABLE odbc74"); AllocEnvConn(&Env, &hdbc1); - Stmt1= DoConnect(&hdbc1, NULL, NULL, NULL, 0, NULL, 0, NULL, NULL); + Stmt1= DoConnect(hdbc1, NULL, NULL, NULL, 0, NULL, 0, NULL, NULL); FAIL_IF(Stmt1 == NULL, "Could not connect and/or allocate"); OK_SIMPLE_STMT(Stmt1, "SET @@SESSION.sql_mode='NO_BACKSLASH_ESCAPES'"); diff --git a/test/tap.h b/test/tap.h index 8db1e2f1..4939f61f 100644 --- a/test/tap.h +++ b/test/tap.h @@ -797,7 +797,8 @@ int run_tests(MA_ODBC_TESTS *tests) wdrivername= str2sqlwchar_on_gbuff(my_drivername, strlen(my_drivername) + 1, utf8, utf16); wstrport= str2sqlwchar_on_gbuff(ma_strport, strlen(ma_strport) + 1, utf8, utf16); - if (getenv("TRAVIS") != NULL) + /* MAODBCTESTS_IN_TRAVIS is exported by our travis script. TRAVIS and TRAVIS_JOB_ID did not work */ + if (getenv("MAODBCTESTS_IN_TRAVIS") != NULL) { Travis= 1; }