infer primary key on sorted fields

This commit is contained in:
mpostma 2021-10-12 11:14:12 +02:00
parent 9a266a531b
commit 86ead92ed5

View File

@ -77,7 +77,9 @@ fn create_fields_mapping(
fn find_primary_key(index: &bimap::BiHashMap<u16, String>) -> Option<&str> { fn find_primary_key(index: &bimap::BiHashMap<u16, String>) -> Option<&str> {
index index
.right_values() .iter()
.sorted_by_key(|(k, _)| *k)
.map(|(_, v)| v)
.find(|v| v.to_lowercase().contains(DEFAULT_PRIMARY_KEY_NAME)) .find(|v| v.to_lowercase().contains(DEFAULT_PRIMARY_KEY_NAME))
.map(String::as_str) .map(String::as_str)
} }
@ -497,7 +499,6 @@ mod test {
use super::*; use super::*;
mod compute_primary_key { mod compute_primary_key {
use super::{compute_primary_key_pair, FieldsIdsMap}; use super::{compute_primary_key_pair, FieldsIdsMap};
#[test] #[test]
@ -538,7 +539,6 @@ mod test {
assert!(result.is_err()); assert!(result.is_err());
assert_eq!(fields_map.len(), 0); assert_eq!(fields_map.len(), 0);
} }
} }
mod primary_key_inference { mod primary_key_inference {