Java- und Python-UDFs und gespeicherte Prozeduren: Änderungen an der Behandlung von // bei der Auflösung von Dateipfaden im Dateizugriff-APIs (ausstehend)

Achtung

Diese Verhaltensänderung ist in Bundle 2025_03 enthalten.

Den aktuellen Status des Bundles finden Sie unter Bundle-Verlauf.

Snowflake entfernt derzeit //, wenn Sie diese zwischen dem Stagingbereich und dem Pfadnamen angeben. Dies ist jedoch zweideutig, da der Cloud-Speicher Schrägstriche (/) in Pfadnamen erlaubt. Das ursprüngliche Ziel war es, Benutzern zu helfen, die ihre Namen falsch verketten (z. B. build_scoped_file_url(@stage, '/file.txt')), was zu @stage//file.txt führt, obwohl der Benutzer eigentlich @stage/file.txt wollte. Wenn dieses Bundle zur Verhaltensänderung aktiviert ist, entfernt Snowflake dieses Verhalten, um Mehrdeutigkeiten zu vermeiden.

Mit dieser Verhaltensänderung scheitern also Auflösungen auf @stage//file.txt, wenn /file.txt nicht auf dem Cloud-Speicher existiert.

Vor der Änderung:

Für Dateien, die innerhalb eines UDF oder einer gespeicherten Prozedur aufgelöst werden:

  • @stage//file.txt wird aufgelöst in stage-location/file.txt

  • build_scoped_url(@stage, '//file.txt') wird aufgelöst in stage-location/file.txt

Nach der Änderung:

Für Dateien, die innerhalb eines UDF oder einer gespeicherten Prozedur aufgelöst werden:

  • @stage//file.txt wird aufgelöst in stage-location//file.txt

  • build_scoped_url(@stage, '//file.txt') wird aufgelöst in stage-location//file.txt

Ref: 1810