Hello, I have a regression to report, that seems to have been introduced between SQLite 3.8.6 and the newest 3.8.8 (at least our test case worked in 3.8.6 and stopped working somewhere in 3.8.7.x; we were hoping it got fixed in 3.8.8 but eventually it wasn’t).
In our application we can have SQLite databases with more than 100 tables, and we can generate queries automatically; one of these automatically generated queries is the following: SELECT EB_DocumentiFiscali__00.CAP, EB_RigheUnitaMisura__01.Abbreviazione, EB_DocumentiFiscali__00.OraInizioTrasp, EB_ClientiFornitori__03.Codice, EB_RigheDocFiscali.ValoreUnitarioNetto, EB_DocumentiFiscali__00.id, EB_RigheDocFiscali.Sconto, EB_DocumentiFiscali__00.PartitaIVA, EB_TipologieDocumenti__08.Codice, EB_DocumentiFiscali__00.Note, EB_DocumentiFiscali__00.RagSoc_Dest, EB_TipologieDocumenti__08.id, EB_Valute__12.Abbreviazione, EB_DocumentiFiscali__00.ScontoGlobale, EB_DocumentiFiscali__00.DataDocumento, EB_Agenti__15.RagioneSociale, EB_RigheDocFiscali.DescArticolo, EB_Articoli__17.Codice, EB_DocumentiFiscali__00.NumeroColli, EB_DocumentiFiscali__00.CAP_Dest, EB_RigheDocFiscali.ValoreUnitario, EB_AliquoteIVA__21.tra_Descrizione, EB_DocumentiFiscali__00.Indirizzo_Dest, EB_RigheDocFiscali.NumeroRiga, EB_DocumentiFiscali__00.NumeroProgressivo, EB_DocumentiFiscali__00.val_NazioneDest, EB_Vettori__26.Descrizione, EB_DocumentiFiscali__00.val_ModalitaInvio, EB_DocumentiFiscali__00.AspettoBeni, EB_DocumentiFiscali__00.Peso, EB_RigheDocFiscali.id, EB_DocumentiFiscali__00.RagioneSociale, EB_Banche__32.Descrizione, EB_AliquoteIVA__21.PercentualeIVA, EB_CondizioniConsegna__34.Descrizione, EB_TipologieDocumenti__08.tra_Descrizione, EB_DocumentiFiscali__00.NumeroInterno, EB_BancheAzienda__37.Descrizione, EB_DocumentiFiscali__00.Localita_Dest, EB_CondizioniPagamento__39.Codice, EB_DocumentiFiscali__00.Email, EB_DocumentiFiscali__00.Indirizzo, EB_Valute__12.Codice, EB_DocumentiFiscali__00.val_Nazione, EB_DocumentiFiscali__00.DataInizioTrasp, EB_DocumentiFiscali__00.CausaleTrasporto, EB_DocumentiFiscali__00.Provincia_Dest, EB_CondizioniPagamento__39.tra_Descrizione, EB_RigheDocFiscali.Quantita, EB_DocumentiFiscali__00.Provincia, EB_RigheDocFiscali.FlagsStato, EB_DocumentiFiscali__00.Localita, EB_DocumentiFiscali__00.CodiceFiscale, EB_RigheDocFiscali.ref_RigaDdT, EB_AliquoteIVA__21.Codice, EB_DocumentiFiscali__00.Suffisso, EB_Articoli__17.val_GestioneLotti, EB_CausaliContabili__57.val_TipoGestIVA, EB_DocumentiFiscali__00.val_AddettoTrasporto, EB_BancheAzienda__37.IBAN FROM EB_RigheDocFiscali LEFT JOIN EB_DocumentiFiscali AS EB_DocumentiFiscali__00 ON (EB_RigheDocFiscali.ref_DocumentoFiscale = EB_DocumentiFiscali__00.id) LEFT JOIN EB_RigheUnitaMisura AS EB_RigheUnitaMisura__01 ON (EB_RigheDocFiscali.ref_RigheUnitaMisura = EB_RigheUnitaMisura__01.id) LEFT JOIN EB_ClientiFornitori AS EB_ClientiFornitori__03 ON (EB_DocumentiFiscali__00.ref_Cliente = EB_ClientiFornitori__03.id) LEFT JOIN EB_TipologieDocumenti AS EB_TipologieDocumenti__08 ON (EB_DocumentiFiscali__00.ref_Tipologia = EB_TipologieDocumenti__08.id) LEFT JOIN EB_Valute AS EB_Valute__12 ON (EB_DocumentiFiscali__00.ref_Valuta = EB_Valute__12.id) LEFT JOIN EB_Agenti AS EB_Agenti__15 ON (EB_DocumentiFiscali__00.ref_Agente = EB_Agenti__15.id) LEFT JOIN EB_Articoli AS EB_Articoli__17 ON (EB_RigheDocFiscali.ref_Articolo = EB_Articoli__17.id) LEFT JOIN EB_AliquoteIVA AS EB_AliquoteIVA__21 ON (EB_RigheDocFiscali.ref_AliquotaIVA = EB_AliquoteIVA__21.id) LEFT JOIN EB_Vettori AS EB_Vettori__26 ON (EB_DocumentiFiscali__00.ref_Vettore1 = EB_Vettori__26.id) LEFT JOIN EB_Banche AS EB_Banche__32 ON (EB_DocumentiFiscali__00.ref_Banca = EB_Banche__32.id) LEFT JOIN EB_CondizioniConsegna AS EB_CondizioniConsegna__34 ON (EB_DocumentiFiscali__00.ref_CondizioneConsegna = EB_CondizioniConsegna__34.id) LEFT JOIN EB_BancheAzienda AS EB_BancheAzienda__37 ON (EB_DocumentiFiscali__00.ref_BancaAzienda = EB_BancheAzienda__37.id) LEFT JOIN EB_CondizioniPagamento AS EB_CondizioniPagamento__39 ON (EB_DocumentiFiscali__00.ref_CondizionePagamento = EB_CondizioniPagamento__39.id) LEFT JOIN EB_CausaliContabili AS EB_CausaliContabili__57 ON (EB_DocumentiFiscali__00.ref_CausContabile = EB_CausaliContabili__57.id) WHERE ((EB_DocumentiFiscali__00.id = 258) ) ORDER BY EB_DocumentiFiscali__00.NumeroInterno ASC , EB_RigheDocFiscali.NumeroRiga ASC LIMIT 0, 200 The query worked correctly with SQLite 3.8.6, returning for our test-case database 5 records with the same EB_DocumentiFiscali__00.NumeroInterno, ordered by EB_RigheDocFiscali.NumeroRiga in ascending order. With 3.8.7 and 3.8.8 however, the very same query returns the same 5 records but in the wrong order, as if it was ordered by NumeroRiga DESC (instead of ASC). What’s even more strange is the fact that if you remove the LIMIT clause, the records are returned in the correct order even with 3.8.7 and 3.8.8. For reference, the test-case database can be downloaded from here: http://download.easybyte.it/tmp/TESTCASE.edb.zip It’s about 64 MB zipped and 110 MB unzipped file, so be warned. I’m sorry I can’t give a smaller test case; I hope it can be useful in discovering what’s going wrong anyway. Thanks -- Ing. Angelo Mottola Software architect Converge SpA a.mott...@converge.it<mailto:a.mott...@converge.it> _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users