Disable auto-table create with ILP?

If I send data over ILP, QuestDB will automatically create a table if it does not exist. I want to disable this, as I want to make sure my tables are always created beforehand with the right structure (partitioning, deduplication, data types…) rather than with the guessed structure by the engine.

How can I do this?

QuestDB supports a flag for this. It is undocumented, but since it is open source, it can be found at the repository.

I just tried it out via env variable QDB_LINE_AUTO_CREATE_NEW_TABLES = false. If I try to send data via ILP I get

error in line 1: table: trades; table does not exist, creating new tables is disabled

There is also a similar flag to avoid auto column creation.

If using QuestDB Cloud or QuestDB Enterprise, ACLs could be used so users or service accounts with the ILP grant don’t have permissions to CREATE TABLE or ADD COLUMN.