Bug: Random tables are created

I’m using the latest version with he Go client on an AWS EC2 instance. I see more and more random tables created based on what looks like some of the payload/column values. This is happening random.

Here is the Go code or the main thread:

	ctx = context.TODO()
	qb, err = qdb.LineSenderFromConf(ctx, CONNECTION_STRING)
	if err != nil {
		panic("Failed to create QuestDB client")
	}

In another thread is this code:

	err = qb.Table(QUESTDB_TABLE).
		Symbol("Symbol", delta.Data.Symbol).
		Float64Column("lastPrice", lastPrice).
		At(ctx, t)

	if err != nil {
		logger.Error("Failed to insert data")
	}

	err = qb.Flush(ctx)
	if err != nil {
		logger.Error("Failed to flush data")
	}

And in another thread tis this code:

	err = qb.Table(QUESTDB_TABLE).
		Symbol("Ticker", msg.Ticker).
		Symbol("Exchange", msg.Exchange).
		Symbol("Indicator", msg.Indicator).
		Int64Column("Interval", msg.Interval).
		Float64Column("Close", msg.Close).
		Float64Column("Open", msg.Open).
		Float64Column("High", msg.High).
		Float64Column("Low", msg.Low).
		StringColumn("Message", msg.Message).
		Float64Column("VWAP", msg.VWAP).
		Float64Column("MoneyFlow", msg.MoneyFlow).
		Float64Column("BlueWave", msg.BlueWave).
		At(ctx, msg.Timenow)

	if err != nil {
		fmt.Println("Failed to insert data")
	}

	err = qb.Flush(ctx)
	if err != nil {
		fmt.Println("Failed to flush data")
	}

The constant are shared with these values:

const QUESTDB_TABLE = "bybit_all"
const CONNECTION_STRING = "http::addr=localhost:9000;username=admin;password=quest;"

As you can see, the table name is defined as a const. Why would QuestDB create new, random tables?

I tried setting the environment variable QDB_LINE_AUTO_CREATE_NEW_TABLES to false but it has no affect. Random tables are still created.

Is there a way to disable creating tables via code or a config paramater for the connection string?

Any help would be appreciated.

Thank you!

The client is not thread safe, are you sharing it concurrently?

Usage needs to be serialised.