t8y2/dbx · error

IoTDB SHOW VARIABLES did not return TimestampPrecision

Error message

IoTDB SHOW VARIABLES did not return TimestampPrecision

What it means

queryTimestampPrecision runs 'SHOW VARIABLES' and scans rows for the TimestampPrecision variable. If the dataset is exhausted without finding that variable name, the driver cannot determine the server's timestamp precision and fails.

Source

Thrown at agents/drivers/iotdb/driver.go:296

	}
	defer dataset.Close()
	columns := dataset.GetColumnNames()
	variableIndex, valueIndex := int32(1), int32(2)
	for index, column := range columns {
		switch strings.ToLower(strings.TrimSpace(column)) {
		case "variable":
			variableIndex = int32(index + 1)
		case "value":
			valueIndex = int32(index + 1)
		}
	}
	for {
		hasNext, err := dataset.Next()
		if err != nil {
			return "", err
		}
		if !hasNext {
			return "", errors.New("IoTDB SHOW VARIABLES did not return TimestampPrecision")
		}
		variable, err := dataset.GetStringByIndex(variableIndex)
		if err != nil {
			return "", err
		}
		if !strings.EqualFold(strings.ReplaceAll(strings.TrimSpace(variable), "_", ""), "TimestampPrecision") {
			continue
		}
		value, err := dataset.GetStringByIndex(valueIndex)
		if err != nil {
			return "", err
		}
		if precision := normalizeTimestampPrecision(value); precision != "" {
			return precision, nil
		}
		return "", fmt.Errorf("unsupported IoTDB timestamp precision: %s", value)
	}
}

View on GitHub (pinned to c0390bff16)

Solutions

  1. Upgrade or verify the IoTDB server version supports TimestampPrecision in SHOW VARIABLES (check with the CLI: SHOW VARIABLES).
  2. If precision is known/fixed, set it explicitly in connection parameters instead of relying on auto-detection, if the driver supports it.
  3. Match the driver version to the server version (e.g. use an iotdb-session version aligned with the server's).
Defensive patterns

Strategy: try-catch

Try / catch

precision, err := queryTimestampPrecision(client)
if err != nil {
	if strings.Contains(err.Error(), "TimestampPrecision") {
		log.Printf("server does not expose TimestampPrecision; using default ms")
		return "ms", nil // fallback default
	}
	return "", err
}

Prevention

When it happens

Trigger: The connected IoTDB server version does not expose TimestampPrecision in SHOW VARIABLES (older/newer versions), or the result set ends before the variable row appears.

Common situations: Connecting to an older IoTDB release lacking the variable; server configured with restricted variable visibility; driver/server version mismatch.

Related errors


AI-assisted analysis of t8y2/dbx@c0390bff16 (2026-09-05). Data as JSON: /api/errors/2aabc8622b99023a. Report an issue: GitHub.