Skip to content

Commit 7a843d3

Browse files
timsaucerclaude
andcommitted
docs: say the collision check does not compare aliases
DataFusion registers a function under each alias as well as its name, so an alias matching another declared function's name replaces it silently. Add it to the cases the check does not catch. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1 parent dc7bd86 commit 7a843d3

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

‎docs/source/extension-guide/bundles.md‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ the one case a rename fixes. Collisions are keyed on position rather than on
312312
object identity so that passing one extension twice reads as the caller's
313313
duplicate that it is, rather than as a bundle colliding with itself.
314314

315-
Three cases this does *not* catch:
315+
Four cases this does *not* catch:
316316

317317
- **Different kinds never collide.** Names are compared within a kind, so a
318318
scalar function and an aggregate may both be called `normalize`.
@@ -326,6 +326,10 @@ Three cases this does *not* catch:
326326
shadowing rule above, applied to something you may not have meant to shadow.
327327
Splitting colliding bundles across two calls therefore does not resolve the
328328
collision; it hides it. Use two sessions.
329+
- **Aliases are not compared.** DataFusion registers a function under each of
330+
its aliases as well as its name, but only the names are checked. A function
331+
whose alias matches another declared function's name replaces it, or is
332+
replaced by it, with nothing raised.
329333

330334
Your caller cannot rename your function, so stay out of the way: prefix the
331335
names with something tied to your library.

0 commit comments

Comments
 (0)