CMS 3D CMS Logo

IOVSchema.h
Go to the documentation of this file.
1 #ifndef CondCore_CondDB_IOVSchema_h
2 #define CondCore_CondDB_IOVSchema_h
3 
4 #include "DbCore.h"
5 #include "IDbSchema.h"
6 //
7 #include <boost/date_time/posix_time/posix_time.hpp>
8 
9 namespace cond {
10 
11  namespace persistency {
12 
21  conddb_column(INSERTION_TIME, boost::posix_time::ptime);
22  conddb_column(MODIFICATION_TIME, boost::posix_time::ptime);
23 
24  class Table : public ITagTable {
25  public:
26  explicit Table(coral::ISchema& schema);
27  ~Table() override {}
28  bool exists() override;
29  void create() override;
30  bool select(const std::string& name) override;
31  bool select(const std::string& name,
32  cond::TimeType& timeType,
33  std::string& objectType,
34  cond::SynchronizationType& synchronizationType,
35  cond::Time_t& endOfValidity,
37  cond::Time_t& lastValidatedTime) override;
38  bool getMetadata(const std::string& name,
39  std::string& description,
40  boost::posix_time::ptime& insertionTime,
41  boost::posix_time::ptime& modificationTime) override;
42  void insert(const std::string& name,
43  cond::TimeType timeType,
44  const std::string& objectType,
45  cond::SynchronizationType synchronizationType,
46  cond::Time_t endOfValidity,
47  const std::string& description,
48  cond::Time_t lastValidatedTime,
49  const boost::posix_time::ptime& insertionTime) override;
50  void update(const std::string& name,
51  cond::SynchronizationType synchronizationType,
52  cond::Time_t& endOfValidity,
53  const std::string& description,
54  cond::Time_t lastValidatedTime,
55  const boost::posix_time::ptime& updateTime) override;
56  void updateValidity(const std::string& name,
57  cond::Time_t lastValidatedTime,
58  const boost::posix_time::ptime& updateTime) override;
59  void setValidationMode() override {}
60 
61  private:
62  coral::ISchema& m_schema;
63  };
64  }
65 
66  conddb_table(PAYLOAD) {
67  static constexpr unsigned int PAYLOAD_HASH_SIZE = 40;
68 
69  conddb_column(HASH, std::string, PAYLOAD_HASH_SIZE);
74  conddb_column(INSERTION_TIME, boost::posix_time::ptime);
75 
76  class Table : public IPayloadTable {
77  public:
78  explicit Table(coral::ISchema& schema);
79  ~Table() override {}
80  bool exists() override;
81  void create() override;
82  bool select(const cond::Hash& payloadHash);
83  bool select(const cond::Hash& payloadHash,
84  std::string& objectType,
85  cond::Binary& payloadData,
86  cond::Binary& streamerInfoData) override;
87  bool getType(const cond::Hash& payloadHash, std::string& objectType) override;
88  bool insert(const cond::Hash& payloadHash,
89  const std::string& objectType,
90  const cond::Binary& payloadData,
91  const cond::Binary& streamerInfoData,
92  const boost::posix_time::ptime& insertionTime);
93  cond::Hash insertIfNew(const std::string& objectType,
94  const cond::Binary& payloadData,
95  const cond::Binary& streamerInfoData,
96  const boost::posix_time::ptime& insertionTime) override;
97 
98  private:
99  coral::ISchema& m_schema;
100  };
101  }
102 
107  conddb_column(INSERTION_TIME, boost::posix_time::ptime);
108 
109  struct SINCE_GROUP {
111  static constexpr size_t size = 0;
112  static std::string tableName() { return SINCE::tableName(); }
113  static std::string fullyQualifiedName() { return "MIN(" + SINCE::fullyQualifiedName() + ")"; }
114  static std::string group(unsigned long long groupSize) {
115  std::string sgroupSize = std::to_string(groupSize);
116  return "CAST(" + SINCE::fullyQualifiedName() + "/" + sgroupSize + " AS INT )*" + sgroupSize;
117  }
118  };
119 
120  struct SEQUENCE_SIZE {
121  typedef unsigned int type;
122  static constexpr size_t size = 0;
123  static std::string tableName() { return SINCE::tableName(); }
124  static std::string fullyQualifiedName() { return "COUNT(*)"; }
125  };
126 
127  struct MIN_SINCE {
129  static constexpr size_t size = 0;
130  static std::string tableName() { return SINCE::tableName(); }
131  static std::string fullyQualifiedName() { return "MIN(" + SINCE::fullyQualifiedName() + ")"; }
132  };
133 
134  struct MAX_SINCE {
136  static constexpr size_t size = 0;
137  static std::string tableName() { return SINCE::tableName(); }
138  static std::string fullyQualifiedName() { return "MAX(" + SINCE::fullyQualifiedName() + ")"; }
139  };
140 
141  class Table : public IIOVTable {
142  public:
143  explicit Table(coral::ISchema& schema);
144  ~Table() override {}
145  bool exists() override;
146  void create() override;
147  size_t getGroups(const std::string& tag,
148  const boost::posix_time::ptime& snapshotTime,
149  unsigned long long groupSize,
150  std::vector<cond::Time_t>& groups) override;
151  size_t select(const std::string& tag,
152  cond::Time_t lowerGroup,
153  cond::Time_t upperGroup,
154  const boost::posix_time::ptime& snapshotTime,
155  std::vector<std::tuple<cond::Time_t, cond::Hash> >& iovs) override;
156  bool getLastIov(const std::string& tag,
157  const boost::posix_time::ptime& snapshotTime,
159  cond::Hash& hash) override;
160  bool getSize(const std::string& tag, const boost::posix_time::ptime& snapshotTime, size_t& size) override;
161  bool getRange(const std::string& tag,
164  const boost::posix_time::ptime& snapshotTime,
165  std::vector<std::tuple<cond::Time_t, cond::Hash> >& iovs) override;
166  void insertOne(const std::string& tag,
167  cond::Time_t since,
168  cond::Hash payloadHash,
169  const boost::posix_time::ptime& insertTime) override;
170  void insertMany(
171  const std::string& tag,
172  const std::vector<std::tuple<cond::Time_t, cond::Hash, boost::posix_time::ptime> >& iovs) override;
173  void erase(const std::string& tag) override;
174 
175  private:
176  coral::ISchema& m_schema;
177  };
178  }
179 
180  conddb_table(TAG_LOG) {
182  conddb_column(EVENT_TIME, boost::posix_time::ptime);
188 
189  class Table : public ITagLogTable {
190  public:
191  explicit Table(coral::ISchema& schema);
192  ~Table() override {}
193  bool exists() override;
194  void create() override;
195  void insert(const std::string& tag,
196  const boost::posix_time::ptime& eventTime,
197  const std::string& userName,
198  const std::string& hostName,
199  const std::string& command,
200  const std::string& action,
201  const std::string& userText) override;
202 
203  private:
204  coral::ISchema& m_schema;
205  };
206  }
207 
208  class IOVSchema : public IIOVSchema {
209  public:
210  explicit IOVSchema(coral::ISchema& schema);
211  ~IOVSchema() override {}
212  bool exists() override;
213  bool create() override;
214  ITagTable& tagTable() override;
215  IIOVTable& iovTable() override;
216  ITagLogTable& tagLogTable() override;
217  IPayloadTable& payloadTable() override;
218 
219  private:
224  };
225 
226  } // namespace persistency
227 } // namespace cond
228 #endif
size
Write out results.
static std::string tableName()
Definition: IOVSchema.h:137
def create(alignables, pedeDump, additionalData, outputFile, config)
void setValidationMode() override
Definition: IOVSchema.h:59
static std::string tableName()
Definition: IOVSchema.h:130
#define conddb_column(...)
Definition: DbCore.h:75
PAYLOAD::Table m_payloadTable
Definition: IOVSchema.h:223
coral::ISchema & m_schema
Definition: IOVSchema.h:62
TimeType
Definition: Time.h:19
static std::string group(unsigned long long groupSize)
Definition: IOVSchema.h:114
coral::ISchema & m_schema
Definition: IOVSchema.h:176
unsigned long long Time_t
Definition: Time.h:14
#define conddb_table(NAME)
Definition: DbCore.h:48
std::string Hash
Definition: Types.h:43
#define end
Definition: vmac.h:39
bool insert(Storage &iStorage, ItemType *iItem, const IdTag &iIdTag)
Definition: HCMethods.h:50
static std::string fullyQualifiedName()
Definition: IOVSchema.h:138
static std::string tableName()
Definition: IOVSchema.h:112
static std::string tableName()
Definition: IOVSchema.h:123
TAG_LOG::Table m_tagLogTable
Definition: IOVSchema.h:222
static std::string fullyQualifiedName()
Definition: IOVSchema.h:113
static unsigned int PAYLOAD_HASH_SIZE
Definition: IOVSchema.h:67
static std::string fullyQualifiedName()
Definition: IOVSchema.h:124
select
when omitted electron plots will be filled w/o cut on electronId electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.5) ), when omitted electron plots will be filled w/o additional pre- selection of the electron candidates
list command
Definition: mps_check.py:25
Definition: plugin.cc:23
#define begin
Definition: vmac.h:32
#define update(a, b)
SynchronizationType
Definition: Types.h:27
#define constexpr
static std::string fullyQualifiedName()
Definition: IOVSchema.h:131