Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

ScriptDom parses table-level constraint after the last column as column-level constraint if not preceded by comma separator

Abierto
#72 1 comentario 7 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
38/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
sql
Área
compilers

Línea de trabajo

Comienza reproduciendo la instrucción CREATE TABLE proporcionada con ScriptDom version 161.8919.0 en compatibility level 150; después, inspecciona cómo la AST clasifica la PRIMARY KEY constraint. Se considera hecho cuando la constraint se representa como una table-level constraint sobre bar y far, en lugar de como una column-level constraint vinculada a zar.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

sql-feature

In this code sample:

CREATE TABLE dbo.foo
(
    bar INT NOT NULL DEFAULT 0
    , far VARCHAR(100) NOT NULL
    , zar DATE PRIMARY KEY (bar, far)
)

comma separator is missing before PRIMARY KEY constraint declaration. And ScriptDom parses it as a column-level constraint linked to zar column which is wrong. Note, in such case column-level constraint has columns property with different columns listed. It should be parsed as table level constraint.

The syntax brings some ambiguity however it is completely valid. For created table sp_help shows no constraint for column zar and shows table-level unnamed PRIMARY KEY constraint on bar and far columns:
image

While developing rules for our custom T-SQL linter with columns declared as inline primary key involved, I have to double check if the inline PK is actually related to analyzed column. It would be great if such table-level constraints were parsed exactly as table-level constraints, not column-level.

ScriptDom version: 161.8919.0
Compatibility level used for parsing: 150

Lenguaje dominante
GAP
Estrellas
277
Forks
43
Merge medio
6 d 17 h
PR fusionados (30 d)
3

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de microsoft/SqlScriptDOM

Todos los issues de microsoft/SqlScriptDOM

Issues similares

Más issues de Compilers

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.