Tables name convention

While trying to define a camel case name convention to my tables, it looks like this is not possible. Is it expected to be that way and only work in a snake case fashion?

CrateDB (as Postgres) by deafult lower cases all identifiers, if they are not quoted.
If you want to use camel case you always have to quote your identifiers "identifier"

Key words and unquoted identifiers are case insensitive.

i.e.

HelloWorld == helloworld == Helloworld 
"HelloWorld" != HelloWorld

also see

1 Like

Thank you for the pointer.

I was able to define camel case to identifiers inside a table but not for the table’s name:

create table "sampleTable" ("idSample" text);

Throws:

Error!

InvalidRelationName[Relation name "sampleTable" is invalid.]

Ooops, totally missed that. Yes, for table name special naming restrictions apply:

  • may not contain one of the following characters: \ / * ? " < > | <whitespace> , # .
  • may not contain upper case letters
  • may not start with an underscore: _
  • should not exceed 255 bytes when encoded with utf-8 (this limit applies on the optionally schema-qualified table name)

will check with the db team why this restriction is in place :confused:

1 Like

Thank you, I would appreciate to know why if the case is that this can’t be done.

1 Like

It seems like this is an old technical restriction, that was in place in the way table objects were handled in the past. Maybe this restriction can be lifted in the future without too much hassle.

2 Likes

Awesome, thank you @proddata!

2 Likes