Skip to main content

parse

@webda/ql


Function: parse()

parse(query, allowedFields?): Query

Defined in: packages/ql/src/query.ts:2177

Parse a query string into a Query object

Accepts a plain filter query (an implicit SELECT of every field) or a statement:

  • SELECT f1, f2 [WHERE <condition>] [ORDER BY ...] [LIMIT n] [OFFSET token]
  • SELECT g1, COUNT(*) AS n, SUM(f) AS s [WHERE <condition>] [GROUP BY g1] [ORDER BY ...] [LIMIT n]: an aggregation (metrics COUNT, COUNT(DISTINCT f), SUM, AVG, MIN, MAX), returned in aggregation; the selected fields must be the GROUP BY paths, every metric needs an alias, OFFSET is refused
  • DELETE [WHERE <condition>] [LIMIT n]
  • UPDATE SET a = v, b = v [WHERE <condition>] [LIMIT n]

Keywords are uppercase only: select, delete, set, count... remain field names.

Parameters​

query​

string

the query string to parse

allowedFields?​

string[]

when given, SELECT fields, aggregation metric fields and UPDATE SET targets must be in this list (see validateQueryFields)

Returns​

Query

the parsed Query object

Throws​

on a grammar error or a field outside allowedFields