20 #ifndef RIPPLE_APP_DATA_DBINIT_H_INCLUDED
21 #define RIPPLE_APP_DATA_DBINIT_H_INCLUDED
33 {
"PRAGMA synchronous=NORMAL;",
34 "PRAGMA journal_mode=WAL;",
35 "PRAGMA journal_size_limit=1582080;"}};
38 {
"BEGIN TRANSACTION;",
40 "CREATE TABLE IF NOT EXISTS Ledgers ( \
41 LedgerHash CHARACTER(64) PRIMARY KEY, \
42 LedgerSeq BIGINT UNSIGNED, \
43 PrevHash CHARACTER(64), \
44 TotalCoins BIGINT UNSIGNED, \
45 ClosingTime BIGINT UNSIGNED, \
46 PrevClosingTime BIGINT UNSIGNED, \
47 CloseTimeRes BIGINT UNSIGNED, \
48 CloseFlags BIGINT UNSIGNED, \
49 AccountSetHash CHARACTER(64), \
50 TransSetHash CHARACTER(64) \
52 "CREATE INDEX IF NOT EXISTS SeqLedger ON Ledgers(LedgerSeq);",
55 "DROP TABLE IF EXISTS Validations;",
62 inline constexpr
auto TxDBName{
"transaction.db"};
65 #if (ULONG_MAX > UINT_MAX) && !defined(NO_SQLITE_MMAP)
73 "PRAGMA page_size=4096;",
"PRAGMA synchronous=NORMAL;",
74 "PRAGMA journal_mode=WAL;",
"PRAGMA journal_size_limit=1582080;",
75 "PRAGMA max_page_count=2147483646;",
76 #if (ULONG_MAX > UINT_MAX) && !defined(NO_SQLITE_MMAP)
77 "PRAGMA mmap_size=17179869184;"
83 {
"BEGIN TRANSACTION;",
85 "CREATE TABLE IF NOT EXISTS Transactions ( \
86 TransID CHARACTER(64) PRIMARY KEY, \
87 TransType CHARACTER(24), \
88 FromAcct CHARACTER(35), \
89 FromSeq BIGINT UNSIGNED, \
90 LedgerSeq BIGINT UNSIGNED, \
91 Status CHARACTER(1), \
95 "CREATE INDEX IF NOT EXISTS TxLgrIndex ON \
96 Transactions(LedgerSeq);",
98 "CREATE TABLE IF NOT EXISTS AccountTransactions ( \
99 TransID CHARACTER(64), \
100 Account CHARACTER(64), \
101 LedgerSeq BIGINT UNSIGNED, \
104 "CREATE INDEX IF NOT EXISTS AcctTxIDIndex ON \
105 AccountTransactions(TransID);",
106 "CREATE INDEX IF NOT EXISTS AcctTxIndex ON \
107 AccountTransactions(Account, LedgerSeq, TxnSeq, TransID);",
108 "CREATE INDEX IF NOT EXISTS AcctLgrIndex ON \
109 AccountTransactions(LedgerSeq, Account, TransID);",
111 "END TRANSACTION;"}};
119 {
"PRAGMA synchronous=NORMAL;",
120 "PRAGMA journal_mode=WAL;",
121 "PRAGMA journal_size_limit=1582080;"}};
124 {
"CREATE TABLE IF NOT EXISTS Shard ( \
125 ShardIndex INTEGER PRIMARY KEY, \
126 LastLedgerHash CHARACTER(64), \
127 StoredLedgerSeqs BLOB \
134 {
"PRAGMA synchronous=OFF;",
"PRAGMA journal_mode=OFF;"}};
141 {
"BEGIN TRANSACTION;",
149 "CREATE TABLE IF NOT EXISTS NodeIdentity ( \
150 PublicKey CHARACTER(53), \
151 PrivateKey CHARACTER(52) \
155 "CREATE TABLE IF NOT EXISTS PeerReservations ( \
156 PublicKey CHARACTER(53) UNIQUE NOT NULL, \
157 Description CHARACTER(64) NOT NULL \
161 "CREATE TABLE IF NOT EXISTS ValidatorManifests ( \
162 RawData BLOB NOT NULL \
165 "CREATE TABLE IF NOT EXISTS PublisherManifests ( \
166 RawData BLOB NOT NULL \
169 "END TRANSACTION;"}};
176 {
"PRAGMA synchronous=FULL;",
"PRAGMA journal_mode=DELETE;"}};
179 {
"BEGIN TRANSACTION;",
181 "CREATE TABLE IF NOT EXISTS State ( \
182 ShardIndex INTEGER PRIMARY KEY, \
186 "END TRANSACTION;"}};
189 {
"BEGIN TRANSACTION;",
191 "CREATE TABLE IF NOT EXISTS download ( \
194 Size BIGINT UNSIGNED, \
195 Part BIGINT UNSIGNED PRIMARY KEY \
198 "END TRANSACTION;"}};
constexpr auto AcquireShardDBName
constexpr auto WalletDBName
constexpr std::array< char const *, 1 > AcquireShardDBInit
static constexpr std::array< char const *, 3 > ShardArchiveHandlerDBInit
constexpr std::array< char const *, 3 > AcquireShardDBPragma
constexpr std::array< char const *, 5 > LgrDBInit
static constexpr std::array< char const *, 2 > DownloaderDBPragma
constexpr std::array< char const *, 3 > LgrDBPragma
static constexpr auto stateDBName
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
static constexpr std::array< char const *, 3 > DatabaseBodyDBInit
constexpr std::array< char const *, 2 > CompleteShardDBPragma
constexpr std::array< char const *, 8 > TxDBInit
constexpr std::array< char const *, 6 > WalletDBInit
constexpr std::array< char const *, 5 > TxDBPragma