Option to normalize casing of identifiers in the ScriptGenerator
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 38/100
Direção de pesquisa
Comece localizando o ScriptGenerator e suas configurações atuais e, em seguida, acompanhe como os identificadores são emitidos no SQL gerado. Determine se a capitalização se aplica uniformemente ou se requer configurações separadas no nível da instância e do banco de dados; considera-se concluído quando PreserveOriginal continuar sendo o padrão e LowerCase e UpperCase usarem a capitalização invariável conforme especificado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
SQL Server compares identifiers with respect to the CI/CS, AI/AS setting of the respective database's collation. While accent sensitivity has no effect on the SQL source code, case-sensitivity may have such an effect when the goal is to produce a 'canonical' form of the source code. The locale part of the collation plays no part in this.
Hence, the settings of the ScriptGenerator should be extended with an option to normalize casing of identifiers as follows:
PreserveOriginal— outputs identifiers as-is; this shall be the default behavior corresponding to the current state (no breaking change)LowerCase— lower-case all identifiers when producing the outputUpperCase— upper-case all identifiers when producing the output
A simple ToLowerInvariant() / ToUpperInvariant() should be used.
Question is, whether the ScriptGenerator should support separate settings for instance-level (global) objects versus objects in a database. This would significantly increase the complexity. See also Database identifiers:
The collation of an identifier depends on the level at which it's defined. Identifiers of instance-level objects, such as logins and database names, are assigned the default collation of the instance. Identifiers of objects in a database, such as tables, views, and column names, are assigned the default collation of the database.
- 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
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 82/100
sqlalchemy/sqlalchemy#13655 · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
grokability/snipe-it#19767 ·
Mantenedores costumam responder em até 1 dia
-
[12.x] FixIncorrectOwnerIdRelationships can delete legitimate library roots when UserView shares the same pathTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
It's not necessary to copy the memory block in the readWrite() of org.h2.store.fs.mem.FileMemDataAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
h2database/h2database#4435 ·
Mantenedores costumam responder em até 1 dia