Commit d677bd7f authored by James Hawkins's avatar James Hawkins Committed by Alexandre Julliard

msi: Return MSICONDITION_NONE in MsiDatabaseIsTablePersistent if the table doesn't exist.

parent 68401a15
...@@ -563,7 +563,7 @@ extern const WCHAR *msi_string_lookup_id( string_table *st, UINT id ); ...@@ -563,7 +563,7 @@ extern const WCHAR *msi_string_lookup_id( string_table *st, UINT id );
extern UINT msi_string_get_codepage( string_table *st ); extern UINT msi_string_get_codepage( string_table *st );
extern BOOL TABLE_Exists( MSIDATABASE *db, LPWSTR name ); extern BOOL TABLE_Exists( MSIDATABASE *db, LPCWSTR name );
extern MSICONDITION MSI_DatabaseIsTablePersistent( MSIDATABASE *db, LPCWSTR table ); extern MSICONDITION MSI_DatabaseIsTablePersistent( MSIDATABASE *db, LPCWSTR table );
extern UINT read_raw_stream_data( MSIDATABASE*, LPCWSTR stname, extern UINT read_raw_stream_data( MSIDATABASE*, LPCWSTR stname,
......
...@@ -1027,7 +1027,7 @@ static UINT get_tablecolumns( MSIDATABASE *db, ...@@ -1027,7 +1027,7 @@ static UINT get_tablecolumns( MSIDATABASE *db,
} }
/* try to find the table name in the _Tables table */ /* try to find the table name in the _Tables table */
BOOL TABLE_Exists( MSIDATABASE *db, LPWSTR name ) BOOL TABLE_Exists( MSIDATABASE *db, LPCWSTR name )
{ {
UINT r, table_id = 0, i, count; UINT r, table_id = 0, i, count;
MSITABLE *table = NULL; MSITABLE *table = NULL;
...@@ -1716,6 +1716,9 @@ MSICONDITION MSI_DatabaseIsTablePersistent( MSIDATABASE *db, LPCWSTR table ) ...@@ -1716,6 +1716,9 @@ MSICONDITION MSI_DatabaseIsTablePersistent( MSIDATABASE *db, LPCWSTR table )
if (!table) if (!table)
return MSICONDITION_ERROR; return MSICONDITION_ERROR;
if (!TABLE_Exists( db, table ))
return MSICONDITION_NONE;
return MSICONDITION_FALSE; return MSICONDITION_FALSE;
} }
......
...@@ -2648,10 +2648,10 @@ static void test_temporary_table(void) ...@@ -2648,10 +2648,10 @@ static void test_temporary_table(void)
cond = MsiDatabaseIsTablePersistent(hdb, "_Columns"); cond = MsiDatabaseIsTablePersistent(hdb, "_Columns");
ok( cond == MSICONDITION_NONE, "wrong return condition\n"); ok( cond == MSICONDITION_NONE, "wrong return condition\n");
}
cond = MsiDatabaseIsTablePersistent(hdb, "_Streams"); cond = MsiDatabaseIsTablePersistent(hdb, "_Streams");
ok( cond == MSICONDITION_NONE, "wrong return condition\n"); ok( cond == MSICONDITION_NONE, "wrong return condition\n");
}
query = "CREATE TABLE `P` ( `B` SHORT NOT NULL, `C` CHAR(255) PRIMARY KEY `C`)"; query = "CREATE TABLE `P` ( `B` SHORT NOT NULL, `C` CHAR(255) PRIMARY KEY `C`)";
r = run_query(hdb, 0, query); r = run_query(hdb, 0, query);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment