Skip to content

Support dots in column name #5117

@Kronos3

Description

@Kronos3

Is your feature request related to a problem?

I'm looking at potentially migrating to QuestDB from InfluxDB though I'm having a problem when trying to create columns with .. Dots are normally supported by InfluxDB (and the official line protocol syntax spec so I expected them to be supported here.

They are very useful since I am logging structured data and 'flattening' it to shove into a single row

For example, if I have an object in the form:

{
  "key1": 0.1,
  "key2": "stringValue",
  "key3": { "nested": [0, 1, 2] } 
}

This will be serialized into line protocol with something like

table key1=0.1,key2="stringValue",key3.nested[0]=0,key3.nested[1]=1,key3.nested[2]=2 TIMESTAMP

This allows me to reconstitute the object from a query without attaching additional metadata to describe to objects structure.

Describe the solution you'd like.

I'd like QuestDB to accept . as a valid column character. I know this character is explicitly not allowed at the moment #412, #2216 (comment) but it's unclear to me why that is necessary as there shouldn't be ambiguity in the line protocol syntax.

Describe alternatives you've considered.

Simply renaming the . to another special character that is supported like & seems to work though this is not optimal seeing as my schema will change and therefore other points that expect serialized nested paths to be named a certain way.

Full Name:

Andrei Tumbar

Affiliation:

NASA Jet Propulsion Laboratory

Additional context

Error for reference:

{"code":"invalid","message":"failed to parse line protocol:errors encountered on line(s):\nerror in line 1: table: TABLE; invalid column name: value.ARRAY_NAME[0]","line":1,"errorId":"21a903fbc762-7"}%                                                                                         

Metadata

Metadata

Assignees

No one assigned

    Labels

    CoreRelated to storage, data type, etc.ILPIssues or changes relating to Influx Line ProtocolNew featureFeature requests

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions