# HG changeset patch # User Sebastien Jodogne # Date 1616676986 -3600 # Node ID ab96698c73a3b5ed1980fed1523c3f87a2290b93 # Parent c2e4a909de0ef58c7bfc8ed59ae48ef53c959ac3 removed useless information about read-only in ITransaction and IPrecompiledStatement diff -r c2e4a909de0e -r ab96698c73a3 Framework/Common/IPrecompiledStatement.h --- a/Framework/Common/IPrecompiledStatement.h Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/Common/IPrecompiledStatement.h Thu Mar 25 13:56:26 2021 +0100 @@ -31,7 +31,5 @@ virtual ~IPrecompiledStatement() { } - - virtual bool IsReadOnly() const = 0; }; } diff -r c2e4a909de0e -r ab96698c73a3 Framework/Common/ITransaction.h --- a/Framework/Common/ITransaction.h Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/Common/ITransaction.h Thu Mar 25 13:56:26 2021 +0100 @@ -35,8 +35,6 @@ } virtual bool IsImplicit() const = 0; - - virtual bool IsReadOnly() const = 0; virtual void Rollback() = 0; diff -r c2e4a909de0e -r ab96698c73a3 Framework/Common/ImplicitTransaction.cpp --- a/Framework/Common/ImplicitTransaction.cpp Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/Common/ImplicitTransaction.cpp Thu Mar 25 13:56:26 2021 +0100 @@ -33,8 +33,7 @@ ImplicitTransaction::ImplicitTransaction() : - state_(State_Ready), - readOnly_(true) + state_(State_Ready) { } @@ -127,11 +126,6 @@ CheckStateForExecution(); std::unique_ptr result(ExecuteInternal(statement, parameters)); - if (!statement.IsReadOnly()) - { - readOnly_ = false; - } - state_ = State_Executed; return result.release(); } @@ -143,11 +137,6 @@ CheckStateForExecution(); ExecuteWithoutResultInternal(statement, parameters); - if (!statement.IsReadOnly()) - { - readOnly_ = false; - } - state_ = State_Executed; } diff -r c2e4a909de0e -r ab96698c73a3 Framework/Common/ImplicitTransaction.h --- a/Framework/Common/ImplicitTransaction.h Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/Common/ImplicitTransaction.h Thu Mar 25 13:56:26 2021 +0100 @@ -38,7 +38,6 @@ }; State state_; - bool readOnly_; void CheckStateForExecution(); @@ -59,11 +58,6 @@ return true; } - virtual bool IsReadOnly() const ORTHANC_OVERRIDE - { - return readOnly_; - } - virtual void Rollback() ORTHANC_OVERRIDE; virtual void Commit() ORTHANC_OVERRIDE; diff -r c2e4a909de0e -r ab96698c73a3 Framework/MySQL/MySQLStatement.cpp --- a/Framework/MySQL/MySQLStatement.cpp Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/MySQL/MySQLStatement.cpp Thu Mar 25 13:56:26 2021 +0100 @@ -348,7 +348,6 @@ MySQLStatement::MySQLStatement(MySQLDatabase& db, const Query& query) : db_(db), - readOnly_(query.IsReadOnly()), statement_(NULL), formatter_(Dialect_MySQL) { diff -r c2e4a909de0e -r ab96698c73a3 Framework/MySQL/MySQLStatement.h --- a/Framework/MySQL/MySQLStatement.h Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/MySQL/MySQLStatement.h Thu Mar 25 13:56:26 2021 +0100 @@ -39,7 +39,6 @@ void Close(); MySQLDatabase& db_; - bool readOnly_; MYSQL_STMT *statement_; GenericFormatter formatter_; std::vector result_; @@ -51,11 +50,6 @@ virtual ~MySQLStatement(); - virtual bool IsReadOnly() const ORTHANC_OVERRIDE - { - return readOnly_; - } - MYSQL_STMT* GetObject(); size_t GetResultFieldsCount() const diff -r c2e4a909de0e -r ab96698c73a3 Framework/MySQL/MySQLTransaction.cpp --- a/Framework/MySQL/MySQLTransaction.cpp Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/MySQL/MySQLTransaction.cpp Thu Mar 25 13:56:26 2021 +0100 @@ -33,7 +33,6 @@ { MySQLTransaction::MySQLTransaction(MySQLDatabase& db) : db_(db), - readOnly_(true), active_(false) { db_.Execute("START TRANSACTION", false); @@ -65,7 +64,6 @@ { db_.Execute("ROLLBACK", false); active_ = false; - readOnly_ = true; } else { @@ -81,7 +79,6 @@ { db_.Execute("COMMIT", false); active_ = false; - readOnly_ = true; } else { @@ -94,14 +91,7 @@ IResult* MySQLTransaction::Execute(IPrecompiledStatement& statement, const Dictionary& parameters) { - std::unique_ptr result(dynamic_cast(statement).Execute(*this, parameters)); - - if (!statement.IsReadOnly()) - { - readOnly_ = false; - } - - return result.release(); + return dynamic_cast(statement).Execute(*this, parameters); } @@ -109,10 +99,5 @@ const Dictionary& parameters) { dynamic_cast(statement).ExecuteWithoutResult(*this, parameters); - - if (!statement.IsReadOnly()) - { - readOnly_ = false; - } } } diff -r c2e4a909de0e -r ab96698c73a3 Framework/MySQL/MySQLTransaction.h --- a/Framework/MySQL/MySQLTransaction.h Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/MySQL/MySQLTransaction.h Thu Mar 25 13:56:26 2021 +0100 @@ -34,7 +34,6 @@ { private: MySQLDatabase& db_; - bool readOnly_; bool active_; public: @@ -47,11 +46,6 @@ return false; } - virtual bool IsReadOnly() const ORTHANC_OVERRIDE - { - return readOnly_; - } - virtual void Rollback() ORTHANC_OVERRIDE; virtual void Commit() ORTHANC_OVERRIDE; diff -r c2e4a909de0e -r ab96698c73a3 Framework/PostgreSQL/PostgreSQLDatabase.cpp --- a/Framework/PostgreSQL/PostgreSQLDatabase.cpp Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/PostgreSQL/PostgreSQLDatabase.cpp Thu Mar 25 13:56:26 2021 +0100 @@ -194,7 +194,7 @@ "SELECT 1 FROM pg_catalog.pg_class c " "JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace " "WHERE n.nspname = 'public' AND c.relkind='r' " - "AND c.relname=$1", true); + "AND c.relname=$1"); statement.DeclareInputString(0); statement.BindString(0, lower); diff -r c2e4a909de0e -r ab96698c73a3 Framework/PostgreSQL/PostgreSQLStatement.cpp --- a/Framework/PostgreSQL/PostgreSQLStatement.cpp Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/PostgreSQL/PostgreSQLStatement.cpp Thu Mar 25 13:56:26 2021 +0100 @@ -288,10 +288,8 @@ PostgreSQLStatement::PostgreSQLStatement(PostgreSQLDatabase& database, - const std::string& sql, - bool readOnly) : + const std::string& sql) : database_(database), - readOnly_(readOnly), sql_(sql), inputs_(new Inputs), formatter_(Dialect_PostgreSQL) @@ -303,7 +301,6 @@ PostgreSQLStatement::PostgreSQLStatement(PostgreSQLDatabase& database, const Query& query) : database_(database), - readOnly_(query.IsReadOnly()), inputs_(new Inputs), formatter_(Dialect_PostgreSQL) { diff -r c2e4a909de0e -r ab96698c73a3 Framework/PostgreSQL/PostgreSQLStatement.h --- a/Framework/PostgreSQL/PostgreSQLStatement.h Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/PostgreSQL/PostgreSQLStatement.h Thu Mar 25 13:56:26 2021 +0100 @@ -47,7 +47,6 @@ friend class PostgreSQLResult; PostgreSQLDatabase& database_; - bool readOnly_; std::string id_; std::string sql_; std::vector oids_; @@ -66,19 +65,13 @@ public: PostgreSQLStatement(PostgreSQLDatabase& database, - const std::string& sql, - bool readOnly); + const std::string& sql); PostgreSQLStatement(PostgreSQLDatabase& database, const Query& query); ~PostgreSQLStatement(); - virtual bool IsReadOnly() const ORTHANC_OVERRIDE - { - return readOnly_; - } - void DeclareInputInteger(unsigned int param); void DeclareInputInteger64(unsigned int param); diff -r c2e4a909de0e -r ab96698c73a3 Framework/PostgreSQL/PostgreSQLTransaction.cpp --- a/Framework/PostgreSQL/PostgreSQLTransaction.cpp Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/PostgreSQL/PostgreSQLTransaction.cpp Thu Mar 25 13:56:26 2021 +0100 @@ -31,8 +31,7 @@ { PostgreSQLTransaction::PostgreSQLTransaction(PostgreSQLDatabase& database) : database_(database), - isOpen_(false), - readOnly_(true) + isOpen_(false) { Begin(); } @@ -66,7 +65,6 @@ database_.Execute("BEGIN"); database_.Execute("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE"); - readOnly_ = true; isOpen_ = true; } @@ -102,14 +100,7 @@ IResult* PostgreSQLTransaction::Execute(IPrecompiledStatement& statement, const Dictionary& parameters) { - std::unique_ptr result(dynamic_cast(statement).Execute(*this, parameters)); - - if (!statement.IsReadOnly()) - { - readOnly_ = false; - } - - return result.release(); + return dynamic_cast(statement).Execute(*this, parameters); } @@ -117,10 +108,5 @@ const Dictionary& parameters) { dynamic_cast(statement).ExecuteWithoutResult(*this, parameters); - - if (!statement.IsReadOnly()) - { - readOnly_ = false; - } } } diff -r c2e4a909de0e -r ab96698c73a3 Framework/PostgreSQL/PostgreSQLTransaction.h --- a/Framework/PostgreSQL/PostgreSQLTransaction.h Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/PostgreSQL/PostgreSQLTransaction.h Thu Mar 25 13:56:26 2021 +0100 @@ -36,7 +36,6 @@ private: PostgreSQLDatabase& database_; bool isOpen_; - bool readOnly_; public: explicit PostgreSQLTransaction(PostgreSQLDatabase& database); @@ -48,11 +47,6 @@ return false; } - virtual bool IsReadOnly() const ORTHANC_OVERRIDE - { - return readOnly_; - } - void Begin(); virtual void Rollback() ORTHANC_OVERRIDE; diff -r c2e4a909de0e -r ab96698c73a3 Framework/SQLite/SQLiteStatement.cpp --- a/Framework/SQLite/SQLiteStatement.cpp Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/SQLite/SQLiteStatement.cpp Thu Mar 25 13:56:26 2021 +0100 @@ -34,7 +34,6 @@ { SQLiteStatement::SQLiteStatement(SQLiteDatabase& database, const Query& query) : - readOnly_(query.IsReadOnly()), formatter_(Dialect_SQLite) { std::string sql; diff -r c2e4a909de0e -r ab96698c73a3 Framework/SQLite/SQLiteStatement.h --- a/Framework/SQLite/SQLiteStatement.h Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/SQLite/SQLiteStatement.h Thu Mar 25 13:56:26 2021 +0100 @@ -40,7 +40,6 @@ { private: std::unique_ptr statement_; - bool readOnly_; GenericFormatter formatter_; void BindParameters(const Dictionary& parameters); @@ -49,11 +48,6 @@ SQLiteStatement(SQLiteDatabase& database, const Query& query); - virtual bool IsReadOnly() const ORTHANC_OVERRIDE - { - return readOnly_; - } - Orthanc::SQLite::Statement& GetObject(); IResult* Execute(ITransaction& transaction, diff -r c2e4a909de0e -r ab96698c73a3 Framework/SQLite/SQLiteTransaction.cpp --- a/Framework/SQLite/SQLiteTransaction.cpp Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/SQLite/SQLiteTransaction.cpp Thu Mar 25 13:56:26 2021 +0100 @@ -30,8 +30,7 @@ namespace OrthancDatabases { SQLiteTransaction::SQLiteTransaction(SQLiteDatabase& database) : - transaction_(database.GetObject()), - readOnly_(true) + transaction_(database.GetObject()) { transaction_.Begin(); @@ -44,24 +43,12 @@ IResult* SQLiteTransaction::Execute(IPrecompiledStatement& statement, const Dictionary& parameters) { - std::unique_ptr result(dynamic_cast(statement).Execute(*this, parameters)); - - if (!statement.IsReadOnly()) - { - readOnly_ = false; - } - - return result.release(); + return dynamic_cast(statement).Execute(*this, parameters); } void SQLiteTransaction::ExecuteWithoutResult(IPrecompiledStatement& statement, const Dictionary& parameters) { dynamic_cast(statement).ExecuteWithoutResult(*this, parameters); - - if (!statement.IsReadOnly()) - { - readOnly_ = false; - } } } diff -r c2e4a909de0e -r ab96698c73a3 Framework/SQLite/SQLiteTransaction.h --- a/Framework/SQLite/SQLiteTransaction.h Wed Mar 24 15:59:23 2021 +0100 +++ b/Framework/SQLite/SQLiteTransaction.h Thu Mar 25 13:56:26 2021 +0100 @@ -36,7 +36,6 @@ { private: Orthanc::SQLite::Transaction transaction_; - bool readOnly_; public: explicit SQLiteTransaction(SQLiteDatabase& database); @@ -46,11 +45,6 @@ return false; } - virtual bool IsReadOnly() const ORTHANC_OVERRIDE - { - return readOnly_; - } - virtual void Rollback() ORTHANC_OVERRIDE { transaction_.Rollback(); diff -r c2e4a909de0e -r ab96698c73a3 PostgreSQL/UnitTests/PostgreSQLTests.cpp --- a/PostgreSQL/UnitTests/PostgreSQLTests.cpp Wed Mar 24 15:59:23 2021 +0100 +++ b/PostgreSQL/UnitTests/PostgreSQLTests.cpp Thu Mar 25 13:56:26 2021 +0100 @@ -66,7 +66,7 @@ static int64_t CountLargeObjects(PostgreSQLDatabase& db) { // Count the number of large objects in the DB - PostgreSQLStatement s(db, "SELECT COUNT(*) FROM pg_catalog.pg_largeobject", true); + PostgreSQLStatement s(db, "SELECT COUNT(*) FROM pg_catalog.pg_largeobject"); PostgreSQLResult r(s); return r.GetInteger64(0); } @@ -80,7 +80,7 @@ pg->Execute("CREATE TABLE Test(name INTEGER, value BIGINT)"); ASSERT_TRUE(pg->DoesTableExist("Test")); - PostgreSQLStatement s(*pg, "INSERT INTO Test VALUES ($1,$2)", false); + PostgreSQLStatement s(*pg, "INSERT INTO Test VALUES ($1,$2)"); s.DeclareInputInteger(0); s.DeclareInputInteger64(1); @@ -99,7 +99,7 @@ s.Run(); { - PostgreSQLStatement t(*pg, "SELECT name, value FROM Test ORDER BY name", true); + PostgreSQLStatement t(*pg, "SELECT name, value FROM Test ORDER BY name"); PostgreSQLResult r(t); ASSERT_FALSE(r.IsDone()); @@ -121,7 +121,7 @@ } { - PostgreSQLStatement t(*pg, "SELECT name, value FROM Test WHERE name=$1", true); + PostgreSQLStatement t(*pg, "SELECT name, value FROM Test WHERE name=$1"); t.DeclareInputInteger(0); { @@ -151,7 +151,7 @@ pg->Execute("CREATE TABLE Test(name INTEGER, value VARCHAR(40))"); - PostgreSQLStatement s(*pg, "INSERT INTO Test VALUES ($1,$2)", false); + PostgreSQLStatement s(*pg, "INSERT INTO Test VALUES ($1,$2)"); s.DeclareInputInteger(0); s.DeclareInputString(1); @@ -168,7 +168,7 @@ s.Run(); { - PostgreSQLStatement t(*pg, "SELECT name, value FROM Test ORDER BY name", true); + PostgreSQLStatement t(*pg, "SELECT name, value FROM Test ORDER BY name"); PostgreSQLResult r(t); ASSERT_FALSE(r.IsDone()); @@ -198,7 +198,7 @@ pg->Execute("CREATE TABLE Test(name INTEGER, value INTEGER)"); { - PostgreSQLStatement s(*pg, "INSERT INTO Test VALUES ($1,$2)", false); + PostgreSQLStatement s(*pg, "INSERT INTO Test VALUES ($1,$2)"); s.DeclareInputInteger(0); s.DeclareInputInteger(1); s.BindInteger(0, 42); @@ -214,7 +214,7 @@ s.BindInteger(1, 4444); s.Run(); - PostgreSQLStatement u(*pg, "SELECT COUNT(*) FROM Test", true); + PostgreSQLStatement u(*pg, "SELECT COUNT(*) FROM Test"); PostgreSQLResult r(u); ASSERT_EQ(3, r.GetInteger64(0)); @@ -222,7 +222,7 @@ } { - PostgreSQLStatement u(*pg, "SELECT COUNT(*) FROM Test", true); + PostgreSQLStatement u(*pg, "SELECT COUNT(*) FROM Test"); PostgreSQLResult r(u); ASSERT_EQ(1, r.GetInteger64(0)); // Just "1" because of implicit rollback } @@ -237,7 +237,7 @@ s.Run(); { - PostgreSQLStatement u(*pg, "SELECT COUNT(*) FROM Test", true); + PostgreSQLStatement u(*pg, "SELECT COUNT(*) FROM Test"); PostgreSQLResult r(u); ASSERT_EQ(3, r.GetInteger64(0)); @@ -248,7 +248,7 @@ } { - PostgreSQLStatement u(*pg, "SELECT COUNT(*) FROM Test", true); + PostgreSQLStatement u(*pg, "SELECT COUNT(*) FROM Test"); PostgreSQLResult r(u); ASSERT_EQ(3, r.GetInteger64(0)); } @@ -270,7 +270,7 @@ pg->Execute("CREATE RULE TestDelete AS ON DELETE TO Test DO SELECT lo_unlink(old.value);"); { - PostgreSQLStatement s(*pg, "INSERT INTO Test VALUES ($1,$2)", false); + PostgreSQLStatement s(*pg, "INSERT INTO Test VALUES ($1,$2)"); s.DeclareInputString(0); s.DeclareInputLargeObject(1); @@ -298,7 +298,7 @@ { PostgreSQLTransaction t(*pg); - PostgreSQLStatement s(*pg, "SELECT * FROM Test ORDER BY name DESC", true); + PostgreSQLStatement s(*pg, "SELECT * FROM Test ORDER BY name DESC"); PostgreSQLResult r(s); ASSERT_FALSE(r.IsDone()); @@ -319,7 +319,7 @@ { PostgreSQLTransaction t(*pg); - PostgreSQLStatement s(*pg, "DELETE FROM Test WHERE name='Index 9'", false); + PostgreSQLStatement s(*pg, "DELETE FROM Test WHERE name='Index 9'"); s.Run(); t.Commit(); } @@ -328,7 +328,7 @@ { // Count the number of items in the DB PostgreSQLTransaction t(*pg); - PostgreSQLStatement s(*pg, "SELECT COUNT(*) FROM Test", true); + PostgreSQLStatement s(*pg, "SELECT COUNT(*) FROM Test"); PostgreSQLResult r(s); ASSERT_EQ(9, r.GetInteger64(0)); }