Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 484
Arne Avatar asked Jan 28 '11 16:01

Arne


3 Answers

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.

like image 114
Dimitre Novatchev Avatar answered Nov 13 '22 19:11

Dimitre Novatchev


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".

like image 34
Brad Cox Avatar answered Nov 13 '22 18:11

Brad Cox


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.

like image 1
kadalamittai Avatar answered Nov 13 '22 20:11

kadalamittai