@@ -68,7 +68,7 @@ Rcpp::List allocate_out_list(OGRFeatureDefn *poFDefn, int n_features, bool int64
6868 attr_names[i] = poFieldDefn->GetNameRef ();
6969 domains[i] = NA_STRING;
7070#if GDAL_VERSION_NUM >= 3030000
71- if (poFieldDefn->GetDomainName () != " " )
71+ if (! poFieldDefn->GetDomainName (). empty () )
7272 domains[i] = poFieldDefn->GetDomainName ();
7373#endif
7474 }
@@ -652,24 +652,26 @@ Rcpp::List get_field_domains(OGRDataSource *poDS, Rcpp::CharacterVector fdn) {
652652 Rcpp::List fdi (3 );
653653 Rcpp::CharacterVector descr = Rcpp::wrap (d->GetDescription ());
654654 fdi[0 ] = descr;
655- fdi.attr (" names" ) = Rcpp::CharacterVector::create (" description" , " merge_sum" , " split_geom_ratio" );
656655 OGRFieldDomainMergePolicy mp = d->GetMergePolicy ();
657656 Rcpp::LogicalVector l (1 );
658- if (mp == OFDMP_DEFAULT_VALUE)
659- l[0 ] = NA_LOGICAL;
660- else if (mp == OFDMP_SUM)
661- l[0 ] = true ;
657+ l[0 ] = NA_LOGICAL;
658+ if (mp == OFDMP_SUM)
659+ l[0 ] = true ; // extensive
662660 else if (mp == OFDMP_GEOMETRY_WEIGHTED)
663- l[0 ] = false ;
661+ l[0 ] = false ; // intensive
662+ else if (mp != OFDMP_DEFAULT_VALUE)
663+ Rcpp::warning (" unknown value for GetMergePolicy()" );
664664 fdi[1 ] = l;
665665 OGRFieldDomainSplitPolicy sp = d->GetSplitPolicy ();
666- if (sp == OFDSP_DEFAULT_VALUE)
667- l[0 ] = NA_LOGICAL;
668- else if (sp == OFDSP_DUPLICATE)
669- l[0 ] = false ;
666+ l[0 ] = NA_LOGICAL;
667+ if (sp == OFDSP_DUPLICATE)
668+ l[0 ] = false ; // intensive
670669 else if (sp == OFDSP_GEOMETRY_RATIO)
671- l[0 ] = true ;
670+ l[0 ] = true ; // extensive
671+ else if (sp != OFDSP_DEFAULT_VALUE)
672+ Rcpp::warning (" unknown value for GetSplitPolicy()" );
672673 fdi[2 ] = l;
674+ fdi.attr (" names" ) = Rcpp::CharacterVector::create (" description" , " merge_sum" , " split_geom_ratio" );
673675 fd[i] = fdi;
674676 }
675677 }
0 commit comments