Sql150ScriptGenerator.GenerateScript ignores WHERE statement
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 48/100
Direção de pesquisa
Comece pela reprodução usando TSql150Parser, QuerySpecification e Sql150ScriptGenerator.GenerateScript, conforme indicado no corpo da issue. Compare a QuerySpecification analisada com a saída gerada e, em seguida, execute o exemplo e confirme que a cláusula WHERE é preservada no SQL formatado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
I try to format my sql script using GenerateScript method but WHERE clause is missing from its output.
Nuget version Microsoft.SqlServer.TransactSql.ScriptDom 161.9109.0.
Under debug I see parsed WHERE statement.
input and output:
ORIGINAL:
SELECT
x2_0.KeyPowerPlantUnit
,x3_0.KeyEnergyPlantTypeParent
,x2_0.KeyEnergyPlantType
,x2_0.MostRecentSequence
FROM SNLEdit_new.dbo.PowerPlantUnitFuel x2_0
LEFT JOIN Lookup.dbo.EnergyPlantType x3_0
ON x2_0.KeyEnergyPlantType = x3_0.KeyEnergyPlantType
AND x3_0.updoperation < 2
WHERE x2_0.MostRecentSequence IN (1, 2, 3, 4, 5, 6);
FORMATTED:
SELECT x2_0.KeyPowerPlantUnit,
x3_0.KeyEnergyPlantTypeParent,
x2_0.KeyEnergyPlantType,
x2_0.MostRecentSequence
FROM SNLEdit_new.dbo.PowerPlantUnitFuel AS x2_0
LEFT OUTER JOIN
Lookup.dbo.EnergyPlantType AS x3_0
ON x2_0.KeyEnergyPlantType = x3_0.KeyEnergyPlantType
AND x3_0.updoperation < 2
Code to reproduce:
using Microsoft.SqlServer.TransactSql.ScriptDom;
using System.Diagnostics;
var sql = @"
SELECT
x2_0.KeyPowerPlantUnit
,x3_0.KeyEnergyPlantTypeParent
,x2_0.KeyEnergyPlantType
,x2_0.MostRecentSequence
FROM SNLEdit_new.dbo.PowerPlantUnitFuel x2_0
LEFT JOIN Lookup.dbo.EnergyPlantType x3_0
ON x2_0.KeyEnergyPlantType = x3_0.KeyEnergyPlantType
AND x3_0.updoperation < 2
WHERE x2_0.MostRecentSequence IN (1, 2, 3, 4, 5, 6);
";
Console.WriteLine("ORIGINAL:" + sql);
var reader = new StringReader(sql);
var parser = new TSql150Parser(true);
var fragment = (TSqlScript)parser.Parse(reader, out var errors);
if (errors.Count > 0)
{
Console.WriteLine("Failed to parse SQL script:");
foreach (var error in errors)
{
Console.WriteLine(error.Message);
}
Debugger.Break();
}
var options = new SqlScriptGeneratorOptions
{
IncludeSemicolons = true,
IndentationSize = 4
};
var generator = new Sql150ScriptGenerator(options);
var statement = (SelectStatement)fragment.Batches[0].Statements[0];
var expression = (QuerySpecification)statement.QueryExpression;
generator.GenerateScript(expression, out var formattedSql);
Console.WriteLine();
Console.WriteLine("FORMATTED:" + Environment.NewLine + formattedSql);
Console.ReadLine();
- 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á 6 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
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
nightscout/AndroidAPS#5210 ·
Mantenedores costumam responder em até 1 dia
-
Upgrade MongoDB Node.js driver to 7.6+ for full MongoDB 9.0 compatibilityTalvez já em andamento @ga262 assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
parse-community/parse-server#10754 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
electric-sql/pglite#1118 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100