fixed: add_field_for_select from Model incorrectly escaped a field string (column name)

fixed: Finder didn't use full table name (schema.table) in "from" clause
This commit is contained in:
2021-04-12 18:53:55 +02:00
parent 79fd642ef7
commit 9a4fd9b050
6 changed files with 47 additions and 27 deletions

View File

@@ -194,12 +194,19 @@ bool BaseExpression::is_long_field_name(const PT::TextStream & field_name)
}
void BaseExpression::put_field_name(const wchar_t * field_name, ModelEnv * model_env)
void BaseExpression::put_field_name(const wchar_t * field_name, FT field_type, ModelEnv * model_env)
{
if( is_long_field_name(field_name) )
put_long_field_name(field_name);
if( field_type.is_raw_field_name() )
{
(*out_stream) << field_name;
}
else
put_short_field_name(field_name, model_env);
{
if( is_long_field_name(field_name) )
put_long_field_name(field_name);
else
put_short_field_name(field_name, model_env);
}
}
@@ -262,13 +269,13 @@ void BaseExpression::put_short_field_name(const wchar_t * field_name, ModelEnv *
}
void BaseExpression::save_foreign_key(const wchar_t * field_name, ModelEnv * model_env)
void BaseExpression::save_foreign_key(const wchar_t * field_name, FT field_type, ModelEnv * model_env)
{
PT::TextStream str;
PT::TextStream * old_out_stream = out_stream;
out_stream = &str;
put_field_name(field_name, model_env);
put_field_name(field_name, field_type, model_env);
out_stream = old_out_stream;
if( model_env && model_env->finder_helper )