Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Columns with similar names on the DB collide in SQLProvider

Offen
#599 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
30/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
fsharp, sql
Bereich
databases

Rechercherichtung

Beginne damit, die Kollision in SQLProvider gegen SQL Server 2012 mit Spalten namens ExampleColumn, ExampleColumn: und ExampleColumn_ zu reproduzieren. Verfolge, wie der Provider diese Datenbankspalten auf F#-Bezeichner abbildet. Fertig ist die Aufgabe, wenn die Tabelle ohne nicht unterscheidbare generierte Namen abgefragt werden kann und dabei eine nutzbare Möglichkeit erhalten bleibt, auf jede Spalte zu verweisen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Description

When a table has 2 or more columns whose names are only different by "special" characters, SQLProvider creates indistinct mappings for them.

Repro steps
  1. Create a table with these columns
  • [ExampleColumn]
  • [ExampleColumn:]
  • [ExampleColumn_]
  1. Try to query this table from SQLProvider
Expected behavior

I would expect, given F#'s ability to create identifiers with special characters, that SQLProvider wouldn't need to alter your column names in any way (at least, as an option when creating the provider).

Actual behavior

SQLProvider will rename these fields with indistinct names, causing an exception to be thrown, and the table becomes un-queryable.

Known workarounds

Create a view in your database that disambiguates that column names and use that from SQLProvider, but this is not acceptable since you're then designing the database around an arbitrary tool in a separate code stack.

Related information
  • SQL Server 2012
  • Windows 7, SP1
  • v1.1.30-1.1.58
  • .NET 4.6
Vorherrschende Sprache
F#
Sterne
627
Forks
147
Ø Merge
2 Std. 2 Min.
Gemergte PRs (30 T.)
1

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

  • Kein Dockerfile und keine Docker-Compose-Datei
  • Hat eine Pull-Request-Vorlage
  • Kein Beitragsleitfaden

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus fsprojects/SQLProvider

Alle Issues in fsprojects/SQLProvider

Ähnliche Issues

Weitere Issues zu Databases

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.