apache / apache/datafusion-sqlparser-rs

Expected end of statement, found: COMMENT while parsing MySQL `CREATE TABLE` statement

Aperta
#991 3 commenti 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
Rust
Stelle
3.5k
Fork
772
Merge medio
4g 9h
PR unite (30g)
17

Descrizione

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;';
```

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia dal punto di ingresso Parser::parse_sql e riproduci l’esempio MySQL CREATE TABLE, concentrandoti sulle clausole finali ENGINE, CHARSET e COMMENT. Determina la gestione prevista di questa istruzione valida e verifica che l’input segnalato venga analizzato correttamente, con una copertura di regressione per la clausola COMMENT finale.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
mysql, rust, sql
Ambito
compilers, databases
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.