Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

SQLSelect — UNION storage/rendering broken

Aperta
#63 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
55/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
sql
Ambito
database

Direzione di ricerca

Inizia in src/ClassModules/SQLSelect.cls ed esamina Union, UnionString, aUnion e l’ordine finale di generazione SQL. Riproduci il problema con due SELECT seguite da OrderBy, quindi verifica che le unioni vengano inizializzate, che tutte le unioni vengano generate e che le clausole UNION compaiano prima di ORDER BY.

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

Descrizione

SQLSelect: fix UNION storage/rendering and clause order

  • Component: src/ClassModules/SQLSelect.cls
Problems
  • Stores the class identifier instead of the instance in Union.
  • Name mismatch between sUnion and aUnion; union array not initialized.
  • UnionString builds only one union; ORDER BY placed before UNION in final SQL.
Snippet (actual)
Public Sub Union(oSelect As SQLSelect, Optional sType = "")
    Dim UnionArray() As Variant
    UnionArray = Array(SQLSelect, sType) ' uses class name, not instance
    ' ...
End Sub

Private Function UnionString()
    Dim NewSelect As iSQLQuery
    aUnion = UnionArray(0)
    Set NewSelect = aUnion(0)
    UnionString = " UNION " & NewSelect.toString()
End Function
Expected (conceptual)
' Store (oSelect, sType)
aUnion = ArrayPush(aUnion, Array(oSelect, sType))

' Build all unions and place before ORDER BY
Function UnionString() As String
    Dim i As Long, s As String
    For i = 0 To UBound(aUnion)
        Dim it As Variant: it = aUnion(i)
        Dim q As iSQLQuery: Set q = it(0)
        Dim t As String: t = it(1)
        s = s & " UNION " & IIf(t <> "", t & " ", "") & q.toString()
    Next i
    UnionString = s
End Function
Steps to Reproduce
  1. Create two selects; call First.Union Second and then OrderBy.
Actual
  • UNION omitted/malformed; ORDER BY rendered without merging unions.
Proposed Fix
  • Store (oSelect, sType); iterate unions; emit before OrderByString; initialize aUnion.

Lingua principale
VBA
Stelle
90
Fork
18
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Beakerboy/VBA-SQL-Library

Tutte le issue di Beakerboy/VBA-SQL-Library

Issue simili

Altre issue su Databases

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.