This is an automated email from the ASF dual-hosted git repository.

alxndrsn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pouchdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 50cb0ba01 docs: remove docs for 3rd-party GQL plugin (#9181)
50cb0ba01 is described below

commit 50cb0ba013be4d717bba54cf033c0b97c0e32a3b
Author: Alex Anderson <[email protected]>
AuthorDate: Sun Feb 22 11:14:24 2026 +0300

    docs: remove docs for 3rd-party GQL plugin (#9181)
    
    The GQL plugin looks very old and the docs have syntax issues.
    
    The docs currently at https://pouchdb.com/gql.html match those at 
https://github.com/pouchdb/GQL, which is also linked.
    
    This is currently the only 3rd-party plugin with docs hosted on pouchdb.com.
---
 docs/external.md |   2 +-
 docs/gql.md      | 285 -------------------------------------------------------
 2 files changed, 1 insertion(+), 286 deletions(-)

diff --git a/docs/external.md b/docs/external.md
index d2419b665..c0f26c1b5 100644
--- a/docs/external.md
+++ b/docs/external.md
@@ -58,7 +58,7 @@ Fully replicate two PouchDB/CouchDB databases, preserving 
absolutely all revisio
 
 #### [PouchDB GQL](https://github.com/pouchdb/GQL)
 
-Google Query Language (GQL) queries with PouchDB. ([Documentation]({{ 
site.baseurl }}/gql.html))
+Google Query Language (GQL) queries with PouchDB.
 
 #### [PouchDB Hoodie API](https://github.com/hoodiehq/pouchdb-hoodie-api)
 
diff --git a/docs/gql.md b/docs/gql.md
deleted file mode 100644
index 7172039f6..000000000
--- a/docs/gql.md
+++ /dev/null
@@ -1,285 +0,0 @@
----
-layout: 2ColLeft
-title: GQL Documentation
-sidebar: nav.html
----
-
-The Google Query Language (GQL) interface provides an alternative method for 
accessing data.
-The version of GQL implemented here is based on the Google Visualization API 
Query Language
-(https://developers.google.com/chart/interactive/docs/querylanguage).
-The syntax of GQL queries should be familiar to those who have used SQL,
-but the capabilities of GQL are much more limited.
-
-GQL queries are performed by passing a query object to the gql method along 
with a callback.
-Callbacks are in the node.js idiom of `function(err, data)` Where the first 
argument will be undefined
-unless there is an error, and further arguments specify the result.
-Note that only identifiers and string literals are case-sensitive.
-
-### Language Syntax
-
- * [Select](#select)
- * [Where](#where)
- * [Group By](#groupBy)
- * [Pivot](#pivot)
- * [Label](#label)
- * [Functions](#functions)
-  * [Aggregation Functions](#aggregation_functions)
-  * [Scalar Functions](#scalar_functions)
-  * [Arithmetic Operators](#arithmetic_operators)
- * [Miscellaneous](#miscellaneous)
-  * [Literals](#literals)
-  * [Identifiers](#identifiers)
-  * [Reserved Words](#reserved_words)
-
-## Perform a Query
-
-    db.gql(query, [options], [callback])
-
-Although only the query is mandatory, the callback is required to access the 
query result.
-Currently no query options are implemented.
-
-    const pouchdb;
-    PouchDB('idb://test', function(err, db) {
-       pouchdb = db;
-      // Use pouchdb to call further functions
-        db.gql({select: "*", where: "type='Fire' and name is not null"}, 
function(err, result){
-            if(!err){
-            // Use the results of the query here
-            }
-          }
-    })
-
-## Select
-
-    db.gql({select: "`name!`, price-discount, upper(vendor)"}, callback)
-
-Select returns an object for each document in the database (unless limited by 
another clause).
-Each of these objects will be populated with the properties specified in the 
select clause.
-Arithmetic operators, aggregation functions, and scalar functions are all fair 
game.
-Properties that are missing from an object in the database are assigned null.
-
-With these documents in the database
-
-    {name!: "pencil", price: 2, discount: 0.7, vendor: "store1"},
-    {name!: "pen", price:3, discount: 2, vendor: "store2"}
-
-The above query will return
-
-    {name!: "pen", price - discount: 1, upper(vendor): "STORE2"},
-    {name!: "pencil", price - discount: 1.3, upper(vendor): "STORE1"}
-
-
-## Where
-
-    db.gql({select: "*", where: "type='Fire' and name is not null"}, callback)
-
-Where allows filtering of the objects that are passed to the select clause.  
In this way, unwanted documents
-can be excluded from the query result.  The where clause is composed of 
conditions which are joined by the
-logical operators AND and OR.  An additional operator, NOT, provides negation.
-
-Comparison operators can be used in conditions to perform comparisons.  The 
supported comparison operators are
-<=, <, >, >=, !=, and <>.  != and <> are equivalent.  Null is treated slightly 
differently; to check if
-something is null IS NULL is used.  To check if something is not null, IS NOT 
NULL is used.
-
-With these documents in the database
-
-    {name: "charmander", type: "Fire"},
-    {type: "Fire", attack:"tail whip"},
-    {name: "charizard", type: "Fire", attack:"slash"}
-
-The above query will return
-
-    {_id: "0D715E2C-CEDD-46B4-A060-9C9C290BEBE8", _rev: 
"1-71d1e0f8ab00cf432306890a4116602b",
-    attack: "slash", name: "charizard", type: "Fire"},
-    {_id: "3153F94B-0568-4D4C-BFA1-83EDF6185915" _rev: 
"1-d24f7405c5a63943391eaff9a260139c",
-    name: "charmander", type: "Fire"}
-
-Note the inclusion of the \_rev and \_id fields.  This is the result of using 
'select \*' instead of naming the
-desired fields explicitly.
-
-## Group By
-
-    db.gql({select: "max(charizard), charmeleon", groupBy: "charmeleon"}, 
callback)
-
-Group by creates one object for each unique combination of values in the group 
by clause. For the query above,
-if every document in the database had the value "Level 22" for the property 
"charmeleon", only a single
-object would be generated.
-
-If a group by clause is present, every identifier in the select clause must 
either be the argument of an
-aggregation function or present in the group by clause.  Otherwise, the 
composite objects formed by the group by
-clause could have multiple values for some identifiers.
-
-With these documents in the database
-
-    {charizard: 50, charmander: 24, charmeleon: 2, haunter:true},
-    {charizard: 40, charmeleon: 2, charmander: 50},
-    {charizard: 7, charmeleon: 20, charmander: 15}
-
-The above query will return
-
-    {charmeleon: 2, max(charizard): 50}
-    {charmeleon: 20, max(charizard): 7}
-
-## Pivot
-
-     db.gql({select: "max(charizard)", pivot: "charmeleon"}, callback)
-
-Pivot is essentially group by for properties.  Each distinct value in the 
pivot clause gets its own property.
-Unless used with group by, the result will have only a single document.
-
-The same restriction for group by applies here; every identifier in the select 
clause must either be the
-argument of an aggregation function or preset in the group by clause.  
Additionally, identifiers in the pivot
-clause may not be used in the group by clause.
-
-Note that using pivot will generate novel property names.  See below for an 
example.
-
-With these documents in the database
-
-    {charizard: 50, charmeleon: "hello"},
-    {charizard: 40, charmeleon: "hello"},
-    {charizard: 7, charmeleon: "world", charmander: 15}
-
-The above query will return
-
-    {'hello max(charizard)': 50, 'world max(charizard)': 7}
-
-## Label
-
-     db.gql({select: 'upper(dept), charizard',
-     label: "upper(dept) 'Department', charizard 'Maximum Charizard!'"}, 
callback)
-
-Label is used to transform cryptic identifiers into something that can be 
displayed directly to the end user.
-Items in the label clause can be identifiers, aggregation functions, scalar 
functions, or operators.  The label
-clause is composed of any number of statement label pairs, where the statement 
corresponds to some statement in
-the select clause and the label is a string literal.
-
-With these documents in the database
-
-    {charizard: 50, dept: "eng", lunch:"2"},
-    {charizard: 40, lunch: "1", dept: "market"},ยท
-    {charizard: 99, dept: "eng", lunch: 1},
-    {charizard: 7, dept: "eng", lunch: 2}
-
-The above query will return
-
-    {Department: "ENG", Maximum Charizard!: 7},
-    {Department: "ENG", Maximum Charizard!: 99},
-    {Department: "MARKET", Maximum Charizard!: 40},
-    {Department: "ENG", Maximum Charizard!: 50}
-
-## Functions
-
-GQL contains a number of operators and functions that can operate on retrieved 
documents.
-
-### Aggregation Functions
-
-    db.gql({select: "max(charizard), min(charizard), average(charizard), 
count(charizard), sum(charizard)"},
-    callback)
-
-The currently supported aggregation functions are avg, count, max, min, and 
sum.  Each of these takes a single
-statement as an argument.  A statement can be composed of one or more 
identifiers joined by operators.
-Avg and sum expect their arguments to evaluate to numbers; the other 
aggregators will accept any type of input.
-Aggregation functions operate on entire identifiers, returning only a single 
property. Aggregation functions
-may only appear in the select and label clauses.
-
-With these documents in the database
-
-    {charizard: 50},
-    {charizard: 40},
-    {charizard: 7}
-
-The above query will return
-
-    {average(charizard): 32.333333333333336, count(charizard): 3, 
max(charizard): 50,
-    min(charizard): 7, sum(charizard): 97}
-
-### Scalar Functions
-
-    db.gql({select: "`name!`, price-discount, upper(vendor)"}, callback)
-
-Currently only two scalar functions are supported, upper and lower.  These 
change the characters in their inputs
-to uppercase and lowercase respectively.  Unlike aggregator functions, scalar 
functions take only a single
-identifier as their input.  Scalar functions may only appear in the select and 
label clauses.
-
-With these documents in the database
-
-    {name!: "pencil", price: 2, discount: 0.7, vendor: "store1"},
-    {name!: "pen", price:3, discount: 2, vendor: "store2"}
-
-The above query will return
-
-    {name!: "pen", price - discount: 1, upper(vendor): "STORE2"},
-    {name!: "pencil", price - discount: 1.3, upper(vendor): "STORE1"}
-
-
-### Arithmetic Operators
-
-    db.gql({select: "*", where: "charizard <=charmander * charmeleon + 2 and 
(charmander - 7 !=  24/3)"},
-    callback)
-
-Arithmetic operators are used to perform basic math on the values from 
documents.  Their arguments must be
-numbers.  Arithmetic operators may only appear in the select, label, and where 
clauses.  The arguments are
-implicitly upcast to floats if necessary. The supported arithmetic operators 
are:
-
-* Addition: '+'
-* Subtraction: '-'
-* Multiplication: '\*'
-* Division: '/'
-
-
-With these documents in the database
-
-    {charizard: 50, charmander: 24, charmeleon: 2, haunter:true},
-    {charizard: 40, charmeleon: .5, charmander: 50},
-    {charizard: 7, charmeleon: 20, charmander: 15}
-
-The above query will return
-
-    {charizard: 50, charmander: 24, charmeleon: 2, haunter: true}
-
-## Miscellaneous
-
-Some features that are not covered in other sections.
-
-### Literals
-
-Literals are used for comparison or arithmetic.  These are the supported 
literals:
-
-* string: Any characters surrounded by single or double quotes
-* number: Numbers in regular decimal form.  They may have a single period, a 
single negative sign, and no commas
-* boolean: Either true or false
-
-### Identifiers
-
-Identifiers correspond to the properties of documents in the database.  There 
are strict rules governing the
-way that identifiers can be expressed in queries.  If your identifier has 
spaces, is a reserved word, contains
-any characters that are not letters or numbers or underscores, or starts with 
a digit, it must be surrounded
-by backquotes \(\`identifier\`\).
-
-### Reserved Words
-
-This is the current list of reserved words.  Because the GQL implementation is 
currently under development,
-this list is likely to grow over time.
-
-    and
-    asc
-    by
-    date
-    datetime
-    desc
-    false
-    format
-    group
-    label
-    limit
-    not
-    offset
-    options
-    or
-    order
-    pivot
-    select
-    timeofday
-    timestamp
-    true
-    where

Reply via email to