Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

In TQL, a query is any operations on the model instance data (or model data), which includes filtering, joining, and manipulations. Model instances are incarnations of the Models (or model definitions) through instantiation. The TQLEngine stores the latest version of the model instance data, which is accessible to TQL Queries. See data storage for more details.

There is a special type of query which allows you to show or list the model definitions themselves. See /wiki/spaces/TQLDocs/pages/1179668 for details.

Like conventional queries, TQL queries perform CRUD operations on data. but unlike conventional database queries, TQL queries are:

(1) Current. The TQLEngine maintains the latest versions of any attribute values and attribute known values based on the model definitions. For example, the latest reading of a temperature sensor value. TQL queries always return those latest versions.

(2) Model-driven. Since the model definitions define the structure of the model data, the TQLEngine constructs the database queries based on the model definition to retrieve requested data or perform other CRUD operations. The model definition is NOT the data schema. Model instance data are saved in schemaless key value pairs.

(3) Actionable. Modifications of model data via TQL queries, if involving actionable attributes, can result in activation of actions, some of which may subsequently execute device actuations.

Each model attribute has both a value and a known value. Although you can "FIND" both values and known values of model attributes, you can only set values but not known values from queries. This is because the known values are reserved to be updated only by the result of Actions, which comes from external systems or external things.

TQL queries have the following standard structures:

FIND          CREATE          SAVE          UPDATE          DELETE          DELETEALL

In addition,  you can use other operations such as conditions/constraints, response modifications, iterations, etc. within the queries.

  • No labels