From df44296c04a894144c661f263488769cff3bf961 Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Wed, 11 May 2022 23:18:25 +0200 Subject: [PATCH] fix: only insert primary keys from the first descendant childs --- src/dbexpression.cpp | 6 ++++-- src/model.cpp | 4 +++- src/morm_types.h | 4 +++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/dbexpression.cpp b/src/dbexpression.cpp index ac92a2e..9841299 100644 --- a/src/dbexpression.cpp +++ b/src/dbexpression.cpp @@ -76,7 +76,8 @@ bool DbExpression::can_field_be_generated(const FT & field_type) else if( output_type == MORM_OUTPUT_TYPE_DB_PRIMARY_KEY || output_type == MORM_OUTPUT_TYPE_JOIN_TABLES || - output_type == MORM_OUTPUT_TYPE_DB_INSERT_PRIMARY_KEY ) + output_type == MORM_OUTPUT_TYPE_DB_INSERT_PRIMARY_KEY || + output_type == MORM_OUTPUT_TYPE_DB_UPDATE_PRIMARY_KEY ) { return field_type.is_primary_key(); } @@ -106,7 +107,8 @@ void DbExpression::field_before() (*out_stream) << " AND "; } else - if( output_type == MORM_OUTPUT_TYPE_DB_INSERT_PRIMARY_KEY ) + if( output_type == MORM_OUTPUT_TYPE_DB_INSERT_PRIMARY_KEY || + output_type == MORM_OUTPUT_TYPE_DB_UPDATE_PRIMARY_KEY ) { (*out_stream) << ", "; } diff --git a/src/model.cpp b/src/model.cpp index 2d4e1d0..c1f99d9 100644 --- a/src/model.cpp +++ b/src/model.cpp @@ -1458,7 +1458,9 @@ void Model::field_model_generate_db_sql(const wchar_t * db_field_name, Model & f if( db_expression->get_output_type() != MORM_OUTPUT_TYPE_JOIN_TABLES && db_expression->get_output_type() != MORM_OUTPUT_TYPE_DB_PRIMARY_KEY && db_expression->get_output_type() != MORM_OUTPUT_TYPE_DB_INSERT && - db_expression->get_output_type() != MORM_OUTPUT_TYPE_DB_UPDATE ) + db_expression->get_output_type() != MORM_OUTPUT_TYPE_DB_UPDATE && + db_expression->get_output_type() != MORM_OUTPUT_TYPE_DB_INSERT_PRIMARY_KEY && + db_expression->get_output_type() != MORM_OUTPUT_TYPE_DB_UPDATE_PRIMARY_KEY ) { field_model.fields(); } diff --git a/src/morm_types.h b/src/morm_types.h index 4315935..d764171 100644 --- a/src/morm_types.h +++ b/src/morm_types.h @@ -76,10 +76,12 @@ #define MORM_OUTPUT_TYPE_DB_UPDATE 3 // change to something like MORM_OUTPUT_TYPE_DB_WHERE_PRIMARY_KEY + +// put a primary key #define MORM_OUTPUT_TYPE_DB_PRIMARY_KEY 4 #define MORM_OUTPUT_TYPE_DB_INSERT_PRIMARY_KEY 5 -#define MORM_OUTPUT_TYPE_DB_UPDATE_PRIMARY_KEY 5 +#define MORM_OUTPUT_TYPE_DB_UPDATE_PRIMARY_KEY 6 //#define MORM_OUTPUT_TYPE_WHERE_CUSTOM 7