Stack overflow when parsing script with thousands of UNIONs
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 32/100
Direção de pesquisa
Comece reproduzindo o stack overflow com um arquivo SQL grande contendo milhares de UNIONs e inspecione o caminho de chamadas de TSqlParser, TSqlFragmentVisitor e BinaryQueryExpression mostrado no stack trace. O trabalho estará concluído quando essas entradas forem analisadas sem stack overflow e o comportamento do visitor permanecer intacto.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
TSqlParser results in a stack overflow exception when parsing large SQL files containing a lot of UNIONs (example: in a view or stored procedure). Culprit is likely the recursive visitor pattern, changing it to iterative may fix the issue.
Stack trace:
Microsoft.SqlServer.TransactSql.ScriptDom.TSqlFragmentVisitor.Visit(Microsoft.SqlServer.TransactSql.ScriptDom.BinaryQueryExpression)
Microsoft.SqlServer.TransactSql.ScriptDom.TSqlFragmentVisitor.ExplicitVisit(Microsoft.SqlServer.TransactSql.ScriptDom.BinaryQueryExpression)
Microsoft.SqlServer.TransactSql.ScriptDom.BinaryQueryExpression.Accept(Microsoft.SqlServer.TransactSql.ScriptDom.TSqlFragmentVisitor)
Microsoft.SqlServer.TransactSql.ScriptDom.BinaryQueryExpression.AcceptChildren(Microsoft.SqlServer.TransactSql.ScriptDom.TSqlFragmentVisitor)
Microsoft.SqlServer.TransactSql.ScriptDom.BinaryQueryExpression.Accept(Microsoft.SqlServer.TransactSql.ScriptDom.TSqlFragmentVisitor)
Microsoft.SqlServer.TransactSql.ScriptDom.BinaryQueryExpression.AcceptChildren(Microsoft.SqlServer.TransactSql.ScriptDom.TSqlFragmentVisitor)
- Linguagem predominante
- GAP
- Estrelas
- 278
- Forks
- 46
- Merge médio
- 9d 23h
- PRs com merge (30d)
- 2
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de microsoft/SqlScriptDOM
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
microsoft/SqlScriptDOM#228 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
microsoft/SqlScriptDOM#183 ·
-
Add a Multiline option for CASE expressions (WHEN/THEN/ELSE on their own lines)Talvez já em andamento @trg-alasdair assumiu há 5 dias. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 56/100
microsoft/SqlScriptDOM#226 · 1 reação ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
microsoft/SqlScriptDOM#225 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 58/100
microsoft/SqlScriptDOM#224 ·
Todas as issues de microsoft/SqlScriptDOM
Issues semelhantes
-
I-prioritize needs-triage regression-from-stable-to-beta T-lang
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
rust-lang/rust#163830 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
rubys/roundhouse#444 ·
Mantenedores costumam responder em até 1 dia
-
crash llvm:codegen
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
llvm/llvm-project#229064 ·
Mantenedores costumam responder em até 1 dia
-
area:lowering kind:bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
-
vxc prints a debug line '[flat-codegen] emitted module via the flat path' on every compileTalvez já em andamento @YodHeVauHe assumiu há 1 dia. Abertadevex good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia