Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Background

To query large outputs or large number of fragments across all anchors, we need to provide pagination for Query API( query data nodes across all anchors). it will help client to fetch limited set of data per request. below is two possible solutions for further discussions to decide appropriate choice.  

Jira Refs : 

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1605

Issues and Decisions

#IssuesNotesDecision
1How to support pagination.we need to decide on how to support pagination for query API from two possible alternatives given below (pagination over fragments or pagination over anchors)
2Default page sizeshould we go with some default page size or query all records if pagination parameter in not provided. 

Pagination over fragments 

...

ParameterisRequiredDescription
cps-pathyesnode path to be queried
descendantsnoNumber of descendants to be queried. default is none..
pageIndexnopage index starting from 1.  default is -1 for all records.
resultSizenonumber of fragments per page starting from 10 (TBD). pag. default is -1 for all fragments..

Query

QueryDescription
SELECT id, anchor_id AS anchorId, xpath, parent_id AS parentId, CAST(attributes AS TEXT) AS attributes FROM FRAGMENT WHERE xpath ~ :xpathRegex ORDERED BY id LIMIT :resultSize OFFSET  (:resultIndex - 1) * :resultSize Query limited fragments in order of fragment id


...

ParameterisRequiredDescription
cps-pathyesnode path to be queried
descendantsnoNumber of descendants to be queried. default is none
pageIndexnopage index starting from 1.  default is -1 for all pages(all anchors)
pageSizenonumber of records per request. It is nothing but number of anchors to be queried.   Default value is 5(TBD).-1 for all pages(all anchors)

Response Headers

Headerdescription
totalResultstotal number of available records (achors)
totalPagestotal nulber of pages.

...