apache / apache/datafusion-sqlparser-rs
Expected end of statement, found: COMMENT while parsing MySQL `CREATE TABLE` statement
- Langage dominant
- Rust
- Étoiles
- 3.5k
- Forks
- 772
- Merge moyen
- 4 j 9 h
- PR mergées (30 j)
- 17
Description
Hi,
I'm using sqlparser = "0.38.0", trying to parse the below with
```
let result = Parser::parse_sql(dialect.as_ref(), &sql);
let ast: Vec = Vec::new();
match result {
Ok(value) => {
println!("Parse Ok");
let ast = value;
},
Err(err) => {
eprintln!("Error: {}", err);
std::process::exit(-1);
},
}
```
However it is failing with **sql parser error: Expected end of statement, found: COMMENT at Line: 1, Column 691**. Is there a way to ignore anything outside the parenthesis as that is irrelevant for my usecase however I suspect this is unintended behaviour?
```
CREATE TABLE `randoms_2` (
`first_name` varchar(64) NOT NULL,
`last_name` varchar(64) NOT NULL,
`home_phone` varchar(12) NOT NULL,
`email` varchar(64) NOT NULL,
`address` varchar(64) NOT NULL,
`city` varchar(32) NOT NULL,
`state` varchar(2) NOT NULL,
`zip` varchar(5) NOT NULL,
`date_of_birth` varchar(10) NOT NULL,
`ssn` varchar(9) NOT NULL,
`drivers_license` varchar(32) NOT NULL,
`drivers_license_state` varchar(2) NOT NULL,
`income_type` varchar(16) NOT NULL,
`account_type` varchar(16) NOT NULL,
`routing_number` varchar(32) NOT NULL,
`account_number` varchar(32) NOT NULL,
`bank_name` varchar(64) NOT NULL,
PRIMARY KEY (`ssn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='LOAD DATA LOCAL INFILE "random.csv" INTO TABLE randoms_2 COLUMNS TERMINATED BY '','' ENCLOSED BY ''"'' LINES TERMINATED BY ''\\r\\n'' IGNORE 1 LINES;';
```
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par le point d’entrée Parser::parse_sql et reproduisez l’exemple MySQL CREATE TABLE, en vous concentrant sur les clauses finales ENGINE, CHARSET et COMMENT. Déterminez le traitement prévu pour cette instruction valide et vérifiez que l’entrée signalée est analysée correctement, avec une couverture de régression pour la clause COMMENT finale.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- mysql, rust, sql
- Domaine
- compilers, databases
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100