msi: All columns being temporary means the table is non-persistent.
The HOLD keyword just means that the non-persistent data in the table
should be kept around, not that the table is temporary.
diff --git a/dlls/msi/create.c b/dlls/msi/create.c
index ef71684..965a4a6 100644
--- a/dlls/msi/create.c
+++ b/dlls/msi/create.c
@@ -146,10 +146,12 @@
}
UINT CREATE_CreateView( MSIDATABASE *db, MSIVIEW **view, LPWSTR table,
- column_info *col_info, BOOL temp )
+ column_info *col_info, BOOL hold )
{
MSICREATEVIEW *cv = NULL;
UINT r;
+ const column_info *col;
+ BOOL temp = TRUE;
TRACE("%p\n", cv );
@@ -161,6 +163,13 @@
if( !cv )
return ERROR_FUNCTION_FAILED;
+ for( col = col_info; col; col = col->next )
+ if( !col->temporary )
+ {
+ temp = FALSE;
+ break;
+ }
+
/* fill the structure */
cv->view.ops = &create_ops;
msiobj_addref( &db->hdr );