// ----------------------------------------------------------
  void insertIntoByteArray(LogicalByteArray buf) {
    buf.insertString(datasourceBytes);
    buf.insertString(catalogBytes);
    buf.insertString(schemaBytes);
    buf.insertString(locationBytes);
    buf.insertString(userRoleBytes);

    buf.insertShort(accessMode);
    buf.insertShort(autoCommit);
    buf.insertInt(queryTimeoutSec);
    buf.insertInt(idleTimeoutSec);
    buf.insertInt(loginTimeoutSec);
    buf.insertShort(txnIsolationLevel);
    buf.insertShort(rowSetSize);

    buf.insertInt(diagnosticFlag);
    buf.insertInt(processId);

    buf.insertString(computerNameBytes);
    buf.insertString(windowTextBytes);

    buf.insertInt(ctxACP);
    buf.insertInt(ctxDataLang);
    buf.insertInt(ctxErrorLang);
    buf.insertShort(ctxCtrlInferNXHAR);

    buf.insertShort(cpuToUse);
    buf.insertShort(cpuToUseEnd);
    buf.insertString(connectOptionsBytes);

    clientVersionList.insertIntoByteArray(buf);
  }