212: bump milli to 0.4.0 r=MarinPostma a=MarinPostma



Co-authored-by: marin postma <postma.marin@protonmail.com>
This commit is contained in:
bors[bot] 2021-06-16 15:42:34 +00:00 committed by GitHub
commit 2f2484e186
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 32 additions and 15 deletions

5
Cargo.lock generated
View File

@ -1707,10 +1707,9 @@ dependencies = [
[[package]]
name = "milli"
version = "0.3.1"
source = "git+https://github.com/meilisearch/milli.git?tag=v0.3.1#bc020317935da4ea08061b3d4518cbbd40184856"
version = "0.4.0"
source = "git+https://github.com/meilisearch/milli.git?tag=v0.4.0#3bd4cf94cc60733393b94021fca77eb100bfe17a"
dependencies = [
"anyhow",
"bstr",
"byteorder",
"chrono",

View File

@ -51,7 +51,7 @@ main_error = "0.1.0"
meilisearch-error = { path = "../meilisearch-error" }
meilisearch-tokenizer = { git = "https://github.com/meilisearch/Tokenizer.git", tag = "v0.2.2" }
memmap = "0.7.0"
milli = { git = "https://github.com/meilisearch/milli.git", tag = "v0.3.1" }
milli = { git = "https://github.com/meilisearch/milli.git", tag = "v0.4.0" }
mime = "0.3.16"
once_cell = "1.5.2"
oxidized-json-checker = "0.3.2"

View File

@ -369,7 +369,7 @@ fn parse_facets_array(
}
}
FilterCondition::from_array(txn, &index.0, ands)
Ok(FilterCondition::from_array(txn, &index.0, ands)?)
}
#[cfg(test)]

View File

@ -200,8 +200,11 @@ impl Index {
info!("performing document addition");
// Set the primary key if not set already, ignore if already set.
if let (None, Some(ref primary_key)) = (self.primary_key(txn)?, primary_key) {
self.put_primary_key(txn, primary_key)?;
if let (None, Some(primary_key)) = (self.primary_key(txn)?, primary_key) {
let mut builder = UpdateBuilder::new(0)
.settings(txn, &self);
builder.set_primary_key(primary_key.to_string());
builder.execute(|_, _| ())?;
}
let mut builder = update_builder.index_documents(txn, self);
@ -235,7 +238,7 @@ impl Index {
.commit()
.and(Ok(UpdateResult::Other))
.map_err(Into::into),
Err(e) => Err(e),
Err(e) => Err(e.into()),
}
}
@ -331,7 +334,7 @@ impl Index {
.commit()
.and(Ok(UpdateResult::DocumentDeletion { deleted }))
.map_err(Into::into),
Err(e) => Err(e),
Err(e) => Err(e.into()),
}
}
}

View File

@ -6,6 +6,7 @@ use async_stream::stream;
use futures::stream::StreamExt;
use heed::CompactionOption;
use log::debug;
use milli::update::UpdateBuilder;
use tokio::task::spawn_blocking;
use tokio::{fs, sync::mpsc};
use uuid::Uuid;
@ -258,12 +259,15 @@ impl<S: IndexStore + Sync + Send> IndexActor<S> {
.ok_or(IndexError::UnexistingIndex)?;
let result = spawn_blocking(move || match index_settings.primary_key {
Some(ref primary_key) => {
Some(primary_key) => {
let mut txn = index.write_txn()?;
if index.primary_key(&txn)?.is_some() {
return Err(IndexError::ExistingPrimaryKey);
}
index.put_primary_key(&mut txn, primary_key)?;
let mut builder = UpdateBuilder::new(0).settings(&mut txn, &index);
builder.set_primary_key(primary_key);
builder.execute(|_, _| ())
.map_err(|e| IndexError::Internal(e.to_string()))?;
let meta = IndexMeta::new_txn(&index, &txn)?;
txn.commit()?;
Ok(meta)
@ -333,7 +337,8 @@ impl<S: IndexStore + Sync + Send> IndexActor<S> {
Ok(IndexStats {
size: index.size(),
number_of_documents: index.number_of_documents(&rtxn)?,
number_of_documents: index.number_of_documents(&rtxn)
.map_err(|e| IndexError::Internal(e.to_string()))?,
is_indexing: None,
fields_distribution: index.fields_distribution(&rtxn)?,
})

View File

@ -41,8 +41,12 @@ impl IndexMeta {
}
fn new_txn(index: &Index, txn: &heed::RoTxn) -> IndexResult<Self> {
let created_at = index.created_at(&txn)?;
let updated_at = index.updated_at(&txn)?;
let created_at = index
.created_at(&txn)
.map_err(|e| IndexError::Internal(e.to_string()))?;
let updated_at = index
.updated_at(&txn)
.map_err(|e| IndexError::Internal(e.to_string()))?;
let primary_key = index.primary_key(&txn)?.map(String::from);
Ok(Self {
created_at,

View File

@ -2,6 +2,7 @@ use std::collections::HashMap;
use std::path::{Path, PathBuf};
use std::sync::Arc;
use milli::update::UpdateBuilder;
use tokio::fs;
use tokio::sync::RwLock;
use tokio::task::spawn_blocking;
@ -57,7 +58,12 @@ impl IndexStore for MapIndexStore {
let index = Index::open(path, index_size)?;
if let Some(primary_key) = primary_key {
let mut txn = index.write_txn()?;
index.put_primary_key(&mut txn, &primary_key)?;
let mut builder = UpdateBuilder::new(0).settings(&mut txn, &index);
builder.set_primary_key(primary_key);
builder.execute(|_, _| ())
.map_err(|e| IndexError::Internal(e.to_string()))?;
txn.commit()?;
}
Ok(index)