Skip to content

Commit 03a1142

Browse files
ldanilekConvex, Inc.
authored and
Convex, Inc.
committed
remove _modules.deleted field (#25043)
we have removed all documents for which `deleted` is true. clean up the field GitOrigin-RevId: 7195e013678db9627488482e108008b39fadf8cd
1 parent c896bb7 commit 03a1142

File tree

2 files changed

+6
-27
lines changed

2 files changed

+6
-27
lines changed

crates/model/src/modules/mod.rs

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,7 @@ impl<'a, RT: Runtime> ModuleModel<'a, RT> {
180180
let mut modules = Vec::new();
181181
while let Some(metadata_document) = query_stream.next(self.tx, None).await? {
182182
let metadata: ParsedDocument<ModuleMetadata> = metadata_document.try_into()?;
183-
if !metadata.deleted {
184-
modules.push(metadata);
185-
}
183+
modules.push(metadata);
186184
}
187185
Ok(modules)
188186
}
@@ -250,8 +248,7 @@ impl<'a, RT: Runtime> ModuleModel<'a, RT> {
250248
if path.is_system() && !(self.tx.identity().is_admin() || self.tx.identity().is_system()) {
251249
anyhow::bail!(unauthorized_error("get_module"))
252250
}
253-
let include_deleted = false;
254-
let module_metadata = match self.module_metadata(path, include_deleted).await? {
251+
let module_metadata = match self.module_metadata(path).await? {
255252
Some(r) => r,
256253
None => return Ok(None),
257254
};
@@ -279,19 +276,13 @@ impl<'a, RT: Runtime> ModuleModel<'a, RT> {
279276
path.is_deps() || analyze_result.is_some(),
280277
"AnalyzedModule is required for non-dependency modules"
281278
);
282-
// If there was a previously deleted document, it is important to replace
283-
// it instead of adding a new one, in order to have at most one document
284-
// for each path.
285-
let include_deleted = true;
286-
let (module_id, version) = match self.module_metadata(path.clone(), include_deleted).await?
287-
{
279+
let (module_id, version) = match self.module_metadata(path.clone()).await? {
288280
Some(module_metadata) => {
289281
let previous_version = module_metadata.latest_version;
290282
let latest_version = previous_version + 1;
291283
let new_metadata = ModuleMetadata {
292284
path,
293285
latest_version,
294-
deleted: false,
295286
};
296287
SystemMetadataModel::new(self.tx)
297288
.replace(module_metadata.id(), new_metadata.try_into()?)
@@ -313,7 +304,6 @@ impl<'a, RT: Runtime> ModuleModel<'a, RT> {
313304
let new_metadata = ModuleMetadata {
314305
path,
315306
latest_version: version,
316-
deleted: false,
317307
};
318308

319309
let document_id = SystemMetadataModel::new(self.tx)
@@ -357,8 +347,7 @@ impl<'a, RT: Runtime> ModuleModel<'a, RT> {
357347
if !(self.tx.identity().is_admin() || self.tx.identity().is_system()) {
358348
anyhow::bail!(unauthorized_error("delete_module"));
359349
}
360-
let include_deleted = false;
361-
if let Some(module_metadata) = self.module_metadata(path, include_deleted).await? {
350+
if let Some(module_metadata) = self.module_metadata(path).await? {
362351
let module_id = module_metadata.id();
363352
SystemMetadataModel::new(self.tx).delete(module_id).await?;
364353

@@ -377,7 +366,6 @@ impl<'a, RT: Runtime> ModuleModel<'a, RT> {
377366
async fn module_metadata(
378367
&mut self,
379368
path: CanonicalizedModulePath,
380-
include_deleted: bool,
381369
) -> anyhow::Result<Option<ParsedDocument<ModuleMetadata>>> {
382370
let index_range = IndexRange {
383371
index_name: MODULE_INDEX_BY_PATH.clone(),
@@ -394,9 +382,6 @@ impl<'a, RT: Runtime> ModuleModel<'a, RT> {
394382
Some(v) => v.try_into()?,
395383
None => return Ok(None),
396384
};
397-
if !include_deleted && module_document.deleted {
398-
return Ok(None);
399-
}
400385
Ok(Some(module_document))
401386
}
402387

crates/model/src/modules/types.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ pub struct ModuleMetadata {
2020
pub path: CanonicalizedModulePath,
2121
/// What is the latest version of the module?
2222
pub latest_version: ModuleVersion,
23-
/// Has the module been deleted?
24-
pub deleted: bool,
2523
}
2624

2725
impl TryFrom<ModuleMetadata> for ConvexObject {
@@ -31,7 +29,8 @@ impl TryFrom<ModuleMetadata> for ConvexObject {
3129
obj!(
3230
"path" => String::from(m.path),
3331
"latestVersion" => m.latest_version,
34-
"deleted" => m.deleted,
32+
// TODO(lee) remove once it's no longer expected on the read path.
33+
"deleted" => false,
3534
)
3635
}
3736
}
@@ -62,14 +61,9 @@ impl TryFrom<ConvexObject> for ModuleMetadata {
6261
Some(ConvexValue::Int64(i)) => i,
6362
v => anyhow::bail!("Invalid latest_version field for ModuleMetadata: {:?}", v),
6463
};
65-
let deleted = match fields.remove("deleted") {
66-
Some(ConvexValue::Boolean(s)) => s,
67-
v => anyhow::bail!("Invalid deleted field for ModuleMetadata: {:?}", v),
68-
};
6964
Ok(Self {
7065
path,
7166
latest_version,
72-
deleted,
7367
})
7468
}
7569
}

0 commit comments

Comments
 (0)