void save_paper(struct paper *newpaper, unsigned int batch_number) { PGconn *conn = connect_db_host(DATABASE_NAME, SERVER_ADDRESS); struct predefined_batch *batch; char *electorate_name, *paper_table_name; unsigned int electorate_code; /* get electorate code */ batch = resolve_batch_source(conn, batch_number); electorate_code = batch->electorate_code; /* get electorate name in order to access that Electorates paper table*/ electorate_name = resolve_electorate_name(conn,electorate_code); paper_table_name = sprintf_malloc("%s_paper",electorate_name); SQL_command(conn, "INSERT into %s(batch_number,index,supervisor_tick) " "values(%u, %u, 'f');", paper_table_name, batch_number, newpaper->p.index); free(electorate_name); free(paper_table_name); free(batch); PQfinish(conn); }
void save_paper(struct paper *newpaper, unsigned int batch_number) { PGconn *conn = connect_db_host(DATABASE_NAME, SERVER_ADDRESS); SQL_command(conn, "INSERT into paper(batch_number,index,supervisor_tick) " "values(%u, %u, 'f');", get_current_batch_number(), newpaper->p.index); PQfinish(conn); }
void save_entry(struct entry *newentry, unsigned int batch_number, unsigned int paper_index) { PGconn *conn = connect_db_host(DATABASE_NAME, SERVER_ADDRESS); unsigned int pvn = newentry->e.paper_version_num; append_entry(conn, newentry, batch_number, paper_index, pvn); PQfinish(conn); }
/* DDSv2C: Get Paper */ struct paper *get_paper(unsigned int batch_number, unsigned int paper_index) { PGconn *conn = connect_db_host(DATABASE_NAME, SERVER_ADDRESS); struct paper *ret; unsigned int paper_id, electorate_code; char *electorate_table_name; struct predefined_batch *batch; /* get electorate code */ batch = resolve_batch_source(conn, batch_number); electorate_code = batch->electorate_code; /* get electorate name in order to access that Electorates preference table */ electorate_table_name = resolve_electorate_name(conn,electorate_code); /* find the (internal database) paper_id */ paper_id = SQL_singleton_int(conn, "SELECT id " "FROM paper " "WHERE batch_number = %u " "AND index = %u;", batch_number, paper_index); ret = malloc(sizeof(*ret)); if (paper_id ==(unsigned int) -1) { /* new paper */ ret->p.index = paper_index; ret->p.supervisor_tick = false; ret->entries = NULL; } else { ret = malloc(sizeof(*ret)); ret->entries = get_entries_for_paper(conn, paper_id, electorate_table_name); } free(electorate_table_name); PQfinish(conn); return ret; }