serialize a model to flat string even when a DO_NOTHING_ON_SAVE flag is set
while here: - add FT::serialize_to_null_if_null and FT::do_not_serialize_if_null flags
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 2018-2022, Tomasz Sowa
|
||||
* Copyright (c) 2018-2023, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -112,22 +112,36 @@ bool BaseExpression::get_allow_to_use_prefix()
|
||||
|
||||
|
||||
void BaseExpression::generate_from_model(pt::TextStream & stream, Model & model)
|
||||
{
|
||||
FT field_type = FT::default_type;
|
||||
generate_from_model(stream, model, field_type);
|
||||
}
|
||||
|
||||
|
||||
void BaseExpression::generate_from_model(pt::TextStream & stream, Model & model, const FT & field_type)
|
||||
{
|
||||
this->out_stream = &stream;
|
||||
generate_from_model(model);
|
||||
generate_from_model(model, field_type);
|
||||
this->out_stream = nullptr;
|
||||
}
|
||||
|
||||
|
||||
void BaseExpression::generate_from_model(Model & model)
|
||||
void BaseExpression::generate_from_model(Model & model, const FT & field_type)
|
||||
{
|
||||
if( out_stream )
|
||||
{
|
||||
before_generate_from_model();
|
||||
dump_additional_info(model);
|
||||
model.fields();
|
||||
add_additional_columns(model);
|
||||
after_generate_from_model();
|
||||
if( should_field_model_be_generated_as_null(model.get_has_primary_key_set(), field_type) )
|
||||
{
|
||||
put_null_value();
|
||||
}
|
||||
else
|
||||
{
|
||||
before_generate_from_model();
|
||||
dump_additional_info(model);
|
||||
model.fields();
|
||||
add_additional_columns(model);
|
||||
after_generate_from_model();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,6 +178,17 @@ bool BaseExpression::can_field_be_generated(const FT &)
|
||||
}
|
||||
|
||||
|
||||
bool BaseExpression::can_field_model_be_generated(bool has_model_primary_key, const FT & field_type)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool BaseExpression::should_field_model_be_generated_as_null(bool has_model_primary_key, const FT & field_type)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void BaseExpression::field_before()
|
||||
{
|
||||
if( !is_first_field )
|
||||
|
Reference in New Issue
Block a user