From 1bb3c3ea0f44fc9aa451048cce2b07f42ed7233e Mon Sep 17 00:00:00 2001 From: Derek Christ Date: Tue, 22 Aug 2023 10:39:35 +0200 Subject: [PATCH] Use raw string literal for database creation --- src/libdramsys/DRAMSys/common/TlmRecorder.h | 197 ++++++++++---------- 1 file changed, 99 insertions(+), 98 deletions(-) diff --git a/src/libdramsys/DRAMSys/common/TlmRecorder.h b/src/libdramsys/DRAMSys/common/TlmRecorder.h index e5de03e4..15932e79 100644 --- a/src/libdramsys/DRAMSys/common/TlmRecorder.h +++ b/src/libdramsys/DRAMSys/common/TlmRecorder.h @@ -177,104 +177,105 @@ private: insertDebugMessageString, insertPowerString, insertBufferDepthString, insertBandwidthString; - std::string initialCommand = - "DROP TABLE IF EXISTS Phases; \n" - "DROP TABLE IF EXISTS GeneralInfo; \n" - "DROP TABLE IF EXISTS CommandLengths; \n" - "DROP TABLE IF EXISTS Comments; \n" - "DROP TABLE IF EXISTS ranges; \n" - "DROP TABLE IF EXISTS Transactions; \n" - "DROP TABLE IF EXISTS DebugMessages; \n" - "DROP TABLE IF EXISTS Power; \n" - "DROP TABLE IF EXISTS BufferDepth; \n" - "DROP TABLE IF EXISTS Bandwidth; \n" - " \n" - "CREATE TABLE Phases( \n" - " ID INTEGER PRIMARY KEY, \n" - " PhaseName TEXT, \n" - " PhaseBegin INTEGER, \n" - " PhaseEnd INTEGER, \n" - " DataStrobeBegin INTEGER, \n" - " DataStrobeEnd INTEGER, \n" - " Rank INTEGER, \n" - " BankGroup INTEGER, \n" - " Bank INTEGER, \n" - " Row INTEGER, \n" - " Column INTEGER, \n" - " BurstLength INTEGER, \n" - " Transact INTEGER \n" - "); \n" - " \n" - "CREATE TABLE GeneralInfo( \n" - " NumberOfRanks INTEGER, \n" - " NumberOfBankgroups INTEGER, \n" - " NumberOfBanks INTEGER, \n" - " clk INTEGER, \n" - " UnitOfTime TEXT, \n" - " MCconfig TEXT, \n" - " Memspec TEXT, \n" - " Traces TEXT, \n" - " WindowSize INTEGER, \n" - " RefreshMaxPostponed INTEGER, \n" - " RefreshMaxPulledin INTEGER, \n" - " ControllerThread INTEGER, \n" - " MaxBufferDepth INTEGER, \n" - " Per2BankOffset INTEGER, \n" - " RowColumnCommandBus BOOL, \n" - " PseudoChannelMode BOOL \n" - "); \n" - " \n" - "CREATE TABLE CommandLengths( \n" - " Command TEXT, \n" - " Length DOUBLE \n" - "); \n" - " \n" - "CREATE TABLE Power( \n" - " time DOUBLE, \n" - " AveragePower DOUBLE \n" - "); \n" - " \n" - "CREATE TABLE BufferDepth( \n" - " Time DOUBLE, \n" - " BufferNumber INTEGER, \n" - " AverageBufferDepth DOUBLE \n" - "); \n" - " \n" - "CREATE TABLE Bandwidth( \n" - " Time DOUBLE, \n" - " AverageBandwidth DOUBLE \n" - "); \n" - " \n" - "CREATE TABLE Comments( \n" - " Time INTEGER, \n" - " Text TEXT \n" - "); \n" - " \n" - "CREATE TABLE DebugMessages( \n" - " Time INTEGER, \n" - " Message TEXT \n" - "); \n" - " \n" - "-- use SQLITE R* TREE Module to make queries on timespans effecient (see http://www.sqlite.org/rtree.html)\n" - "CREATE VIRTUAL TABLE ranges USING rtree( \n" - " id, \n" - " begin, end \n" - "); \n" - " \n" - "CREATE TABLE Transactions( \n" - " ID INTEGER, \n" - " Range INTEGER, \n" - " Address INTEGER, \n" - " DataLength INTEGER, \n" - " Thread INTEGER, \n" - " Channel INTEGER, \n" - " TimeOfGeneration INTEGER, \n" - " Command TEXT \n" - "); \n" - " \n" - "CREATE INDEX ranges_index ON Transactions(Range); \n" - "CREATE INDEX \"phasesTransactions\" ON \"Phases\" (\"Transact\" ASC); \n" - "CREATE INDEX \"messageTimes\" ON \"DebugMessages\" (\"Time\" ASC); \n"; + std::string initialCommand = R"( + DROP TABLE IF EXISTS Phases; + DROP TABLE IF EXISTS GeneralInfo; + DROP TABLE IF EXISTS CommandLengths; + DROP TABLE IF EXISTS Comments; + DROP TABLE IF EXISTS ranges; + DROP TABLE IF EXISTS Transactions; + DROP TABLE IF EXISTS DebugMessages; + DROP TABLE IF EXISTS Power; + DROP TABLE IF EXISTS BufferDepth; + DROP TABLE IF EXISTS Bandwidth; + + CREATE TABLE Phases( + ID INTEGER PRIMARY KEY, + PhaseName TEXT, + PhaseBegin INTEGER, + PhaseEnd INTEGER, + DataStrobeBegin INTEGER, + DataStrobeEnd INTEGER, + Rank INTEGER, + BankGroup INTEGER, + Bank INTEGER, + Row INTEGER, + Column INTEGER, + BurstLength INTEGER, + Transact INTEGER + ); + + CREATE TABLE GeneralInfo( + NumberOfRanks INTEGER, + NumberOfBankgroups INTEGER, + NumberOfBanks INTEGER, + clk INTEGER, + UnitOfTime TEXT, + MCconfig TEXT, + Memspec TEXT, + Traces TEXT, + WindowSize INTEGER, + RefreshMaxPostponed INTEGER, + RefreshMaxPulledin INTEGER, + ControllerThread INTEGER, + MaxBufferDepth INTEGER, + Per2BankOffset INTEGER, + RowColumnCommandBus BOOL, + PseudoChannelMode BOOL + ); + + CREATE TABLE CommandLengths( + Command TEXT, + Length DOUBLE + ); + + CREATE TABLE Power( + time DOUBLE, + AveragePower DOUBLE + ); + + CREATE TABLE BufferDepth( + Time DOUBLE, + BufferNumber INTEGER, + AverageBufferDepth DOUBLE + ); + + CREATE TABLE Bandwidth( + Time DOUBLE, + AverageBandwidth DOUBLE + ); + + CREATE TABLE Comments( + Time INTEGER, + Text TEXT + ); + + CREATE TABLE DebugMessages( + Time INTEGER, + Message TEXT + ); + + -- use SQLITE R* TREE Module to make queries on timespans effecient (see http://www.sqlite.org/rtree.html) + CREATE VIRTUAL TABLE ranges USING rtree( + id, + begin, end + ); + + CREATE TABLE Transactions( + ID INTEGER, + Range INTEGER, + Address INTEGER, + DataLength INTEGER, + Thread INTEGER, + Channel INTEGER, + TimeOfGeneration INTEGER, + Command TEXT + ); + + CREATE INDEX ranges_index ON Transactions(Range); + CREATE INDEX "phasesTransactions" ON "Phases" ("Transact" ASC); + CREATE INDEX "messageTimes" ON "DebugMessages" ("Time" ASC); + )"; }; } // namespace DRAMSys