Voglio verificare la sintassi dei file contenenti query SQL prima che possano essere impegnati nel mio progetto CVS.controllo della sintassi postgresql senza eseguire la query
Per fare ciò, ho uno script commitinfo, ma ho difficoltà a scoprire se i comandi sql sono validi. psql
non sembra avere una modalità dryrun, e la costruzione del mio tester postgresql-dialact dalla grammatica (che è nella sorgente) sembra un lungo tratto.
Gli script possono contenere più query, pertanto non è possibile avvolgere uno EXPLAIN
.
Eventuali suggerimenti?
ho raccontato problema con la SP sul blocco PostgreSQL non convalidato, fino alla sua non chiamata – triclosan
@triclosan: si può essere interessati in ['plpgsql lint'] (https://github.com/okbob/plpgsql_lint) che risponde esattamente a questa scomposizione. Pavel Stěhule è lo sviluppatore principale. Vedi questo [post del blog] (http://okbob.blogspot.com/2011/07/plpgsql-lint.html). –
Non ho molta esperienza con postgres quindi questa è probabilmente una pessima soluzione alternativa non degna di una vera risposta, ma aggiungo semplicemente una linea di immondizia alla fine dello script che so causerà un errore. Se il primo errore che colpisce è la linea dei rifiuti, posso essere ragionevolmente sicuro che il resto dello script sia ok. A differenza di una transazione, conserva i valori di sequenza e, per gli script semplici, è più veloce e più facile che scaricare un'altra utility. –