Line | Branch | Exec | Source |
---|---|---|---|
1 | // SPDX-FileCopyrightText: 2023 Carl Zeiss Microscopy GmbH | ||
2 | // | ||
3 | // SPDX-License-Identifier: MIT | ||
4 | |||
5 | #include <sstream> | ||
6 | #include <string> | ||
7 | #include <gsl/gsl> | ||
8 | #include <imgdoc2.h> | ||
9 | #include "database_creator.h" | ||
10 | #include "database_configuration.h" | ||
11 | #include "database_constants.h" | ||
12 | #include "DbFactory.h" | ||
13 | #include "database_discovery.h" | ||
14 | #include "database_utilities.h" | ||
15 | #include "utilities.h" | ||
16 | |||
17 | using namespace std; | ||
18 | using namespace imgdoc2; | ||
19 | |||
20 | 184 | std::shared_ptr<DatabaseConfiguration2D> DbCreator::CreateTables2d(const imgdoc2::ICreateOptions* create_options) | |
21 | { | ||
22 |
1/2✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
|
184 | DbCreator::ThrowIfDocumentTypeIsNotAsSpecified(create_options, imgdoc2::DocumentType::kImage2d); |
23 | |||
24 | // construct the "database configuration" based on the the create_options | ||
25 |
1/2✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
|
184 | auto database_configuration = make_shared<DatabaseConfiguration2D>(); |
26 |
1/2✓ Branch 2 taken 184 times.
✗ Branch 3 not taken.
|
184 | this->Initialize2dConfigurationFromCreateOptions(database_configuration.get(), create_options); |
27 | |||
28 | // TODO(JBL): make those operations a transaction | ||
29 |
1/2✓ Branch 2 taken 184 times.
✗ Branch 3 not taken.
|
184 | auto sql_statement = this->GenerateSqlStatementForCreatingGeneralTable_Sqlite(database_configuration.get()); |
30 |
1/2✓ Branch 2 taken 184 times.
✗ Branch 3 not taken.
|
184 | this->db_connection_->Execute(sql_statement); |
31 | |||
32 |
1/2✓ Branch 2 taken 184 times.
✗ Branch 3 not taken.
|
184 | sql_statement = this->GenerateSqlStatementForFillingGeneralTable_Sqlite(database_configuration.get()); |
33 |
1/2✓ Branch 2 taken 184 times.
✗ Branch 3 not taken.
|
184 | this->db_connection_->Execute(sql_statement); |
34 | |||
35 |
1/2✓ Branch 2 taken 184 times.
✗ Branch 3 not taken.
|
184 | sql_statement = this->GenerateSqlStatementForCreatingTilesDataTable_Sqlite(database_configuration.get()); |
36 |
1/2✓ Branch 2 taken 184 times.
✗ Branch 3 not taken.
|
184 | this->db_connection_->Execute(sql_statement); |
37 | |||
38 |
1/2✓ Branch 2 taken 184 times.
✗ Branch 3 not taken.
|
184 | sql_statement = this->GenerateSqlStatementForCreatingTilesInfoTable_Sqlite(database_configuration.get()); |
39 |
1/2✓ Branch 2 taken 184 times.
✗ Branch 3 not taken.
|
184 | this->db_connection_->Execute(sql_statement); |
40 | |||
41 |
1/2✓ Branch 2 taken 184 times.
✗ Branch 3 not taken.
|
184 | sql_statement = this->GenerateSqlStatementForCreatingMetadataTable_Sqlite(database_configuration.get()); |
42 |
1/2✓ Branch 2 taken 184 times.
✗ Branch 3 not taken.
|
184 | this->db_connection_->Execute(sql_statement); |
43 | |||
44 |
3/4✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 176 times.
|
184 | if (create_options->GetUseSpatialIndex()) |
45 | { | ||
46 |
1/2✓ Branch 2 taken 8 times.
✗ Branch 3 not taken.
|
8 | sql_statement = this->GenerateSqlStatementForCreatingSpatialTilesIndex_Sqlite(database_configuration.get()); |
47 |
1/2✓ Branch 2 taken 8 times.
✗ Branch 3 not taken.
|
8 | this->db_connection_->Execute(sql_statement); |
48 | |||
49 | // and, add its name to the "General" table | ||
50 |
1/2✓ Branch 2 taken 8 times.
✗ Branch 3 not taken.
|
8 | this->SetGeneralTableInfoForSpatialIndex(database_configuration.get()); |
51 | } | ||
52 | |||
53 |
3/4✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 38 times.
✓ Branch 4 taken 146 times.
|
184 | if (create_options->GetCreateBlobTable()) |
54 | { | ||
55 |
1/2✓ Branch 2 taken 38 times.
✗ Branch 3 not taken.
|
38 | sql_statement = GenerateSqlStatementForCreatingBlobTable_Sqlite(database_configuration.get()); |
56 |
1/2✓ Branch 2 taken 38 times.
✗ Branch 3 not taken.
|
38 | this->db_connection_->Execute(sql_statement); |
57 |
1/2✓ Branch 2 taken 38 times.
✗ Branch 3 not taken.
|
38 | this->SetBlobTableNameInGeneralTable(database_configuration.get()); |
58 | } | ||
59 | |||
60 | 368 | return database_configuration; | |
61 | 184 | } | |
62 | |||
63 | 74 | std::shared_ptr<DatabaseConfiguration3D> DbCreator::CreateTables3d(const imgdoc2::ICreateOptions* create_options) | |
64 | { | ||
65 |
1/2✓ Branch 1 taken 74 times.
✗ Branch 2 not taken.
|
74 | DbCreator::ThrowIfDocumentTypeIsNotAsSpecified(create_options, imgdoc2::DocumentType::kImage3d); |
66 | |||
67 | // construct the "database configuration" based on the the create_options | ||
68 |
1/2✓ Branch 1 taken 74 times.
✗ Branch 2 not taken.
|
74 | auto database_configuration = make_shared<DatabaseConfiguration3D>(); |
69 |
1/2✓ Branch 2 taken 74 times.
✗ Branch 3 not taken.
|
74 | this->Initialize3dConfigurationFromCreateOptions(database_configuration.get(), create_options); |
70 | |||
71 | // TODO(JBL): make those operations a transaction | ||
72 |
1/2✓ Branch 2 taken 74 times.
✗ Branch 3 not taken.
|
74 | auto sql_statement = this->GenerateSqlStatementForCreatingGeneralTable_Sqlite(database_configuration.get()); |
73 |
1/2✓ Branch 2 taken 74 times.
✗ Branch 3 not taken.
|
74 | this->db_connection_->Execute(sql_statement); |
74 | |||
75 |
1/2✓ Branch 2 taken 74 times.
✗ Branch 3 not taken.
|
74 | sql_statement = this->GenerateSqlStatementForFillingGeneralTable_Sqlite(database_configuration.get()); |
76 |
1/2✓ Branch 2 taken 74 times.
✗ Branch 3 not taken.
|
74 | this->db_connection_->Execute(sql_statement); |
77 | |||
78 |
1/2✓ Branch 2 taken 74 times.
✗ Branch 3 not taken.
|
74 | sql_statement = this->GenerateSqlStatementForCreatingTilesDataTable_Sqlite(database_configuration.get()); |
79 |
1/2✓ Branch 2 taken 74 times.
✗ Branch 3 not taken.
|
74 | this->db_connection_->Execute(sql_statement); |
80 | |||
81 |
1/2✓ Branch 2 taken 74 times.
✗ Branch 3 not taken.
|
74 | sql_statement = this->GenerateSqlStatementForCreatingTilesInfoTable_Sqlite(database_configuration.get()); |
82 |
1/2✓ Branch 2 taken 74 times.
✗ Branch 3 not taken.
|
74 | this->db_connection_->Execute(sql_statement); |
83 | |||
84 |
1/2✓ Branch 2 taken 74 times.
✗ Branch 3 not taken.
|
74 | sql_statement = this->GenerateSqlStatementForCreatingMetadataTable_Sqlite(database_configuration.get()); |
85 |
1/2✓ Branch 2 taken 74 times.
✗ Branch 3 not taken.
|
74 | this->db_connection_->Execute(sql_statement); |
86 | |||
87 |
3/4✓ Branch 1 taken 74 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 20 times.
✓ Branch 4 taken 54 times.
|
74 | if (create_options->GetUseSpatialIndex()) |
88 | { | ||
89 |
1/2✓ Branch 2 taken 20 times.
✗ Branch 3 not taken.
|
20 | sql_statement = this->GenerateSqlStatementForCreatingSpatialTilesIndex_Sqlite(database_configuration.get()); |
90 |
1/2✓ Branch 2 taken 20 times.
✗ Branch 3 not taken.
|
20 | this->db_connection_->Execute(sql_statement); |
91 | |||
92 | // and, add its name to the "General" table | ||
93 |
1/2✓ Branch 2 taken 20 times.
✗ Branch 3 not taken.
|
20 | this->SetGeneralTableInfoForSpatialIndex(database_configuration.get()); |
94 | } | ||
95 | |||
96 |
3/4✓ Branch 1 taken 74 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 48 times.
✓ Branch 4 taken 26 times.
|
74 | if (create_options->GetCreateBlobTable()) |
97 | { | ||
98 |
1/2✓ Branch 2 taken 48 times.
✗ Branch 3 not taken.
|
48 | sql_statement = GenerateSqlStatementForCreatingBlobTable_Sqlite(database_configuration.get()); |
99 |
1/2✓ Branch 2 taken 48 times.
✗ Branch 3 not taken.
|
48 | this->db_connection_->Execute(sql_statement); |
100 |
1/2✓ Branch 2 taken 48 times.
✗ Branch 3 not taken.
|
48 | this->SetBlobTableNameInGeneralTable(database_configuration.get()); |
101 | } | ||
102 | |||
103 | 148 | return database_configuration; | |
104 | 74 | } | |
105 | |||
106 | 184 | std::string DbCreator::GenerateSqlStatementForCreatingTilesDataTable_Sqlite(const DatabaseConfiguration2D* database_configuration) | |
107 | { | ||
108 |
1/2✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
|
184 | stringstream string_stream; |
109 | ✗ | string_stream << "CREATE TABLE[" << database_configuration->GetTableNameForTilesDataOrThrow() << "](" << | |
110 | 184 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration2D::kTilesDataTable_Column_Pk) << "] INTEGER PRIMARY KEY," << | |
111 | 184 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration2D::kTilesDataTable_Column_PixelWidth) << "] INTEGER(4) NOT NULL," << | |
112 | 184 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration2D::kTilesDataTable_Column_PixelHeight) << "] INTEGER(4) NOT NULL," << | |
113 | 184 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration2D::kTilesDataTable_Column_PixelType) << "] INTEGER(1) NOT NULL," << | |
114 | 184 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration2D::kTilesDataTable_Column_TileDataType) << "] INTEGER(1) NOT NULL," << | |
115 | 184 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration2D::kTilesDataTable_Column_BinDataStorageType) << "] INTEGER(1)," << | |
116 |
32/64✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 184 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 184 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 184 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 184 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 184 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 184 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 184 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 184 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 184 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 184 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 184 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 184 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 184 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 184 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 184 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 184 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 184 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 184 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 184 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 184 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 184 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 184 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 184 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 184 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 184 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 184 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 184 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 184 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 184 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 184 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 184 times.
✗ Branch 95 not taken.
|
184 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration2D::kTilesDataTable_Column_BinDataId) << "] INTEGER(8)"; |
117 |
1/2✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
|
184 | string_stream << ");"; |
118 | |||
119 |
1/2✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
|
368 | return string_stream.str(); |
120 | 184 | } | |
121 | |||
122 | 74 | std::string DbCreator::GenerateSqlStatementForCreatingTilesDataTable_Sqlite(const DatabaseConfiguration3D* database_configuration) | |
123 | { | ||
124 |
1/2✓ Branch 1 taken 74 times.
✗ Branch 2 not taken.
|
74 | stringstream string_stream; |
125 | ✗ | string_stream << "CREATE TABLE[" << database_configuration->GetTableNameForTilesDataOrThrow() << "](" << | |
126 | 74 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration3D::kTilesDataTable_Column_Pk) << "] INTEGER PRIMARY KEY," << | |
127 | 74 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration3D::kTilesDataTable_Column_PixelWidth) << "] INTEGER(4) NOT NULL," << | |
128 | 74 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration3D::kTilesDataTable_Column_PixelHeight) << "] INTEGER(4) NOT NULL," << | |
129 | 74 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration3D::kTilesDataTable_Column_PixelDepth) << "] INTEGER(4) NOT NULL," << | |
130 | 74 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration3D::kTilesDataTable_Column_PixelType) << "] INTEGER(1) NOT NULL," << | |
131 | 74 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration3D::kTilesDataTable_Column_TileDataType) << "] INTEGER(1) NOT NULL," << | |
132 | 74 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration3D::kTilesDataTable_Column_BinDataStorageType) << "] INTEGER(1)," << | |
133 |
36/72✓ Branch 1 taken 74 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 74 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 74 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 74 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 74 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 74 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 74 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 74 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 74 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 74 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 74 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 74 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 74 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 74 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 74 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 74 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 74 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 74 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 74 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 74 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 74 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 74 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 74 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 74 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 74 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 74 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 74 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 74 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 74 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 74 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 74 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 74 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 74 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 74 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 74 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 74 times.
✗ Branch 107 not taken.
|
74 | "[" << database_configuration->GetColumnNameOfTilesDataTableOrThrow(DatabaseConfiguration3D::kTilesDataTable_Column_BinDataId) << "] INTEGER(8)"; |
134 |
1/2✓ Branch 1 taken 74 times.
✗ Branch 2 not taken.
|
74 | string_stream << ");"; |
135 | |||
136 |
1/2✓ Branch 1 taken 74 times.
✗ Branch 2 not taken.
|
148 | return string_stream.str(); |
137 | 74 | } | |
138 | |||
139 | 184 | std::string DbCreator::GenerateSqlStatementForCreatingTilesInfoTable_Sqlite(const DatabaseConfiguration2D* database_configuration) | |
140 | { | ||
141 |
1/2✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
|
184 | stringstream string_stream; |
142 | // Notes: | ||
143 | // * "INTEGER PRIMARY KEY" makes the column-name an alias for the RowId-column | ||
144 | ✗ | string_stream << "CREATE TABLE[" << database_configuration->GetTableNameForTilesInfoOrThrow() << "](" << | |
145 | 184 | "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration2D::kTilesInfoTable_Column_Pk) << "] INTEGER PRIMARY KEY," << | |
146 | 184 | "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration2D::kTilesInfoTable_Column_TileX) << "] DOUBLE NOT NULL," << | |
147 | 184 | "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration2D::kTilesInfoTable_Column_TileY) << "] DOUBLE NOT NULL," << | |
148 | 184 | "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration2D::kTilesInfoTable_Column_TileW) << "] DOUBLE NOT NULL," << | |
149 | 184 | "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration2D::kTilesInfoTable_Column_TileH) << "] DOUBLE NOT NULL," << | |
150 |
28/56✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 184 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 184 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 184 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 184 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 184 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 184 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 184 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 184 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 184 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 184 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 184 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 184 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 184 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 184 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 184 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 184 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 184 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 184 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 184 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 184 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 184 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 184 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 184 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 184 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 184 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 184 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 184 times.
✗ Branch 83 not taken.
|
184 | "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration2D::kTilesInfoTable_Column_PyramidLevel) << "] INTEGER(1) NOT NULL,"; |
151 | |||
152 |
4/8✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 184 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 184 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 184 times.
✗ Branch 11 not taken.
|
184 | string_stream << "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration2D::kTilesInfoTable_Column_TileDataId) << "] INTEGER(8) NOT NULL"; |
153 | |||
154 |
2/2✓ Branch 6 taken 224 times.
✓ Branch 7 taken 184 times.
|
408 | for (const auto dim : database_configuration->GetTileDimensions()) |
155 | { | ||
156 |
1/2✓ Branch 2 taken 224 times.
✗ Branch 3 not taken.
|
224 | string colName = database_configuration->GetDimensionsColumnPrefix() + dim; |
157 |
3/6✓ Branch 1 taken 224 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 224 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 224 times.
✗ Branch 8 not taken.
|
224 | string_stream << ", [" << colName << "] INTEGER(4) NOT NULL"; |
158 | 224 | } | |
159 | |||
160 |
1/2✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
|
184 | string_stream << ");"; |
161 | |||
162 | // create the indices for the "dimension tables" | ||
163 |
2/2✓ Branch 5 taken 12 times.
✓ Branch 6 taken 184 times.
|
196 | for (const auto dim : database_configuration->GetIndexedTileDimensions()) |
164 | { | ||
165 | 12 | string_stream << "CREATE INDEX [" << database_configuration->GetIndexForDimensionColumnPrefix() << dim << "] ON " | |
166 | 12 | << "[" << database_configuration->GetTableNameForTilesInfoOrThrow() << "] " | |
167 |
12/24✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 12 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 12 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 12 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 12 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 12 times.
✗ Branch 21 not taken.
✓ Branch 23 taken 12 times.
✗ Branch 24 not taken.
✓ Branch 26 taken 12 times.
✗ Branch 27 not taken.
✓ Branch 30 taken 12 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 12 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 12 times.
✗ Branch 37 not taken.
|
12 | << "( [" << database_configuration->GetDimensionsColumnPrefix() << dim << "]);"; |
168 | } | ||
169 | |||
170 |
1/2✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
|
368 | return string_stream.str(); |
171 | 184 | } | |
172 | |||
173 | 74 | std::string DbCreator::GenerateSqlStatementForCreatingTilesInfoTable_Sqlite(const DatabaseConfiguration3D* database_configuration) | |
174 | { | ||
175 |
1/2✓ Branch 1 taken 74 times.
✗ Branch 2 not taken.
|
74 | stringstream string_stream; |
176 | // Notes: | ||
177 | // * "INTEGER PRIMARY KEY" makes the column-name an alias for the RowId-column | ||
178 | ✗ | string_stream << "CREATE TABLE[" << database_configuration->GetTableNameForTilesInfoOrThrow() << "](" << | |
179 | 74 | "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration3D::kTilesInfoTable_Column_Pk) << "] INTEGER PRIMARY KEY," << | |
180 | 74 | "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration3D::kTilesInfoTable_Column_TileX) << "] DOUBLE NOT NULL," << | |
181 | 74 | "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration3D::kTilesInfoTable_Column_TileY) << "] DOUBLE NOT NULL," << | |
182 | 74 | "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration3D::kTilesInfoTable_Column_TileZ) << "] DOUBLE NOT NULL," << | |
183 | 74 | "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration3D::kTilesInfoTable_Column_TileW) << "] DOUBLE NOT NULL," << | |
184 | 74 | "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration3D::kTilesInfoTable_Column_TileH) << "] DOUBLE NOT NULL," << | |
185 | 74 | "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration3D::kTilesInfoTable_Column_TileD) << "] DOUBLE NOT NULL," << | |
186 |
36/72✓ Branch 1 taken 74 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 74 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 74 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 74 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 74 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 74 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 74 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 74 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 74 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 74 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 74 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 74 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 74 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 74 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 74 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 74 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 74 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 74 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 74 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 74 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 74 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 74 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 74 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 74 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 74 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 74 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 74 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 74 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 74 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 74 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 74 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 74 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 74 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 74 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 74 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 74 times.
✗ Branch 107 not taken.
|
74 | "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration3D::kTilesInfoTable_Column_PyramidLevel) << "] INTEGER(1) NOT NULL,"; |
187 | |||
188 |
4/8✓ Branch 1 taken 74 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 74 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 74 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 74 times.
✗ Branch 11 not taken.
|
74 | string_stream << "[" << database_configuration->GetColumnNameOfTilesInfoTableOrThrow(DatabaseConfiguration3D::kTilesInfoTable_Column_TileDataId) << "] INTEGER(8) NOT NULL"; |
189 | |||
190 | // TODO(JBL): the code below can be refactored to be shared with the 2D case | ||
191 |
2/2✓ Branch 6 taken 84 times.
✓ Branch 7 taken 74 times.
|
158 | for (const auto dim : database_configuration->GetTileDimensions()) |
192 | { | ||
193 |
1/2✓ Branch 2 taken 84 times.
✗ Branch 3 not taken.
|
84 | string colName = database_configuration->GetDimensionsColumnPrefix() + dim; |
194 |
3/6✓ Branch 1 taken 84 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 84 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 84 times.
✗ Branch 8 not taken.
|
84 | string_stream << ", [" << colName << "] INTEGER(4) NOT NULL"; |
195 | 84 | } | |
196 | |||
197 |
1/2✓ Branch 1 taken 74 times.
✗ Branch 2 not taken.
|
74 | string_stream << ");"; |
198 | |||
199 | // create the indices for the "dimension tables" | ||
200 |
2/2✓ Branch 5 taken 8 times.
✓ Branch 6 taken 74 times.
|
82 | for (const auto dim : database_configuration->GetIndexedTileDimensions()) |
201 | { | ||
202 | 8 | string_stream << "CREATE INDEX [" << database_configuration->GetIndexForDimensionColumnPrefix() << dim << "] ON " | |
203 | 8 | << "[" << database_configuration->GetTableNameForTilesInfoOrThrow() << "] " | |
204 |
12/24✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 8 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 8 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 8 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 8 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 8 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 8 times.
✗ Branch 21 not taken.
✓ Branch 23 taken 8 times.
✗ Branch 24 not taken.
✓ Branch 26 taken 8 times.
✗ Branch 27 not taken.
✓ Branch 30 taken 8 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 8 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 8 times.
✗ Branch 37 not taken.
|
8 | << "( [" << database_configuration->GetDimensionsColumnPrefix() << dim << "]);"; |
205 | } | ||
206 | |||
207 |
1/2✓ Branch 1 taken 74 times.
✗ Branch 2 not taken.
|
148 | return string_stream.str(); |
208 | 74 | } | |
209 | |||
210 | 258 | std::string DbCreator::GenerateSqlStatementForCreatingGeneralTable_Sqlite(const DatabaseConfigurationCommon* database_configuration_common) | |
211 | { | ||
212 |
1/2✓ Branch 1 taken 258 times.
✗ Branch 2 not taken.
|
258 | stringstream string_stream; |
213 | ✗ | string_stream << "CREATE TABLE[" << database_configuration_common->GetTableNameForGeneralTableOrThrow() << "](" << | |
214 | 258 | "[" << database_configuration_common->GetColumnNameOfGeneralInfoTableOrThrow(DatabaseConfigurationCommon::kGeneralInfoTable_Column_Key) << "] TEXT(40) UNIQUE," << | |
215 |
12/24✓ Branch 1 taken 258 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 258 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 258 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 258 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 258 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 258 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 258 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 258 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 258 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 258 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 258 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 258 times.
✗ Branch 35 not taken.
|
258 | "[" << database_configuration_common->GetColumnNameOfGeneralInfoTableOrThrow(DatabaseConfigurationCommon::kGeneralInfoTable_Column_ValueString) << "] TEXT);"; |
216 | |||
217 |
1/2✓ Branch 1 taken 258 times.
✗ Branch 2 not taken.
|
516 | return string_stream.str(); |
218 | 258 | } | |
219 | |||
220 | 28 | void DbCreator::SetGeneralTableInfoForSpatialIndex(const DatabaseConfigurationCommon* database_configuration_common) | |
221 | { | ||
222 |
3/6✓ Branch 0 taken 28 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 28 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 28 times.
|
28 | Expects(database_configuration_common != nullptr && database_configuration_common->GetIsUsingSpatialIndex() == true); |
223 | |||
224 | // insert an item into the "General"-table where we notify about the name of the "tiles-spatial-table" | ||
225 |
3/6✓ Branch 1 taken 28 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 28 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 28 times.
✗ Branch 9 not taken.
|
56 | Utilities::WriteStringIntoPropertyBag( |
226 | this->db_connection_.get(), | ||
227 |
1/2✓ Branch 1 taken 28 times.
✗ Branch 2 not taken.
|
56 | database_configuration_common->GetTableNameForGeneralTableOrThrow(), |
228 |
1/2✓ Branch 1 taken 28 times.
✗ Branch 2 not taken.
|
56 | database_configuration_common->GetColumnNameOfGeneralInfoTableOrThrow(DatabaseConfigurationCommon::kGeneralInfoTable_Column_Key), |
229 |
1/2✓ Branch 1 taken 28 times.
✗ Branch 2 not taken.
|
56 | database_configuration_common->GetColumnNameOfGeneralInfoTableOrThrow(DatabaseConfigurationCommon::kGeneralInfoTable_Column_ValueString), |
230 | DbConstants::GetGeneralTable_ItemKey(GeneralTableItems::kSpatialIndexTable), | ||
231 |
1/2✓ Branch 1 taken 28 times.
✗ Branch 2 not taken.
|
56 | database_configuration_common->GetTableNameForTilesSpatialIndexTableOrThrow()); |
232 | 28 | } | |
233 | |||
234 | 258 | std::string DbCreator::GenerateSqlStatementForFillingGeneralTable_Sqlite(const DatabaseConfigurationCommon* database_configuration_common) | |
235 | { | ||
236 |
1/2✓ Branch 1 taken 258 times.
✗ Branch 2 not taken.
|
258 | stringstream string_stream; |
237 | ✗ | string_stream << "INSERT INTO [" << database_configuration_common->GetTableNameForGeneralTableOrThrow() << "]" << | |
238 | 258 | "([" << database_configuration_common->GetColumnNameOfGeneralInfoTableOrThrow(DatabaseConfigurationCommon::kGeneralInfoTable_Column_Key) << "], " << | |
239 | 258 | "[" << database_configuration_common->GetColumnNameOfGeneralInfoTableOrThrow(DatabaseConfigurationCommon::kGeneralInfoTable_Column_ValueString) << "])" << | |
240 | " VALUES('" << DbConstants::GetGeneralTable_ItemKey(GeneralTableItems::kVersion) << "','" << "0.0.1-alpha" << "')," << | ||
241 | 258 | "('" << DbConstants::GetGeneralTable_ItemKey(GeneralTableItems::kTilesDataTable) << "','" << database_configuration_common->GetTableNameForTilesDataOrThrow() << "')," << | |
242 | 258 | "('" << DbConstants::GetGeneralTable_ItemKey(GeneralTableItems::kTilesInfoTable) << "','" << database_configuration_common->GetTableNameForTilesInfoOrThrow() << "')," << | |
243 | 258 | "('" << DbConstants::GetGeneralTable_ItemKey(GeneralTableItems::kMetadataTable) << "','" << database_configuration_common->GetTableNameForMetadataTableOrThrow() << "')," << | |
244 |
47/94✓ Branch 1 taken 258 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 258 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 258 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 258 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 258 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 258 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 258 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 258 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 258 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 258 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 258 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 258 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 258 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 258 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 258 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 258 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 258 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 258 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 258 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 258 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 258 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 258 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 258 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 258 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 258 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 258 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 258 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 258 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 258 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 258 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 258 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 258 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 258 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 258 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 258 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 258 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 258 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 258 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 258 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 258 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 258 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 258 times.
✗ Branch 125 not taken.
✓ Branch 127 taken 258 times.
✗ Branch 128 not taken.
✓ Branch 130 taken 258 times.
✗ Branch 131 not taken.
✓ Branch 133 taken 258 times.
✗ Branch 134 not taken.
✓ Branch 136 taken 258 times.
✗ Branch 137 not taken.
✓ Branch 139 taken 258 times.
✗ Branch 140 not taken.
|
258 | "('" << DbConstants::GetGeneralTable_ItemKey(GeneralTableItems::kDocType) << "','" << DbUtilities::GetDocTypeValueForDocumentType(database_configuration_common->GetDocumentType()) << "');"; |
245 | |||
246 |
1/2✓ Branch 1 taken 258 times.
✗ Branch 2 not taken.
|
516 | return string_stream.str(); |
247 | 258 | } | |
248 | |||
249 | 184 | void DbCreator::Initialize2dConfigurationFromCreateOptions(DatabaseConfiguration2D* database_configuration, const imgdoc2::ICreateOptions* create_options) | |
250 | { | ||
251 | 184 | database_configuration->SetDimensionColumnPrefix(DbConstants::kDimensionColumnPrefix_Default/*"Dim_"*/); | |
252 | 184 | database_configuration->SetIndexForDimensionColumnPrefix(DbConstants::kIndexForDimensionColumnPrefix_Default/*"IndexForDim_"*/); | |
253 | 184 | database_configuration->SetTableName(DatabaseConfigurationCommon::TableTypeCommon::GeneralInfo, DbConstants::kGeneralTable_Name/*"GENERAL"*/); | |
254 | 184 | database_configuration->SetTableName(DatabaseConfigurationCommon::TableTypeCommon::TilesData, DbConstants::kTilesDataTable_DefaultName/*"TILESDATA"*/); | |
255 | 184 | database_configuration->SetTableName(DatabaseConfigurationCommon::TableTypeCommon::TilesInfo, DbConstants::kTilesInfoTable_DefaultName/*"TILESINFO"*/); | |
256 | 184 | database_configuration->SetTableName(DatabaseConfigurationCommon::TableTypeCommon::Metadata, DbConstants::kMetadataTable_DefaultName); | |
257 | 184 | database_configuration->SetDefaultColumnNamesForMetadataTable();// TODO(JBl): should we make the metadata-table optional? | |
258 | 184 | database_configuration->SetDefaultColumnNamesForTilesDataTable(); | |
259 | 184 | database_configuration->SetDefaultColumnNamesForTilesInfoTable(); | |
260 | 184 | database_configuration->SetTileDimensions(create_options->GetDimensions().cbegin(), create_options->GetDimensions().cend()); | |
261 | 184 | database_configuration->SetIndexedTileDimensions(create_options->GetIndexedDimensions().cbegin(), create_options->GetIndexedDimensions().cend()); | |
262 | |||
263 |
2/2✓ Branch 1 taken 8 times.
✓ Branch 2 taken 176 times.
|
184 | if (create_options->GetUseSpatialIndex()) |
264 | { | ||
265 | 8 | database_configuration->SetTableName(DatabaseConfigurationCommon::TableTypeCommon::TilesSpatialIndex, DbConstants::kTilesSpatialIndexTable_DefaultName/*"TILESSPATIALINDEX"*/); | |
266 | 8 | database_configuration->SetColumnNameForTilesSpatialIndexTable(DatabaseConfiguration2D::kTilesSpatialIndexTable_Column_Pk, DbConstants::kSqliteSpatialIndexTable_Column_Pk_DefaultName/*"id"*/); | |
267 | 8 | database_configuration->SetColumnNameForTilesSpatialIndexTable(DatabaseConfiguration2D::kTilesSpatialIndexTable_Column_MinX, DbConstants::kSqliteSpatialIndexTable_Column_minX_DefaultName /*"minX"*/); | |
268 | 8 | database_configuration->SetColumnNameForTilesSpatialIndexTable(DatabaseConfiguration2D::kTilesSpatialIndexTable_Column_MaxX, DbConstants::kSqliteSpatialIndexTable_Column_maxX_DefaultName /*"maxX"*/); | |
269 | 8 | database_configuration->SetColumnNameForTilesSpatialIndexTable(DatabaseConfiguration2D::kTilesSpatialIndexTable_Column_MinY, DbConstants::kSqliteSpatialIndexTable_Column_minY_DefaultName /*"minY"*/); | |
270 | 8 | database_configuration->SetColumnNameForTilesSpatialIndexTable(DatabaseConfiguration2D::kTilesSpatialIndexTable_Column_MaxY, DbConstants::kSqliteSpatialIndexTable_Column_maxY_DefaultName /*"maxY"*/); | |
271 | } | ||
272 | |||
273 |
2/2✓ Branch 1 taken 38 times.
✓ Branch 2 taken 146 times.
|
184 | if (create_options->GetCreateBlobTable()) |
274 | { | ||
275 | 38 | database_configuration->SetTableName(DatabaseConfigurationCommon::TableTypeCommon::Blobs, DbConstants::kBlobTable_DefaultName); | |
276 | 38 | database_configuration->SetColumnNameForBlobTable(DatabaseConfiguration2D::kBlobTable_Column_Pk, DbConstants::kBlobTable_Column_Pk_DefaultName); | |
277 | 38 | database_configuration->SetColumnNameForBlobTable(DatabaseConfiguration2D::kBlobTable_Column_Data, DbConstants::kBlobTable_Column_Data_DefaultName); | |
278 | } | ||
279 | 184 | } | |
280 | |||
281 | 74 | void DbCreator::Initialize3dConfigurationFromCreateOptions(DatabaseConfiguration3D* database_configuration, const imgdoc2::ICreateOptions* create_options) | |
282 | { | ||
283 | 74 | database_configuration->SetDimensionColumnPrefix(DbConstants::kDimensionColumnPrefix_Default/*"Dim_"*/); | |
284 | 74 | database_configuration->SetIndexForDimensionColumnPrefix(DbConstants::kIndexForDimensionColumnPrefix_Default/*"IndexForDim_"*/); | |
285 | 74 | database_configuration->SetTableName(DatabaseConfigurationCommon::TableTypeCommon::GeneralInfo, DbConstants::kGeneralTable_Name/*"GENERAL"*/); | |
286 | 74 | database_configuration->SetTableName(DatabaseConfigurationCommon::TableTypeCommon::TilesData, DbConstants::kTilesDataTable_DefaultName/*"TILESDATA"*/); | |
287 | 74 | database_configuration->SetTableName(DatabaseConfigurationCommon::TableTypeCommon::TilesInfo, DbConstants::kTilesInfoTable_DefaultName/*"TILESINFO"*/); | |
288 | 74 | database_configuration->SetTableName(DatabaseConfigurationCommon::TableTypeCommon::Metadata, DbConstants::kMetadataTable_DefaultName); | |
289 | 74 | database_configuration->SetDefaultColumnNamesForMetadataTable();// TODO(JBl): should we make the metadata-table optional? | |
290 | 74 | database_configuration->SetDefaultColumnNamesForTilesDataTable(); | |
291 | |||
292 | 74 | database_configuration->SetDefaultColumnNamesForTilesInfoTable(); | |
293 | 74 | database_configuration->SetTileDimensions(create_options->GetDimensions().cbegin(), create_options->GetDimensions().cend()); | |
294 | 74 | database_configuration->SetIndexedTileDimensions(create_options->GetIndexedDimensions().cbegin(), create_options->GetIndexedDimensions().cend()); | |
295 | |||
296 |
2/2✓ Branch 1 taken 20 times.
✓ Branch 2 taken 54 times.
|
74 | if (create_options->GetUseSpatialIndex()) |
297 | { | ||
298 | 20 | database_configuration->SetTableName(DatabaseConfigurationCommon::TableTypeCommon::TilesSpatialIndex, DbConstants::kTilesSpatialIndexTable_DefaultName/*"TILESSPATIALINDEX"*/); | |
299 | 20 | database_configuration->SetColumnNameForTilesSpatialIndexTable(DatabaseConfiguration3D::kTilesSpatialIndexTable_Column_Pk, DbConstants::kSqliteSpatialIndexTable_Column_Pk_DefaultName/*"id"*/); | |
300 | 20 | database_configuration->SetColumnNameForTilesSpatialIndexTable(DatabaseConfiguration3D::kTilesSpatialIndexTable_Column_MinX, DbConstants::kSqliteSpatialIndexTable_Column_minX_DefaultName /*"minX"*/); | |
301 | 20 | database_configuration->SetColumnNameForTilesSpatialIndexTable(DatabaseConfiguration3D::kTilesSpatialIndexTable_Column_MaxX, DbConstants::kSqliteSpatialIndexTable_Column_maxX_DefaultName /*"maxX"*/); | |
302 | 20 | database_configuration->SetColumnNameForTilesSpatialIndexTable(DatabaseConfiguration3D::kTilesSpatialIndexTable_Column_MinY, DbConstants::kSqliteSpatialIndexTable_Column_minY_DefaultName /*"minY"*/); | |
303 | 20 | database_configuration->SetColumnNameForTilesSpatialIndexTable(DatabaseConfiguration3D::kTilesSpatialIndexTable_Column_MaxY, DbConstants::kSqliteSpatialIndexTable_Column_maxY_DefaultName /*"maxY"*/); | |
304 | 20 | database_configuration->SetColumnNameForTilesSpatialIndexTable(DatabaseConfiguration3D::kTilesSpatialIndexTable_Column_MinZ, DbConstants::kSqliteSpatialIndexTable_Column_minZ_DefaultName /*"minZ"*/); | |
305 | 20 | database_configuration->SetColumnNameForTilesSpatialIndexTable(DatabaseConfiguration3D::kTilesSpatialIndexTable_Column_MaxZ, DbConstants::kSqliteSpatialIndexTable_Column_maxZ_DefaultName /*"maxZ"*/); | |
306 | } | ||
307 | |||
308 |
2/2✓ Branch 1 taken 48 times.
✓ Branch 2 taken 26 times.
|
74 | if (create_options->GetCreateBlobTable()) |
309 | { | ||
310 | 48 | database_configuration->SetTableName(DatabaseConfigurationCommon::TableTypeCommon::Blobs, DbConstants::kBlobTable_DefaultName); | |
311 | 48 | database_configuration->SetColumnNameForBlobTable(DatabaseConfiguration2D::kBlobTable_Column_Pk, DbConstants::kBlobTable_Column_Pk_DefaultName); | |
312 | 48 | database_configuration->SetColumnNameForBlobTable(DatabaseConfiguration2D::kBlobTable_Column_Data, DbConstants::kBlobTable_Column_Data_DefaultName); | |
313 | } | ||
314 | 74 | } | |
315 | |||
316 | 8 | std::string DbCreator::GenerateSqlStatementForCreatingSpatialTilesIndex_Sqlite(const DatabaseConfiguration2D* database_configuration) | |
317 | { | ||
318 |
4/8✓ Branch 0 taken 8 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 8 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 8 times.
|
8 | Expects(database_configuration != nullptr && database_configuration->GetIsUsingSpatialIndex() == true); |
319 | |||
320 |
1/2✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
|
8 | auto string_stream = ostringstream(); |
321 | ✗ | string_stream << "CREATE VIRTUAL TABLE " << database_configuration->GetTableNameForTilesSpatialIndexTableOrThrow() << " USING rtree(" << | |
322 | 8 | database_configuration->GetColumnNameOfTilesSpatialIndexTableOrThrow(DatabaseConfiguration2D::kTilesSpatialIndexTable_Column_Pk) << "," << // Integer primary key | |
323 | 8 | database_configuration->GetColumnNameOfTilesSpatialIndexTableOrThrow(DatabaseConfiguration2D::kTilesSpatialIndexTable_Column_MinX) << "," << // Minimum X coordinate" | |
324 | 8 | database_configuration->GetColumnNameOfTilesSpatialIndexTableOrThrow(DatabaseConfiguration2D::kTilesSpatialIndexTable_Column_MaxX) << "," << // Maximum X coordinate" | |
325 | 8 | database_configuration->GetColumnNameOfTilesSpatialIndexTableOrThrow(DatabaseConfiguration2D::kTilesSpatialIndexTable_Column_MinY) << "," << // Minimum Y coordinate" | |
326 |
19/38✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 8 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 8 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 8 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 8 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 8 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 8 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 8 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 8 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 8 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 8 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 8 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 8 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 8 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 8 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 8 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 8 times.
✗ Branch 56 not taken.
|
8 | database_configuration->GetColumnNameOfTilesSpatialIndexTableOrThrow(DatabaseConfiguration2D::kTilesSpatialIndexTable_Column_MaxY) << ");"; // Maximum Y coordinate" |
327 |
1/2✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
|
16 | return string_stream.str(); |
328 | 8 | } | |
329 | |||
330 | 20 | std::string DbCreator::GenerateSqlStatementForCreatingSpatialTilesIndex_Sqlite(const DatabaseConfiguration3D* database_configuration) | |
331 | { | ||
332 |
4/8✓ Branch 0 taken 20 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 20 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 20 times.
|
20 | Expects(database_configuration != nullptr && database_configuration->GetIsUsingSpatialIndex() == true); |
333 | |||
334 |
1/2✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
|
20 | ostringstream string_stream; |
335 | ✗ | string_stream << "CREATE VIRTUAL TABLE " << database_configuration->GetTableNameForTilesSpatialIndexTableOrThrow() << " USING rtree(" << | |
336 | 20 | database_configuration->GetColumnNameOfTilesSpatialIndexTableOrThrow(DatabaseConfiguration3D::kTilesSpatialIndexTable_Column_Pk) << "," << // Integer primary key | |
337 | 20 | database_configuration->GetColumnNameOfTilesSpatialIndexTableOrThrow(DatabaseConfiguration3D::kTilesSpatialIndexTable_Column_MinX) << "," << // Minimum X coordinate" | |
338 | 20 | database_configuration->GetColumnNameOfTilesSpatialIndexTableOrThrow(DatabaseConfiguration3D::kTilesSpatialIndexTable_Column_MaxX) << "," << // Maximum X coordinate" | |
339 | 20 | database_configuration->GetColumnNameOfTilesSpatialIndexTableOrThrow(DatabaseConfiguration3D::kTilesSpatialIndexTable_Column_MinY) << "," << // Minimum Y coordinate" | |
340 | 20 | database_configuration->GetColumnNameOfTilesSpatialIndexTableOrThrow(DatabaseConfiguration3D::kTilesSpatialIndexTable_Column_MaxY) << "," << // Maximum Y coordinate" | |
341 | 20 | database_configuration->GetColumnNameOfTilesSpatialIndexTableOrThrow(DatabaseConfiguration3D::kTilesSpatialIndexTable_Column_MinZ) << "," << // Minimum Z coordinate" | |
342 |
25/50✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 20 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 20 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 20 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 20 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 20 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 20 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 20 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 20 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 20 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 20 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 20 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 20 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 20 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 20 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 20 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 20 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 20 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 20 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 20 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 20 times.
✗ Branch 74 not taken.
|
20 | database_configuration->GetColumnNameOfTilesSpatialIndexTableOrThrow(DatabaseConfiguration3D::kTilesSpatialIndexTable_Column_MaxZ) << ");"; // Maximum Z coordinate" |
343 |
1/2✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
|
40 | return string_stream.str(); |
344 | 20 | } | |
345 | |||
346 | 38 | std::string DbCreator::GenerateSqlStatementForCreatingBlobTable_Sqlite(const DatabaseConfiguration2D* database_configuration) | |
347 | { | ||
348 |
4/8✓ Branch 0 taken 38 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 38 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 38 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 38 times.
|
38 | Expects(database_configuration != nullptr && database_configuration->GetHasBlobsTable() == true); |
349 | |||
350 |
1/2✓ Branch 1 taken 38 times.
✗ Branch 2 not taken.
|
38 | ostringstream string_stream; |
351 | ✗ | string_stream << "CREATE TABLE [" << database_configuration->GetTableNameForBlobTableOrThrow() << "] (" << | |
352 | 38 | "[" << database_configuration->GetColumnNameOfBlobTableOrThrow(DatabaseConfiguration2D::kBlobTable_Column_Pk) << "] INTEGER PRIMARY KEY," << | |
353 |
12/24✓ Branch 1 taken 38 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 38 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 38 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 38 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 38 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 38 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 38 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 38 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 38 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 38 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 38 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 38 times.
✗ Branch 35 not taken.
|
38 | "[" << database_configuration->GetColumnNameOfBlobTableOrThrow(DatabaseConfiguration2D::kBlobTable_Column_Data) << "] BLOB );"; |
354 | |||
355 |
1/2✓ Branch 1 taken 38 times.
✗ Branch 2 not taken.
|
76 | return string_stream.str(); |
356 | 38 | } | |
357 | |||
358 | 48 | std::string DbCreator::GenerateSqlStatementForCreatingBlobTable_Sqlite(const DatabaseConfiguration3D* database_configuration) | |
359 | { | ||
360 |
4/8✓ Branch 0 taken 48 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 48 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 48 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 48 times.
|
48 | Expects(database_configuration != nullptr && database_configuration->GetHasBlobsTable() == true); |
361 | |||
362 |
1/2✓ Branch 1 taken 48 times.
✗ Branch 2 not taken.
|
48 | ostringstream string_stream; |
363 | ✗ | string_stream << "CREATE TABLE [" << database_configuration->GetTableNameForBlobTableOrThrow() << "] (" << | |
364 | 48 | "[" << database_configuration->GetColumnNameOfBlobTableOrThrow(DatabaseConfiguration3D::kBlobTable_Column_Pk) << "] INTEGER PRIMARY KEY," << | |
365 |
12/24✓ Branch 1 taken 48 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 48 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 48 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 48 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 48 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 48 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 48 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 48 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 48 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 48 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 48 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 48 times.
✗ Branch 35 not taken.
|
48 | "[" << database_configuration->GetColumnNameOfBlobTableOrThrow(DatabaseConfiguration3D::kBlobTable_Column_Data) << "] BLOB );"; |
366 | |||
367 |
1/2✓ Branch 1 taken 48 times.
✗ Branch 2 not taken.
|
96 | return string_stream.str(); |
368 | 48 | } | |
369 | |||
370 | 86 | void DbCreator::SetBlobTableNameInGeneralTable(const DatabaseConfigurationCommon* database_configuration_common) | |
371 | { | ||
372 |
1/2✓ Branch 1 taken 86 times.
✗ Branch 2 not taken.
|
86 | ostringstream string_stream; |
373 | ✗ | string_stream << "INSERT INTO [" << database_configuration_common->GetTableNameForGeneralTableOrThrow() << "]" << | |
374 | 86 | "([" << database_configuration_common->GetColumnNameOfGeneralInfoTableOrThrow(DatabaseConfigurationCommon::kGeneralInfoTable_Column_Key) << "], " << | |
375 | 86 | "[" << database_configuration_common->GetColumnNameOfGeneralInfoTableOrThrow(DatabaseConfigurationCommon::kGeneralInfoTable_Column_ValueString) << "])" << | |
376 |
18/36✓ Branch 1 taken 86 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 86 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 86 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 86 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 86 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 86 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 86 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 86 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 86 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 86 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 86 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 86 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 86 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 86 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 86 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 86 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 86 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 86 times.
✗ Branch 53 not taken.
|
86 | " VALUES('" << "BlobTable" << "','" << database_configuration_common->GetTableNameForBlobTableOrThrow() << "');"; |
377 |
2/4✓ Branch 2 taken 86 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 86 times.
✗ Branch 6 not taken.
|
86 | this->db_connection_->Execute(string_stream.str()); |
378 | 86 | } | |
379 | |||
380 | 258 | /*static*/void DbCreator::ThrowIfDocumentTypeIsNotAsSpecified(const imgdoc2::ICreateOptions* create_options, imgdoc2::DocumentType document_type) | |
381 | { | ||
382 |
1/2✗ Branch 1 not taken.
✓ Branch 2 taken 258 times.
|
258 | if (create_options->GetDocumentType() != document_type) |
383 | { | ||
384 | ✗ | throw internal_error_exception("Document type is not as expected"); | |
385 | } | ||
386 | 258 | } | |
387 | |||
388 | 258 | std::string DbCreator::GenerateSqlStatementForCreatingMetadataTable_Sqlite(const DatabaseConfigurationCommon* database_configuration_common) | |
389 | { | ||
390 |
1/2✓ Branch 1 taken 258 times.
✗ Branch 2 not taken.
|
258 | ostringstream string_stream; |
391 | ✗ | string_stream << "CREATE TABLE [" << database_configuration_common->GetTableNameForMetadataTableOrThrow() << "] (" << | |
392 | 258 | "[" << database_configuration_common->GetColumnNameOfMetadataTableOrThrow(DatabaseConfigurationCommon::kMetadataTable_Column_Pk) << "] INTEGER PRIMARY KEY," << | |
393 | 258 | "[" << database_configuration_common->GetColumnNameOfMetadataTableOrThrow(DatabaseConfigurationCommon::kMetadataTable_Column_Name) << "] TEXT NOT NULL," << | |
394 | 258 | "[" << database_configuration_common->GetColumnNameOfMetadataTableOrThrow(DatabaseConfigurationCommon::kMetadataTable_Column_AncestorId) << "] INTEGER," << | |
395 | 258 | "[" << database_configuration_common->GetColumnNameOfMetadataTableOrThrow(DatabaseConfigurationCommon::kMetadataTable_Column_TypeDiscriminator) << "] INTEGER," << | |
396 | 258 | "[" << database_configuration_common->GetColumnNameOfMetadataTableOrThrow(DatabaseConfigurationCommon::kMetadataTable_Column_ValueDouble) << "] REAL," << | |
397 | 258 | "[" << database_configuration_common->GetColumnNameOfMetadataTableOrThrow(DatabaseConfigurationCommon::kMetadataTable_Column_ValueInteger) << "] INTEGER," << | |
398 | 258 | "[" << database_configuration_common->GetColumnNameOfMetadataTableOrThrow(DatabaseConfigurationCommon::kMetadataTable_Column_ValueString) << "] TEXT," << | |
399 | 258 | "FOREIGN KEY(" << database_configuration_common->GetColumnNameOfMetadataTableOrThrow(DatabaseConfigurationCommon::kMetadataTable_Column_AncestorId) << ") REFERENCES " << | |
400 | 258 | database_configuration_common->GetTableNameForMetadataTableOrThrow() << "(" << database_configuration_common->GetColumnNameOfMetadataTableOrThrow(DatabaseConfigurationCommon::kMetadataTable_Column_Pk) << ")," | |
401 | 258 | "UNIQUE(" << database_configuration_common->GetColumnNameOfMetadataTableOrThrow(DatabaseConfigurationCommon::kMetadataTable_Column_Name) << "," << | |
402 |
49/98✓ Branch 1 taken 258 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 258 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 258 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 258 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 258 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 258 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 258 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 258 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 258 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 258 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 258 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 258 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 258 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 258 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 258 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 258 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 258 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 258 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 258 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 258 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 258 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 258 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 258 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 258 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 258 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 258 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 258 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 258 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 258 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 258 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 258 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 258 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 258 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 258 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 258 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 258 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 258 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 258 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 258 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 258 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 258 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 258 times.
✗ Branch 125 not taken.
✓ Branch 127 taken 258 times.
✗ Branch 128 not taken.
✓ Branch 130 taken 258 times.
✗ Branch 131 not taken.
✓ Branch 133 taken 258 times.
✗ Branch 134 not taken.
✓ Branch 136 taken 258 times.
✗ Branch 137 not taken.
✓ Branch 139 taken 258 times.
✗ Branch 140 not taken.
✓ Branch 142 taken 258 times.
✗ Branch 143 not taken.
✓ Branch 145 taken 258 times.
✗ Branch 146 not taken.
|
258 | database_configuration_common->GetColumnNameOfMetadataTableOrThrow(DatabaseConfigurationCommon::kMetadataTable_Column_AncestorId) << ") )" << ";"; |
403 | // the combination of Name and AncestorId must be unique, in other words, the names of items with the same ancestor must be unique | ||
404 | |||
405 |
1/2✓ Branch 1 taken 258 times.
✗ Branch 2 not taken.
|
516 | return string_stream.str(); |
406 | 258 | } | |
407 |