Arne
Arne

Reputation: 8481

Debug XQuery Program

In the beginning, I wrote a little XQuery script that was designed to do a small task and only that. Now it came out that this XQuery script is anything but complete, and I have to fix it. The problem is, my XQuery evolved into a program, and XQuery is a Pain to debug. Something that I would need would be:

Print something to the command line to check whether the program has the correct nodes at that time.

A debugging tool that shows me the stored variables

Upvotes: 17

Views: 7442

Answers (3)

Brad Cox
Brad Cox

Reputation: 384

As Dimitre suggested, trace() is what I fall back on when nothing else works. Messy but it works.

Instead of: $foo := anyXqueryExpression

Do this: $foo := trace(anyXqueryExpression, "text")

Logs the result of executing anyXqueryExpression and adds the prefix "text".

Upvotes: 3

kadalamittai
kadalamittai

Reputation: 2166

There are few Xml Database centric diagnostics apis. w.r.t to MarkLogic Xml Database.

  1. Diagnostics/ TaskServer UI in the admin console.
  2. Tabular Profile use their CQ application
  3. xdmp:query-trace(), xdmp:trace() are api gives some idea about the Query plan.
  4. opensource Xquery Debugger = xqdebug

are few techniques to have effective coding.

Upvotes: 1

Dimitre Novatchev
Dimitre Novatchev

Reputation: 243519

Something that I would need would be:

print something to the command line to check weather the progroms has the correct nodes at that time.

Use the standard XPath 2.0 function trace().

a debugging tool that shows me the stored variables

There are varios IDEs for XQuery that come up with a Debugger. For example, have a look at oXygen.

Upvotes: 5

Related Questions