Changeset: 37da2416ec9f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/37da2416ec9f
Modified Files:
clients/odbc/driver/ODBCDbc.c
clients/odbc/driver/ODBCDesc.c
clients/odbc/driver/ODBCEnv.c
clients/odbc/driver/ODBCError.c
clients/odbc/driver/ODBCStmt.c
Branch: Oct2020
Log Message:
Modernize struct initialization.
diffs (232 lines):
diff --git a/clients/odbc/driver/ODBCDbc.c b/clients/odbc/driver/ODBCDbc.c
--- a/clients/odbc/driver/ODBCDbc.c
+++ b/clients/odbc/driver/ODBCDbc.c
@@ -53,40 +53,16 @@ newODBCDbc(ODBCEnv *env)
addEnvError(env, "HY001", NULL, 0);
return NULL;
}
- assert(dbc);
- dbc->Env = env;
- dbc->Error = NULL;
- dbc->RetrievedErrors = 0;
-
- dbc->dsn = NULL;
- dbc->uid = NULL;
- dbc->pwd = NULL;
- dbc->host = NULL;
- dbc->port = 0;
- dbc->dbname = NULL;
-
- dbc->Connected = false;
- dbc->has_comment = false;
- dbc->sql_attr_autocommit = SQL_AUTOCOMMIT_ON; /* default is
autocommit */
- dbc->sql_attr_metadata_id = SQL_FALSE;
- dbc->sql_attr_connection_timeout = 0;
- dbc->mid = NULL;
- dbc->major = 0;
- dbc->minor = 0;
- dbc->patch = 0;
- dbc->cachelimit = 0;
- dbc->qtimeout = 0;
- dbc->Mdebug = 0;
-
- dbc->FirstStmt = NULL;
-
- /* add this dbc to start of the administrative linked dbc list */
- dbc->next = env->FirstDbc;
+ *dbc = (ODBCDbc) {
+ .Env = env,
+ .sql_attr_autocommit = SQL_AUTOCOMMIT_ON, /* default is
autocommit */
+ .sql_attr_metadata_id = SQL_FALSE,
+ /* add this dbc to start of the administrative linked dbc list
*/
+ .next = env->FirstDbc,
+ .Type = ODBC_DBC_MAGIC_NR, /* set it valid */
+ };
env->FirstDbc = dbc;
-
- dbc->Type = ODBC_DBC_MAGIC_NR; /* set it valid */
-
return dbc;
}
diff --git a/clients/odbc/driver/ODBCDesc.c b/clients/odbc/driver/ODBCDesc.c
--- a/clients/odbc/driver/ODBCDesc.c
+++ b/clients/odbc/driver/ODBCDesc.c
@@ -30,22 +30,14 @@ newODBCDesc(ODBCDbc *dbc)
addDbcError(dbc, "HY001", NULL, 0);
return NULL;
}
- assert(desc);
- desc->Dbc = dbc;
- desc->Error = NULL;
- desc->RetrievedErrors = 0;
- desc->Stmt = NULL;
- desc->descRec = NULL;
- desc->sql_desc_alloc_type = SQL_DESC_ALLOC_USER;
- desc->sql_desc_array_size = 1;
- desc->sql_desc_array_status_ptr = NULL;
- desc->sql_desc_bind_offset_ptr = NULL;
- desc->sql_desc_bind_type = SQL_BIND_TYPE_DEFAULT;
- desc->sql_desc_count = 0;
- desc->sql_desc_rows_processed_ptr = NULL;
-
- desc->Type = ODBC_DESC_MAGIC_NR; /* set it valid */
+ *desc = (ODBCDesc) {
+ .Dbc = dbc,
+ .sql_desc_alloc_type = SQL_DESC_ALLOC_USER,
+ .sql_desc_array_size = 1,
+ .sql_desc_bind_type = SQL_BIND_TYPE_DEFAULT,
+ .Type = ODBC_DESC_MAGIC_NR, /* set it valid */
+ };
return desc;
}
diff --git a/clients/odbc/driver/ODBCEnv.c b/clients/odbc/driver/ODBCEnv.c
--- a/clients/odbc/driver/ODBCEnv.c
+++ b/clients/odbc/driver/ODBCEnv.c
@@ -48,11 +48,9 @@ newODBCEnv(void)
if (env == NULL)
return NULL;
- env->Error = NULL;
- env->RetrievedErrors = 0;
- env->FirstDbc = NULL;
- env->Type = ODBC_ENV_MAGIC_NR;
- env->sql_attr_odbc_version = 0;
+ *env = (ODBCEnv) {
+ .Type = ODBC_ENV_MAGIC_NR,
+ };
return env;
}
diff --git a/clients/odbc/driver/ODBCError.c b/clients/odbc/driver/ODBCError.c
--- a/clients/odbc/driver/ODBCError.c
+++ b/clients/odbc/driver/ODBCError.c
@@ -239,11 +239,12 @@ newODBCError(const char *SQLState, const
return &malloc_error;
}
+ *error = (ODBCError) {
+ .nativeErrorCode = nativeCode,
+ };
+
if (SQLState) {
strcpy_len(error->sqlState, SQLState, sizeof(error->sqlState));
- } else {
- /* initialize it with nulls */
- memset(error->sqlState, 0, sizeof(error->sqlState));
}
if (msg) {
@@ -258,14 +259,9 @@ newODBCError(const char *SQLState, const
/* remove trailing newlines */
len = strlen(error->message);
while (len > 0 && error->message[len - 1] == '\n') {
- error->message[len - 1] = 0;
- len--;
+ error->message[--len] = 0;
}
- } else {
- error->message = NULL;
}
- error->nativeErrorCode = nativeCode;
- error->next = NULL;
return error;
}
diff --git a/clients/odbc/driver/ODBCStmt.c b/clients/odbc/driver/ODBCStmt.c
--- a/clients/odbc/driver/ODBCStmt.c
+++ b/clients/odbc/driver/ODBCStmt.c
@@ -54,46 +54,42 @@ newODBCStmt(ODBCDbc *dbc)
return NULL;
}
- stmt->Dbc = dbc;
- stmt->Error = NULL;
- stmt->RetrievedErrors = 0;
+ *stmt = (ODBCStmt) {
+ .Dbc = dbc,
+ .Error = NULL,
+ .RetrievedErrors = 0,
+
+ .State = INITED,
+ .hdl = mapi_new_handle(dbc->mid),
+ .currentRow = 0,
+ .startRow = 0,
+ .rowSetSize = 0,
+ .queryid = -1,
+ .nparams = 0,
+ .querytype = -1,
+ .rowcount = 0,
- stmt->State = INITED;
- stmt->hdl = mapi_new_handle(dbc->mid);
+ .qtimeout = dbc->qtimeout, /* inherit query timeout */
+
+ .cursorType = SQL_CURSOR_FORWARD_ONLY,
+ .cursorScrollable = SQL_NONSCROLLABLE,
+ .retrieveData = SQL_RD_ON,
+ .noScan = SQL_NOSCAN_OFF,
+
+ .ApplRowDescr = newODBCDesc(dbc),
+ .ApplParamDescr = newODBCDesc(dbc),
+ .ImplRowDescr = newODBCDesc(dbc),
+ .ImplParamDescr = newODBCDesc(dbc),
+
+ .Type = ODBC_STMT_MAGIC_NR, /* set it valid */
+ };
+
if (stmt->hdl == NULL) {
/* Memory allocation error */
addDbcError(dbc, "HY001", NULL, 0);
- free(stmt);
+ destroyODBCStmt(stmt);
return NULL;
}
- assert(stmt->hdl);
-
- stmt->currentRow = 0;
- stmt->startRow = 0;
- stmt->rowSetSize = 0;
- stmt->queryid = -1;
- stmt->nparams = 0;
- stmt->querytype = -1;
- stmt->rowcount = 0;
-
- stmt->qtimeout = dbc->qtimeout; /* inherit query timeout */
-
- /* add this stmt to the administrative linked stmt list */
- stmt->next = dbc->FirstStmt;
- dbc->FirstStmt = stmt;
-
- stmt->cursorType = SQL_CURSOR_FORWARD_ONLY;
- stmt->cursorScrollable = SQL_NONSCROLLABLE;
- stmt->retrieveData = SQL_RD_ON;
- stmt->noScan = SQL_NOSCAN_OFF;
-
- stmt->ApplRowDescr = newODBCDesc(dbc);
- stmt->ApplParamDescr = newODBCDesc(dbc);
- stmt->ImplRowDescr = newODBCDesc(dbc);
- stmt->ImplParamDescr = newODBCDesc(dbc);
- stmt->AutoApplRowDescr = stmt->ApplRowDescr;
- stmt->AutoApplParamDescr = stmt->ApplParamDescr;
-
if (stmt->ApplRowDescr == NULL || stmt->ApplParamDescr == NULL ||
stmt->ImplRowDescr == NULL || stmt->ImplParamDescr == NULL) {
destroyODBCStmt(stmt);
@@ -106,8 +102,12 @@ newODBCStmt(ODBCDbc *dbc)
stmt->ImplParamDescr->sql_desc_alloc_type = SQL_DESC_ALLOC_AUTO;
stmt->ImplRowDescr->Stmt = stmt;
stmt->ImplParamDescr->Stmt = stmt;
+ stmt->AutoApplRowDescr = stmt->ApplRowDescr;
+ stmt->AutoApplParamDescr = stmt->ApplParamDescr;
- stmt->Type = ODBC_STMT_MAGIC_NR; /* set it valid */
+ /* add this stmt to the administrative linked stmt list */
+ stmt->next = dbc->FirstStmt,
+ dbc->FirstStmt = stmt;
return stmt;
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list