changed the way how to quote schemas, tables and field names,

added escaping table names in insert/update/remove

removed methods from BaseExpression:
virtual void before_short_field_name();
virtual void after_short_field_name();
virtual void before_first_part_long_field_name();
virtual void after_first_part_long_field_name();
virtual void before_second_part_long_field_name();
virtual void after_second_part_long_field_name();

added methods to BaseExpression:
virtual void schema_table_separator();
virtual void table_field_separator();
virtual void before_schema_name();
virtual void after_schema_name();
virtual void before_table_name();
virtual void after_table_name();
virtual void before_field_name();
virtual void after_field_name();
This commit is contained in:
2021-05-13 02:32:03 +02:00
parent a1537cf8d5
commit 2ad6c8c258
11 changed files with 222 additions and 177 deletions

View File

@@ -183,8 +183,8 @@ void DbConnector::generate_insert_query(PT::TextStream & stream, Model & model)
db_expression->clear();
db_expression->allow_to_use_prefix(false);
// IMPROVEME escape table_name
stream << "insert into " << model.get_table_name();
stream << "insert into ";
db_expression->schema_table_to_stream(stream, model.model_env->schema_name, model.model_env->table_name);
stream << " (";
db_expression->set_work_mode(MORM_WORK_MODE_MODEL_FIELDS);
@@ -208,8 +208,8 @@ void DbConnector::generate_update_query(PT::TextStream & stream, Model & model)
db_expression->clear();
db_expression->allow_to_use_prefix(false);
// IMPROVEME escape table_name
stream << "update " << model.get_table_name();
stream << "update ";
db_expression->schema_table_to_stream(stream, model.model_env->schema_name, model.model_env->table_name);
stream << " set ";
db_expression->set_work_mode(MORM_WORK_MODE_MODEL_FIELDS_VALUES);
@@ -233,8 +233,8 @@ void DbConnector::generate_remove_query(PT::TextStream & stream, Model & model)
db_expression->clear();
db_expression->allow_to_use_prefix(false);
// IMPROVEME escape table_name
stream << "delete from " << model.get_table_name();
stream << "delete from ";
db_expression->schema_table_to_stream(stream, model.model_env->schema_name, model.model_env->table_name);
stream << " where ";
db_expression->set_work_mode(MORM_WORK_MODE_MODEL_FIELDS_VALUES);