/*
 * cdb_sync_command - process sync command
 */
bool
cdb_sync_command(const char *cmd)
{
	elog((Debug_print_qd_mirroring ? LOG : DEBUG5), "QDSYNC: %s", cmd);
	parseCmd(cmd);

	switch (cmdtype)
	{
		case SYNC_XLOG:
			cdb_sync_xlog();
			break;
		case SYNC_POSITION_TO_END:
			cdb_position_to_end();
			break;
		case SYNC_NEW_CHECKPOINT_LOC:
			cdb_new_checkpoint_loc();
			break;
		case SYNC_SHUTDOWN_TOO_FAR_BEHIND:
			return true;
		case SYNC_CLOSE:
			cdb_close();
			elog(LOG,"QDSYNC: master is closing...");
			break;
	}

	return false;
}
Exemple #2
0
static PyObject* cdb_py_close_cdb(PyObject* self) {

  cdb_t *cdb = ((StorageObject*)self)->cdb;

  if (cdb_close(cdb) != CDB_SUCCESS) {
    PyErr_SetFromErrno(PyExc_IOError);
  }

  return self;
}
Exemple #3
0
int cdb_free(cdb_t *cdb) {
    int ret = CDB_SUCCESS;

    if (cdb != NULL) {

        if (cdb->header != NULL) {
            ret = cdb_close(cdb);
            free(cdb->header);
            cdb->header = NULL;
        }

        free(cdb);
        cdb = NULL;
    }

    return ret;
}