From 18123440c07d5787de37bd097701513fc5b9d43e Mon Sep 17 00:00:00 2001 From: winesync Date: Sat, 12 Mar 2022 15:11:50 +0100 Subject: [PATCH] [WINESYNC] msi: Support NULL value in INSERT query. Signed-off-by: Piotr Caban Signed-off-by: Hans Leidekker Signed-off-by: Alexandre Julliard wine commit id 63ccdfeaaab56aca42d21a884789eb5048064276 by Piotr Caban --- dll/win32/msi/sql.y | 9 ++++++++- modules/rostests/winetests/msi/package.c | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/dll/win32/msi/sql.y b/dll/win32/msi/sql.y index 366764d5aeb..2101c680eb3 100644 --- a/dll/win32/msi/sql.y +++ b/dll/win32/msi/sql.y @@ -658,6 +658,12 @@ const_val: if( !$$ ) YYABORT; } + | TK_NULL + { + $$ = EXPR_sval( info, NULL ); + if ( !$$ ) + YYABORT; + } ; column_val: @@ -921,7 +927,8 @@ static struct expr * EXPR_sval( void *info, const struct sql_str *str ) if( e ) { e->type = EXPR_SVAL; - if( SQL_getstring( info, str, (LPWSTR *)&e->u.sval ) != ERROR_SUCCESS ) + if( !str) e->u.sval = NULL; + else if( SQL_getstring( info, str, (LPWSTR *)&e->u.sval ) != ERROR_SUCCESS ) return NULL; /* e will be freed by query destructor */ } return e; diff --git a/modules/rostests/winetests/msi/package.c b/modules/rostests/winetests/msi/package.c index e3a08944d51..c2e2106c38b 100644 --- a/modules/rostests/winetests/msi/package.c +++ b/modules/rostests/winetests/msi/package.c @@ -3705,7 +3705,7 @@ static void test_states(void) add_custom_action_entry( hdb, "'ConditionCheck7', 19, '', 'Condition check failed (7)'" ); add_custom_action_entry( hdb, "'ConditionCheck8', 19, '', 'Condition check failed (8)'" ); add_custom_action_entry( hdb, - "'VBFeatureRequest', 38, '', 'Session.FeatureRequestState(\"three\") = 3'" ); + "'VBFeatureRequest', 38, NULL, 'Session.FeatureRequestState(\"three\") = 3'" ); add_install_execute_sequence_entry( hdb, "'ConditionCheck1', 'REINSTALL', '798'" ); add_install_execute_sequence_entry( hdb, "'ConditionCheck2', 'NOT REMOVE AND Preselected', '799'" );