ISKEYWORD ignores words in hints such as nolock, hash
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Comece executando o script do PowerShell fornecido com TSql150Parser e inspecione a saída de ScriptTokenStream para nolock e hash, concentrando-se em seus tipos de token e nos resultados de IsKeyword(). Rastreie como TSql150Parser classifica essas palavras de hint e verifique se a classificação corrigida é refletida no fluxo de tokens sem erros de parsing.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
- SqlPackage or DacFx Version:
- .NET Framework (Windows-only) or .NET Core: .NET Framework
- Environment (local platform and source/target platforms):
Parser for 2019, Windows
Steps to Reproduce:
- Powershell script as below - does not recognize nolock , returns no for iskeyword.
$ScriptData = @"
--Testing tokens
begin tran
SELECT * FROM mytable (nolock);
commit tran
"@
Add-Type -Path "C:\ugpresentation\ScriptDom\Microsoft.SqlServer.TransactSql.ScriptDom.dll"
Write-Host "Attempting to parse..."
try {
$parser = New-Object Microsoft.SqlServer.TransactSql.ScriptDom.TSql150Parser($true)
#object to handle parsing errors if any
$parseErrors = New-Object System.Collections.Generic.List[Microsoft.SqlServer.TransactSql.ScriptDom.ParseError]
#object that handles strings script to parse
$stringReader = New-Object System.IO.StringReader($ScriptData)
#parser creates parsed objects from strings
$parsedObjects = $parser.Parse($stringReader, [ref]$parseErrors)
$ctr = 0
foreach ($token in $parsedobjects.ScriptTokenStream)
{
write-host "Text: " $token.text -ForegroundColor Cyan
write-host "Type: " $token.tokentype -ForegroundColor green
write-host "Location: Line" $parsedobjects.ScriptTokenStream[$ctr].Line "Column " $parsedobjects.ScriptTokenStream[$ctr].column -ForegroundColor yellow
write-host "Is this a Reserved Word? " $token.IsKeyword()-ForegroundColor white
$ctr++
} #token
if($parseErrors.Count -gt 0) {
throw "$($parseErrors.Count) parsing error(s): $(($parseErrors | ConvertTo-Json))"
}
Write-Host "Complete!" -ForegroundColor Green
}
catch {
throw
}
Did this occur in prior versions? If not - which version(s) did it work in?
Works same on every version
(DacFx/SqlPackage/SSMS/Azure Data Studio)
- Linguagem predominante
- GAP
- Estrelas
- 277
- Forks
- 43
- Merge médio
- 6d 17h
- PRs com merge (30d)
- 3
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 ·
-
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
objectionary/eo#8923 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Coarray integration tests carry no LABELS, so run_tests.py silently skips them under every backend Abertacoarray
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
internal.h中,漏掉了1个定义。 Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 95/100