Combine created and added into date

This commit is contained in:
amab8901 2022-12-16 08:11:12 +01:00
parent d3eb8d2d5c
commit 5a0a0468df
3 changed files with 12 additions and 28 deletions

View File

@ -788,7 +788,7 @@ impl IndexScheduler {
let index = if must_create_index {
// create the index if it doesn't already exist
let wtxn = self.env.write_txn()?;
self.index_mapper.create_index(wtxn, index_uid, None, None)?
self.index_mapper.create_index(wtxn, index_uid, None)?
} else {
let rtxn = self.env.read_txn()?;
self.index_mapper.index(&rtxn, index_uid)?
@ -805,7 +805,7 @@ impl IndexScheduler {
if self.index_mapper.exists(&wtxn, &index_uid)? {
return Err(Error::IndexAlreadyExists(index_uid));
}
self.index_mapper.create_index(wtxn, &index_uid, None, None)?;
self.index_mapper.create_index(wtxn, &index_uid, None)?;
self.process_batch(Batch::IndexUpdate { index_uid, primary_key, task })
}

View File

@ -66,30 +66,18 @@ impl IndexMapper {
/// Create or open an index in the specified path.
/// The path *must* exists or an error will be thrown.
fn create_or_open_index(&self, path: &Path, created: Option<time::OffsetDateTime>, updated: Option<time::OffsetDateTime>) -> Result<Index> {
fn create_or_open_index(&self, path: &Path, date: Option<(time::OffsetDateTime, time::OffsetDateTime)>) -> Result<Index> {
let mut options = EnvOpenOptions::new();
options.map_size(clamp_to_page_size(self.index_size));
options.max_readers(1024);
let created_at;
if created == None {
created_at = time::OffsetDateTime::now_utc();
} else {
created_at = created.unwrap();
}
let (created, updated) = date.unwrap();
let updated_at;
if updated == None {
updated_at = time::OffsetDateTime::now_utc();
} else {
updated_at = updated.unwrap();
}
Ok(Index::new_with_creation_dates(options, path, created_at, updated_at)?)
Ok(Index::new_with_creation_dates(options, path, created, updated)?)
}
/// Get or create the index.
pub fn create_index(&self, mut wtxn: RwTxn, name: &str, created_at: Option<time::OffsetDateTime>, updated_at: Option<time::OffsetDateTime>) -> Result<Index> {
pub fn create_index(&self, mut wtxn: RwTxn, name: &str, date: Option<(time::OffsetDateTime, time::OffsetDateTime)>) -> Result<Index> {
match self.index(&wtxn, name) {
Ok(index) => {
wtxn.commit()?;
@ -102,9 +90,7 @@ impl IndexMapper {
let index_path = self.base_path.join(uuid.to_string());
fs::create_dir_all(&index_path)?;
//let created_at = Some(time::OffsetDateTime::now_utc());
//let updated_at = Some(time::OffsetDateTime::now_utc());
let index = self.create_or_open_index(&index_path, created_at, updated_at)?;
let index = self.create_or_open_index(&index_path, date)?;
wtxn.commit()?;
// TODO: it would be better to lazily create the index. But we need an Index::open function for milli.
@ -198,9 +184,8 @@ impl IndexMapper {
Entry::Vacant(entry) => {
let index_path = self.base_path.join(uuid.to_string());
let created_at = Some(time::OffsetDateTime::now_utc());
let updated_at = Some(time::OffsetDateTime::now_utc());
let index = self.create_or_open_index(&index_path, created_at, updated_at)?;
let date = Some(( time::OffsetDateTime::now_utc(), time::OffsetDateTime::now_utc() ));
let index = self.create_or_open_index(&index_path, date)?;
entry.insert(Available(index.clone()));
index
}

View File

@ -867,9 +867,8 @@ impl IndexScheduler {
/// Create a new index without any associated task.
pub fn create_raw_index(&self, name: &str) -> Result<Index> {
let wtxn = self.env.write_txn()?;
let created_at = Some(time::OffsetDateTime::now_utc());
let updated_at = Some(time::OffsetDateTime::now_utc());
let index = self.index_mapper.create_index(wtxn, name, created_at, updated_at)?;
let date = Some(( time::OffsetDateTime::now_utc(), time::OffsetDateTime::now_utc() ));
let index = self.index_mapper.create_index(wtxn, name, date)?;
Ok(index)
}