person
14 person types: 7 a sibling also accepts, 4 of which it would misread, 8 that decompose into parts.
The 14 person types
Each type's first registry sample, against every sibling's rule
| Type | Sample | Also accepted by |
|---|---|---|
Gender gender · VARCHAR | Male | first_name; full_name; last_name; username → male |
First Name first_name · VARCHAR | John | full_name; last_name; username → john |
Gender Code gender_code · VARCHAR | M | first_name; full_name; last_name |
Last Name last_name · VARCHAR | Smith | first_name; full_name; username → smith |
Full Name full_name · VARCHAR | John Smith | first_name; last_name |
Password password · VARCHAR | aB3#xY9@mK2 | email → ab3#xy9@mk2 |
Username username · VARCHAR | john.smith | full_name |
Blood Type blood_type · VARCHAR | O+ | — |
Email Address email · VARCHAR | john.smith@example.com | — |
Email with Display Name email_display · VARCHAR | "John Doe" <john@example.com> | — |
Height height · DOUBLE | 180 cm | — |
Phone Number (E.164) phone_e164 · VARCHAR | +61412345678 | — |
Phone Number phone_number · VARCHAR | +1 (555) 123-4567 | — |
Weight weight · DOUBLE | 75 kg | — |
Which person type is it?
4 of 14 person types accept it, and read it 2 ways.
DuckDB cannot run one of these types' rules, so the box cannot say whether it accepts a value.
Gender, Gender Code and Password carry no pattern or format, so they have no rule to ask.
| Type | Reads it as |
|---|---|
First Name first_name | Male |
Full Name full_name | Male |
Last Name last_name | Male |
Username username | male |
Use it
CLI · DuckDB
$ printf '%s\n' 'Male' 'Female' > column.txt
$ finetype infer -f column.txt --mode column
SELECT ft_profile(v) FROM (VALUES ('Male'), ('Female')) t(v);After Female, 4 types remain: first_name, full_name, last_name, username.