# ODK Central clarifications required

**URL:** <https://forum.getodk.org/t/odk-central-clarifications-required/30070>\
**Category:** Support\
**Tags:** odk-central\
**Created:** [September 21, 2020, 8:33am UTC](https://forum.getodk.org/t/odk-central-clarifications-required/30070 "2020-09-21T08:33:44Z")\
**Posts on this page:** 1\
**Showing post:** 8

<div class="post-metadata">

**Author:** ![dmenne](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/dmenne/32/11796_2.png) [@dmenne](https://forum.getodk.org/u/dmenne)\
**Post date:** [October 2, 2020, 6:25pm UTC](https://forum.getodk.org/t/odk-central-clarifications-required/30070/8 "2020-10-02T18:25:13Z")

</div>

> [@LN](#):
>
> One of the early decisions we made was to store incoming form submissions as XML blobs rather than splitting them into database tables as Aggregate does.

I fully understand this, but the implementation is a bit short-sighted. It would have cost nothing to store XML in an XML Postgresql field, instead of as text. It's probably not extremely fast to filter on un-indexed items, but it is really easy to implement.

> [@Filter Data in ODK Central](https://forum.getodk.org/t/filter-data-in-odk-central/30204/10):
>
> Today, I did some experiments to show that an API for a flexible query of submissions is not that difficult. To avoid killing the app, I added a column xxml to submissions\_attachment: update submission\_defs set xxml = XMLPARSE(CONTENT(xml)) This converts the header to a element: Using some postgresql options, a slightly different treatment of the header is possible. \<data xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:jr="http://openrosa.org/java…

I always use Shiny as frontend, because I am fluent in R, but handling ruODK update via a local warehouse is made rather complex currentyl because of the limited filtering abilities.

---

_[View the full topic](https://forum.getodk.org/t/odk-central-clarifications-required/30070)._
