@@ -1878,7 +1878,7 @@ async fn import_schema(
18781878
18791879 let installed_schema_variant_ids = vec ! [ ] ;
18801880 for variant_spec in & schema_spec. variants ( ) ? {
1881- let _variant = import_schema_variant (
1881+ let variant = import_schema_variant (
18821882 ctx,
18831883 change_set_id,
18841884 & mut schema,
@@ -1889,41 +1889,39 @@ async fn import_schema(
18891889 )
18901890 . await ?;
18911891
1892- // if let Some(variant) = variant {
1893- // installed_schema_variant_ids.push(*variant.id());
1894- //
1895- // if let Some(variant_spec_data) = variant_spec.data() {
1896- // let func_unique_id = variant_spec_data.func_unique_id().to_owned();
1897- //
1898- // set_default_schema_variant_id(
1899- // ctx,
1900- // change_set_pk,
1901- // &mut schema,
1902- // schema_spec
1903- // .data()
1904- // .as_ref()
1905- // .and_then(|data| data.default_schema_variant()),
1906- // variant_spec.unique_id(),
1907- // *variant.id(),
1908- // )
1909- // .await?;
1910- //
1911- // if let Thing::Func(asset_func) =
1912- // thing_map
1913- // .get(change_set_pk, &func_unique_id)
1914- // .ok_or(PkgError::MissingFuncUniqueId(func_unique_id.to_string()))?
1915- // {
1916- // create_schema_variant_definition(
1917- // ctx,
1918- // schema_spec.clone(),
1919- // installed_pkg_id,
1920- // *variant.id(),
1921- // asset_func,
1922- // )
1923- // .await?;
1924- // }
1925- // }
1926- // }
1892+ if let Some ( variant) = variant {
1893+ if let Some ( variant_spec_data) = variant_spec. data ( ) {
1894+ let _func_unique_id = variant_spec_data. func_unique_id ( ) . to_owned ( ) ;
1895+
1896+ set_default_schema_variant_id (
1897+ ctx,
1898+ change_set_id,
1899+ & mut schema,
1900+ schema_spec
1901+ . data ( )
1902+ . as_ref ( )
1903+ . and_then ( |data| data. default_schema_variant ( ) ) ,
1904+ variant_spec. unique_id ( ) ,
1905+ variant. id ( ) ,
1906+ )
1907+ . await ?;
1908+
1909+ // if let Thing::Func(asset_func) =
1910+ // thing_map
1911+ // .get(change_set_pk, &func_unique_id)
1912+ // .ok_or(PkgError::MissingFuncUniqueId(func_unique_id.to_string()))?
1913+ // {
1914+ // create_schema_variant_definition(
1915+ // ctx,
1916+ // schema_spec.clone(),
1917+ // installed_pkg_id,
1918+ // *variant.id(),
1919+ // asset_func,
1920+ // )
1921+ // .await?;
1922+ // }
1923+ }
1924+ }
19271925 }
19281926
19291927 Ok ( ( Some ( schema. id ( ) ) , installed_schema_variant_ids) )
@@ -1932,40 +1930,36 @@ async fn import_schema(
19321930 }
19331931}
19341932
1935- // async fn set_default_schema_variant_id(
1936- // ctx: &DalContext,
1937- // change_set_pk: Option<ChangeSetPk>,
1938- // schema: &mut Schema,
1939- // spec_default_unique_id: Option<&str>,
1940- // variant_unique_id: Option<&str>,
1941- // variant_id: SchemaVariantId,
1942- // ) -> PkgResult<()> {
1943- // match (change_set_pk, variant_unique_id, spec_default_unique_id) {
1944- // (None, _, _) | (Some(_), None, _) | (_, Some(_), None) => {
1945- // if schema.default_schema_variant_id().is_none() {
1946- // schema
1947- // .set_default_schema_variant_id(ctx, Some(variant_id))
1948- // .await?;
1949- // }
1950- // }
1951- // (Some(_), Some(variant_unique_id), Some(spec_default_unique_id)) => {
1952- // if variant_unique_id == spec_default_unique_id {
1953- // let current_default_variant_id = schema
1954- // .default_schema_variant_id()
1955- // .copied()
1956- // .unwrap_or(SchemaVariantId::NONE);
1957-
1958- // if variant_id != current_default_variant_id {
1959- // schema
1960- // .set_default_schema_variant_id(ctx, Some(variant_id))
1961- // .await?;
1962- // }
1963- // }
1964- // }
1965- // }
1933+ async fn set_default_schema_variant_id (
1934+ ctx : & DalContext ,
1935+ change_set_id : Option < ChangeSetId > ,
1936+ schema : & mut Schema ,
1937+ spec_default_unique_id : Option < & str > ,
1938+ variant_unique_id : Option < & str > ,
1939+ variant_id : SchemaVariantId ,
1940+ ) -> PkgResult < ( ) > {
1941+ match ( change_set_id, variant_unique_id, spec_default_unique_id) {
1942+ ( None , _, _) | ( Some ( _) , None , _) | ( _, Some ( _) , None ) => {
1943+ if schema. get_default_schema_variant ( ctx) . await ?. is_none ( ) {
1944+ schema. set_default_schema_variant ( ctx, variant_id) . await ?;
1945+ }
1946+ }
1947+ ( Some ( _) , Some ( variant_unique_id) , Some ( spec_default_unique_id) ) => {
1948+ if variant_unique_id == spec_default_unique_id {
1949+ let current_default_variant_id = schema
1950+ . get_default_schema_variant ( ctx)
1951+ . await ?
1952+ . unwrap_or ( SchemaVariantId :: NONE ) ;
19661953
1967- // Ok(())
1968- // }
1954+ if variant_id != current_default_variant_id {
1955+ schema. set_default_schema_variant ( ctx, variant_id) . await ?;
1956+ }
1957+ }
1958+ }
1959+ }
1960+
1961+ Ok ( ( ) )
1962+ }
19691963
19701964// async fn create_schema_variant_definition(
19711965// ctx: &DalContext,
0 commit comments