You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "Julian Feinauer (Jira)" <ji...@apache.org> on 2020/10/03 08:35:00 UTC

[jira] [Created] (IOTDB-932) Timeseries with double ticks (") cannot be created via CREATE TIMESErIES but only via INSERT INTO implicitly

Julian Feinauer created IOTDB-932:
-------------------------------------

             Summary: Timeseries with double ticks (") cannot be created via CREATE TIMESErIES but only via INSERT INTO implicitly
                 Key: IOTDB-932
                 URL: https://issues.apache.org/jira/browse/IOTDB-932
             Project: Apache IoTDB
          Issue Type: Bug
          Components: Server
            Reporter: Julian Feinauer
            Assignee: Julian Feinauer


The following works (session API):

 

```

String deviceId = {color:#6a8759}"root.sg1.{color}{color:#cc7832}\"{color}{color:#6a8759}org.pragmaticminds:my.device{color}{color:#cc7832}\"{color}{color:#6a8759}"{color}{color:#cc7832};
{color}List<String> measurements = {color:#cc7832}new {color}ArrayList<>(){color:#cc7832};
{color}measurements.add({color:#6a8759}"s1"{color}){color:#cc7832};
{color}measurements.add({color:#6a8759}"s2"{color}){color:#cc7832};
{color}measurements.add({color:#6a8759}"s3"{color}){color:#cc7832};
{color}measurements.add({color:#6a8759}"s4"{color}){color:#cc7832};
{color}{color:#cc7832}
{color}List<String> values = {color:#cc7832}new {color}ArrayList<>(){color:#cc7832};
{color}values.add({color:#6a8759}"1"{color}){color:#cc7832};
{color}values.add({color:#6a8759}"1.2"{color}){color:#cc7832};
{color}values.add({color:#6a8759}"true"{color}){color:#cc7832};
{color}values.add({color:#6a8759}"dad"{color}){color:#cc7832};
{color}{color:#9876aa}session{color}.insertRecord(deviceId{color:#cc7832}, {color}{color:#6897bb}1L{color}{color:#cc7832}, {color}measurements{color:#cc7832}, {color}values){color:#cc7832};
```
{color}

{color:#cc7832}and the rifht TS is implicitly created.{color}

 

{color:#cc7832}This however fails:{color}

{color:#cc7832}```{color}

String storageGroup = {color:#6a8759}"root.存储组1"{color}{color:#cc7832};
{color}String[] devices = {color:#cc7832}new {color}String[]{
 {color:#6a8759}"设备1.指标1"{color}{color:#cc7832},
{color} {color:#6a8759}"设备1.s2"{color}{color:#cc7832},
{color} {color:#6a8759}"d2.s1"{color}{color:#cc7832},
{color} {color:#6a8759}"d2.指标2"{color}{color:#cc7832},
{color} {color:#6a8759}"{color}{color:#cc7832}\"{color}{color:#6a8759}org.pragmaticminds:my.device{color}{color:#cc7832}\"{color}{color:#6a8759}.指标2"
{color}}{color:#cc7832};
{color}{color:#9876aa}session{color}.setStorageGroup(storageGroup){color:#cc7832};
{color}{color:#cc7832}for {color}(String path : devices) {
 String fullPath = storageGroup + TsFileConstant.{color:#9876aa}PATH_SEPARATOR {color}+ path{color:#cc7832};
{color} {color:#9876aa}session{color}.createTimeseries(fullPath{color:#cc7832}, {color}TSDataType.{color:#9876aa}INT64{color}{color:#cc7832}, {color}TSEncoding.{color:#9876aa}RLE{color}{color:#cc7832}, {color}CompressionType.{color:#9876aa}SNAPPY{color}){color:#cc7832};
{color}}

{color:#cc7832}```{color}

 

{color:#cc7832}This is due to the Method `TSServiceImpl.{color}{color:#ffc66d}checkPathValidity()` which uses a REGEX that is not in sync with the Parser.
{color}

 

{color:#ffc66d}I suggest to remove this method and all checks to it as its simply redundant functionality and we should simply let the parser determine (as single source of truth) what is allowed syntax and what not.{color}

 

{color:#ffc66d}WDYT?{color}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)