Below is the list of tables from the database along with their columns and datatype. Need to generate an accurate SQL query for the question.
Only use the columns present in the respective table. Only use the columns which are required to generate the SQL query. Only use table joins if required and not otherwise.

### Tables ###
TABLE: CREATE TABLE table_name_49 (year INTEGER, rank VARCHAR, points VARCHAR, team VARCHAR)

### Question ###
What is the earliest year with less than 45 points for Yamaha team in 21st rank?

### Accurate SQL ###

SELECT MIN(year) FROM table_name_49 WHERE points < 45 AND team = "yamaha" AND rank = "21st"