RDH: Creating an SQL query from a DAP2 Constraint Expression: Difference between revisions

From OPeNDAP Documentation
⧼opendap2-jumptonavigation⧽
Line 14: Line 14:
would be converted in the SQL query:
would be converted in the SQL query:
  SELECT v, u FROM foo WHERE lat<26 AND lat>24 AND lon<-126 AND lon>-128
  SELECT v, u FROM foo WHERE lat<26 AND lat>24 AND lon<-126 AND lon>-128
Additionally we may wish to add:
# The use of a limited regular expression type of matching in the CE which could be used to create [http://www.w3schools.com/sql/sql_like.asp SQL "LIKE" operators].
# Some kind of a range operation that would map to [http://www.w3schools.com/sql/sql_between.asp SQL "BETWEEN" operator].


== Server Side Functions ==
== Server Side Functions ==


Additionally we may wish to add:
Additionally we may wish to add:
# The use of a limited regular expression type of matching in the CE which could be used to create [http://www.w3schools.com/sql/sql_like.asp SQL "LIKE" operators].
# Some kind of a range operation that would map to [http://www.w3schools.com/sql/sql_between.asp SQL "BETWEEN" operator].
# A server side function that allows the user to specify that they only wish to receive ''unique'' (aka ''distinct'') values in the response. This would utilize the [http://www.w3schools.com/sql/sql_distinct.asp SQL "DISTINCT" operator].
# A server side function that allows the user to specify that they only wish to receive ''unique'' (aka ''distinct'') values in the response. This would utilize the [http://www.w3schools.com/sql/sql_distinct.asp SQL "DISTINCT" operator].

Revision as of 17:19, 5 May 2009

DAP Projection

  1. Each projected variable should appear as selected columns in the SQL SELECT statement.
  2. The name of the Data Source (which is the DAP resource ID) should be used in the FROM section of the SELECT statement.

DAP Selection

  1. Each clause should be converted (where possible) into a condition in the SQL SELECT statements WHERE clause.
  2. Array sub-setting cannot be encoded in the SQL query and must happen once the row set response has been received.


For example, the request:

http://localhost/opendap/rdh/foo?v,u&lat<26&lat>24&lon<-126&lon>-128

would be converted in the SQL query:

SELECT v, u FROM foo WHERE lat<26 AND lat>24 AND lon<-126 AND lon>-128

Additionally we may wish to add:

  1. The use of a limited regular expression type of matching in the CE which could be used to create SQL "LIKE" operators.
  2. Some kind of a range operation that would map to SQL "BETWEEN" operator.

Server Side Functions

Additionally we may wish to add:

  1. A server side function that allows the user to specify that they only wish to receive unique (aka distinct) values in the response. This would utilize the SQL "DISTINCT" operator.