Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

ISKEYWORD ignores words in hints such as nolock, hash

未關閉
#24 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
3/5
預估耗時
1-2 天
新手友好度
35/100
Issue 類型
缺陷
描述清晰度
基本清楚
活躍度
停滯
技術堆疊
powershell, sql
領域
compilers

研究方向

首先使用 TSql150Parser 執行提供的 PowerShell 指令碼,並檢查 nolock 和 hash 的 ScriptTokenStream 輸出,重點關注它們的 token 類型和 IsKeyword() 結果。追蹤 TSql150Parser 如何對這些提示詞進行分類,並驗證修正後的分類已在 token 流中反映,且沒有剖析錯誤。

由索引模型根據 Issue 內容生成。

描述

bug
  • 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:
  1. 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)

主要語言
GAP
星號
277
分支
43
平均合併
6 天 17 小時
30 天內合併 PR
3

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

microsoft/SqlScriptDOM 的其他 Issue

查看 microsoft/SqlScriptDOM 的全部 Issue

相似的 Issue

更多 Compilers Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。