sabato 17 ottobre 2026

Free PlyxSQL© - 1.0.0.112

SQLManagerMenu: corretti bug nella gestione dei progetti e migliorata la robustezza del motore SQL

Introduzione

Lo sviluppo di SQLManagerMenu prosegue con un nuovo ciclo di manutenzione tecnica dedicato alla stabilità dell'applicazione, alla correttezza della gestione dei progetti e all'affidabilità dell'elaborazione degli script SQL.

L'obiettivo è rendere sempre più solida un'applicazione che integra gestione delle connessioni, navigazione degli oggetti database, generazione DDL, Query Builder ed editor SQL, con particolare attenzione alle differenze sintattiche tra i principali database relazionali.

Le ultime modifiche si sono concentrate sulla gestione dello stato del progetto, sulla tokenizzazione degli identificatori SQL e sul rafforzamento dei controlli durante l'elaborazione del DDL.

1. Corretta la gestione delle modifiche al progetto

Uno dei problemi individuati riguardava il comportamento del sistema durante il cambio della scheda attiva.

In precedenza, la semplice selezione di una scheda poteva determinare la marcatura del progetto come modificato, anche in assenza di modifiche effettive al contenuto.

Questo comportamento poteva generare richieste di salvataggio superflue e rendere meno chiara la distinzione tra navigazione nell'interfaccia e modifica dei dati.

La gestione è stata corretta per evitare che il solo cambio di scheda provochi automaticamente la marcatura del progetto come modificato.

È stato inoltre corretto l'handler responsabile della notifica delle modifiche, che in precedenza ignorava il parametro booleano ricevuto e impostava sempre lo stato di modifica.

Questi interventi costituiscono un passo importante verso una gestione più coerente dello stato del progetto.

2. Migliorata la tokenizzazione degli identificatori SQL

Un'altra area interessata dalle correzioni è il tokenizer utilizzato durante l'analisi degli script DDL.

I diversi database utilizzano convenzioni differenti per delimitare gli identificatori. Alcuni esempi sono:

  • Virgolette doppie per gli identificatori delimitati.

  • Backtick in MySQL e MariaDB.

  • Parentesi quadre in SQL Server.

All'interno degli identificatori possono inoltre comparire caratteri di escape che devono essere interpretati correttamente.

Il tokenizer è stato aggiornato per gestire meglio gli identificatori delimitati e le rispettive sequenze di escape, riducendo il rischio di suddivisioni errate dei token durante l'analisi del codice SQL.

Questa correzione è particolarmente importante quando si lavora con nomi di tabelle, colonne o altri oggetti che contengono caratteri speciali.

3. Migliorata la gestione degli input incompleti

La gestione degli script incompleti è un aspetto fondamentale per un parser DDL affidabile.

Un identificatore privo del delimitatore finale o una stringa non terminata possono indicare che il codice è stato troncato oppure che contiene un errore sintattico.

Il lavoro sul tokenizer ha introdotto controlli più rigorosi su queste situazioni, con l'obiettivo di evitare che input incompleti vengano interpretati come token validi.

La corretta gestione di questi casi contribuisce a rendere più prevedibili le fasi successive di parsing e generazione DDL.

4. Rafforzati i test del generatore DDL

La manutenzione ha interessato anche la suite di test del generatore DDL.

Sono stati aggiunti o ampliati test relativi a diversi casi limite, tra cui:

  • Identificatori contenenti caratteri di escape.

  • Stringhe e identificatori non terminati.

  • Regole di quoting specifiche di PostgreSQL.

  • Commenti annidati.

  • Rilevamento dei segnaposto negli script.

L'ampliamento dei test permette di documentare meglio il comportamento atteso dei componenti e costituisce una base più solida per le future modifiche.

La presenza di nuovi test, tuttavia, non equivale automaticamente alla certificazione del loro superamento: la suite deve essere eseguita e verificata nell'ambiente di compilazione previsto.

5. Migliorati i controlli sui segnaposto DDL

Gli script generati possono contenere segnaposto temporanei, come TODO, oppure sezioni incomplete che devono essere completate prima dell'esecuzione.

Il sistema dispone di controlli dedicati a questi casi, utilizzati anche nei percorsi di esecuzione degli script.

L'obiettivo è evitare che codice incompleto venga trattato come SQL pronto per essere eseguito.

Particolare attenzione è stata dedicata alla necessità di distinguere il testo effettivo del codice dai contenuti presenti nelle stringhe e nei commenti.

Questa area rimane oggetto di ulteriori verifiche per garantire una gestione coerente delle diverse convenzioni lessicali dei database supportati.

6. Attenzione alla compatibilità tra dialetti SQL

La gestione multi-dialetto rimane uno degli aspetti tecnici più importanti di SQLManagerMenu.

Un'istruzione valida su un database potrebbe non essere supportata da un altro, oppure potrebbe richiedere una versione minima specifica del server.

Per questo motivo, la generazione DDL deve tenere conto non soltanto del tipo di database, ma anche delle sue caratteristiche e della versione effettiva.

Tra gli aspetti che richiedono particolare attenzione rientrano:

  • La sintassi per creare o modificare procedure, funzioni e trigger.

  • Le regole di quoting degli identificatori.

  • I delimitatori utilizzati negli script composti.

  • Le differenze tra le versioni dei singoli DBMS.

  • Le proprietà dello schema che non possono essere rappresentate direttamente nel modello interno.

L'obiettivo è evitare che il generatore produca script apparentemente corretti ma incompatibili con il database di destinazione.

#SQL #database #ETL #DataEngineering #plyxSQL #FireDAC #PGSOFT

Nessun commento:

Posta un commento