Il Trasformatore LimitRowsExamined

Il trasformatore è stato sviluppato per testare la funzionalità aggiunta nell'ambito del task MDEV-28: LIMIT ROWS EXAMINED clause to limit the number of rows examined during SELECT processing. Si usa nel solito modo, aggiungendo il suo nome alla lista --transformers.

Il trasformatore controlla se la query originale contiene già una clausola ROWS EXAMINED. In caso contrario, la aggiunge dopo la clausola LIMIT, oppure dopo la fine della query. In tutti i casi (anche se ROWS EXAMINED era già presente), il trasformatore restituisce la seguente sequenza di istruzioni:

  • FLUSH STATUS
  • <la query con ROWS EXAMINED>
  • <una query che somma le variabili di stato relativi alle righe esaminate>

Verifica che il risultato della query principale sia un sottoinsieme di quello della query originale. Controlla anche che la somma delle variabili di stato non sia maggiore del limite indicato dalla clausola ROWS EXAMINED, più un certo margine. Questo margine è configurato nel trasformatore.

Se il risultato della query trasformata non sembra è un sottoinsieme del risultato originale, viene restituito un STATUS_LENGTH_MISMATCH.

Se la somma delle variabili di stato è maggiore del massimo consentito, viene restituito un STATUS_REQUIREMENT_UNMET.

Nota: I valori di stato STATUS_REQUIREMENT_UNMET e STATUS_REQUIREMENT_UNMET_SELECT sono stati aggiunti in Constants.pm.

Il codice si trova nel ramo di lavoro di MariaDB del progetto del generatore casuale di query, su Launchpad.

See also:

Commenti

Sto caricando i commenti......