RE: "deterministic" indicator for external functions.

It would be better to raise comments on Bugzilla!
I have some sympathy with this requirement but I think this kind of thing is
best handled using pragmas (or option declarations). For example, in my
implementation I'm not so much concerned about whether the results are
deterministic as about whether calling the function has side-effects. I
think we'll find it very hard to define a set of properties with semantics
that we can specify rigorously and agree on, so it's best to leave it to
Michael Kay


[] On Behalf Of Daniel Engovatov
Sent: 13 May 2005 03:14
Subject: [Norton AntiSpam] "deterministic" indicator for external functions.

We propose to add an optional clause to the external function declaration to
indicate whether the external function always returns the same results for
given argument values ("deterministic").


An example use case would be to allow users to indicate that two external
functions embedded into xquery: f:random() and
f:verySlowDeterministicExternalWebService() should be treated differently by
the query processor.


That can be implemented by changing FunctionDecl to


[26]    FunctionDecl    ::=    "declare" "function" QName "(" ParamList?
(")" | (")" "as" SequenceType)) (EnclosedExpr | ("external" (<"not"
"deterministic"> | "deterministic")?))



Received on Friday, 13 May 2005 08:33:11 UTC