cnosdb

When querying for data containing `\` No field named


When I use the where condition to match the data containing / it says No field named

public ❯ select * from mqtt_consumer limit 10;
+-------------------------------+--------------------+------------------------+--------------------+
| time                          | topic              | performance_activation | time_activation    |
+-------------------------------+--------------------+------------------------+--------------------+
| 2024-06-27T06:31:22.203227346 | sensors/activation | 19.328101094847515     | 26.856237052074817 |
| 2024-06-27T06:31:23.207314888 | sensors/activation | 61.598580777367005     | 53.612591775556886 |
| 2024-06-27T06:31:24.208854263 | sensors/activation | 80.02786075710074      | 57.167999081609786 |
| 2024-06-27T06:31:25.210799208 | sensors/activation | 98.98474977501623      | 22.953056836471283 |
| 2024-06-27T06:31:26.211302625 | sensors/activation | 49.916298791053215     | 8.198248465125758  |
| 2024-06-27T06:31:27.214480084 | sensors/activation | 18.184126975880464     | 0.4830122264985766 |
| 2024-06-27T06:31:28.218643626 | sensors/activation | 53.78084514606698      | 54.888674844135735 |
| 2024-06-27T06:31:29.224451376 | sensors/activation | 88.32009858311108      | 37.332068586185876 |
| 2024-06-27T06:31:30.225176127 | sensors/activation | 9.30493354696381       | 61.23087737886471  |
| 2024-06-27T06:31:31.227389294 | sensors/activation | 8.63619374306103       | 38.906050960079625 |
+-------------------------------+--------------------+------------------------+--------------------+

Using the where condition to match data with the / symbol prompts the following message:

public ❯ select * from mqtt_consumer where topic = "sensors/activation" limit 10;
422 Unprocessable Entity, details: {"error_code":"010001","error_message":"Datafusion: Schema error: No field named \"sensors/activation\". Valid fields are mqtt_consumer.time, mqtt_consumer.topic, mqtt_consumer.performance_activation, mqtt_consumer.time_activation."}

Solution

  • Single quotes should be used when the matching condition contains / or other special symbols.

    public ❯ select * from mqtt_consumer where topic = 'sensors/activation' limit 10;
    +-------------------------------+--------------------+------------------------+--------------------+
    | time                          | topic              | performance_activation | time_activation    |
    +-------------------------------+--------------------+------------------------+--------------------+
    | 2024-06-27T06:31:22.203227346 | sensors/activation | 19.328101094847515     | 26.856237052074817 |
    | 2024-06-27T06:31:23.207314888 | sensors/activation | 61.598580777367005     | 53.612591775556886 |
    | 2024-06-27T06:31:24.208854263 | sensors/activation | 80.02786075710074      | 57.167999081609786 |
    | 2024-06-27T06:31:25.210799208 | sensors/activation | 98.98474977501623      | 22.953056836471283 |
    | 2024-06-27T06:31:26.211302625 | sensors/activation | 49.916298791053215     | 8.198248465125758  |
    | 2024-06-27T06:31:27.214480084 | sensors/activation | 18.184126975880464     | 0.4830122264985766 |
    | 2024-06-27T06:31:28.218643626 | sensors/activation | 53.78084514606698      | 54.888674844135735 |
    | 2024-06-27T06:31:29.224451376 | sensors/activation | 88.32009858311108      | 37.332068586185876 |
    | 2024-06-27T06:31:30.225176127 | sensors/activation | 9.30493354696381       | 61.23087737886471  |
    | 2024-06-27T06:31:31.227389294 | sensors/activation | 8.63619374306103       | 38.906050960079625 |
    +-------------------------------+--------------------+------------------------+--------------------+