Changeset: 4af8fff938fb for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4af8fff938fb Modified Files: sql/backends/monet5/miniseed/registrar.c Branch: DVframework Log Message:
Renewed register functions. diffs (truncated from 560 to 300 lines): diff --git a/sql/backends/monet5/miniseed/registrar.c b/sql/backends/monet5/miniseed/registrar.c --- a/sql/backends/monet5/miniseed/registrar.c +++ b/sql/backends/monet5/miniseed/registrar.c @@ -10,6 +10,10 @@ #include "sql_mvc.h" #include "sql.h" +#include "stream.h" +#include "sql_scenario.h" +#include "mal_linker.h" + #ifdef HAVE_PTHREAD_H #include <pthread.h> #endif @@ -42,6 +46,7 @@ typedef struct { int mode; /* carries to the thread */ Client cntxt; /* carries to the thread */ int *function_created; + int base_file_id; } thread_argv; lng get_line_num(str filename); @@ -55,16 +60,17 @@ str mseed_create_temp_container(temp_con str mseed_create_temp_container_with_data_tables(temp_container* ret_tc); str mseed_create_temp_container_segments_mode(temp_container* ret_tc); str mseed_create_temp_container_with_data_tables_segments_mode(temp_container* ret_tc); -str mseed_register(str file_path, temp_container* ret_tc); -str mseed_register_and_mount(str file_path, temp_container* ret_tc); -str mseed_register_segments_mode(str file_path, temp_container* ret_tc); -str mseed_register_and_mount_segments_mode(str file_path, temp_container* ret_tc); +str mseed_register(int assigned_file_id, str file_path, temp_container* ret_tc); +str mseed_register_and_mount(int assigned_file_id, str file_path, temp_container* ret_tc); +str mseed_register_segments_mode(int assigned_file_id, str file_path, temp_container* ret_tc); +str mseed_register_and_mount_segments_mode(int assigned_file_id, str file_path, temp_container* ret_tc); int concatenate_strs(str* words_to_concat, int num_words_to_concat, str* ret_concatenated); str prepare_insertion(Client cntxt, temp_container* tc); str insert_into_vault(Client cntxt, temp_container* tc); str SQLstatementIntern(Client c, str *expr, str nme, int execute, bit output); str register_clean_up(temp_container* tc); void *register_files(void *args); +// static str runSQLQuery(Client c, char **result, char * query); pthread_mutex_t create_lock; pthread_mutex_t insert_lock; @@ -976,7 +982,7 @@ str register_clean_up(temp_container* tc * TODO: A better interface can be provided to submit values for the attributes * of tables_to_be_filled. */ -str mseed_register(str file_path, temp_container* ret_tc) +str mseed_register(int assigned_file_id, str file_path, temp_container* ret_tc) { MSRecord *msr = NULL; @@ -998,51 +1004,56 @@ str mseed_register(str file_path, temp_c { if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[0])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) file_path, FALSE); + BUNappend(aBAT, (ptr) &assigned_file_id, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[0]); - + if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[1])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - ch[0] = msr->dataquality; - BUNappend(aBAT, (ptr) ch, FALSE); + BUNappend(aBAT, (ptr) file_path, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[1]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[2])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) msr->network, FALSE); + ch[0] = msr->dataquality; + BUNappend(aBAT, (ptr) ch, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[2]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[3])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) msr->station, FALSE); + BUNappend(aBAT, (ptr) msr->network, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[3]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[4])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) msr->location, FALSE); + BUNappend(aBAT, (ptr) msr->station, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[4]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[5])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) msr->channel, FALSE); + BUNappend(aBAT, (ptr) msr->location, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[5]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[6])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) &(msr->encoding), FALSE); + BUNappend(aBAT, (ptr) msr->channel, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[6]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[7])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); + BUNappend(aBAT, (ptr) &(msr->encoding), FALSE); + BBPreleaseref(ret_tc->tables_columns[0].column_bats[7]); + + if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[8])) == NULL) + throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); BUNappend(aBAT, (ptr) &(msr->byteorder), FALSE); - BBPreleaseref(ret_tc->tables_columns[0].column_bats[7]); + BBPreleaseref(ret_tc->tables_columns[0].column_bats[8]); files_done = TRUE; } if ((aBAT = BATdescriptor(ret_tc->tables_columns[1].column_bats[0])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) file_path, FALSE); + BUNappend(aBAT, (ptr) &assigned_file_id, FALSE); BBPreleaseref(ret_tc->tables_columns[1].column_bats[0]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[1].column_bats[1])) == NULL) @@ -1105,7 +1116,7 @@ str mseed_register(str file_path, temp_c * TODO: A better interface can be provided to submit values for the attributes * of tables_to_be_filled. */ -str mseed_register_and_mount(str file_path, temp_container* ret_tc) +str mseed_register_and_mount(int assigned_file_id, str file_path, temp_container* ret_tc) { MSRecord *msr = NULL; @@ -1130,51 +1141,56 @@ str mseed_register_and_mount(str file_pa { if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[0])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) file_path, FALSE); + BUNappend(aBAT, (ptr) &assigned_file_id, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[0]); - + if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[1])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - ch[0] = msr->dataquality; - BUNappend(aBAT, (ptr) ch, FALSE); + BUNappend(aBAT, (ptr) file_path, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[1]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[2])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) msr->network, FALSE); + ch[0] = msr->dataquality; + BUNappend(aBAT, (ptr) ch, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[2]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[3])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) msr->station, FALSE); + BUNappend(aBAT, (ptr) msr->network, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[3]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[4])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) msr->location, FALSE); + BUNappend(aBAT, (ptr) msr->station, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[4]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[5])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) msr->channel, FALSE); + BUNappend(aBAT, (ptr) msr->location, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[5]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[6])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) &(msr->encoding), FALSE); + BUNappend(aBAT, (ptr) msr->channel, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[6]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[7])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); + BUNappend(aBAT, (ptr) &(msr->encoding), FALSE); + BBPreleaseref(ret_tc->tables_columns[0].column_bats[7]); + + if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[8])) == NULL) + throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); BUNappend(aBAT, (ptr) &(msr->byteorder), FALSE); - BBPreleaseref(ret_tc->tables_columns[0].column_bats[7]); + BBPreleaseref(ret_tc->tables_columns[0].column_bats[8]); files_done = TRUE; } if ((aBAT = BATdescriptor(ret_tc->tables_columns[1].column_bats[0])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) file_path, FALSE); + BUNappend(aBAT, (ptr) &assigned_file_id, FALSE); BBPreleaseref(ret_tc->tables_columns[1].column_bats[0]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[1].column_bats[1])) == NULL) @@ -1237,7 +1253,7 @@ str mseed_register_and_mount(str file_pa MTIMEtimestamp_lng(&sampling_timestamp, &st); /* For each sample add one row to the table */ - BUNappend(bfile, (ptr) file_path, FALSE); + BUNappend(bfile, (ptr) &assigned_file_id, FALSE); BUNappend(bseqno, (ptr) &seq_no, FALSE); BUNappend(btime, (ptr) &sampling_timestamp, FALSE); BUNappend(bdata, (ptr) (data_samples+i), FALSE); @@ -1274,7 +1290,7 @@ str mseed_register_and_mount(str file_pa * TODO: A better interface can be provided to submit values for the attributes * of tables_to_be_filled. */ -str mseed_register_segments_mode(str file_path, temp_container* ret_tc) +str mseed_register_segments_mode(int assigned_file_id, str file_path, temp_container* ret_tc) { MSTraceList *mstl = 0; MSRecord *msr = NULL; @@ -1309,44 +1325,49 @@ str mseed_register_segments_mode(str fil { if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[0])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) file_path, FALSE); + BUNappend(aBAT, (ptr) &assigned_file_id, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[0]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[1])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - ch[0] = msr->dataquality; - BUNappend(aBAT, (ptr) ch, FALSE); + BUNappend(aBAT, (ptr) file_path, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[1]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[2])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) msr->network, FALSE); + ch[0] = msr->dataquality; + BUNappend(aBAT, (ptr) ch, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[2]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[3])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) msr->station, FALSE); + BUNappend(aBAT, (ptr) msr->network, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[3]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[4])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) msr->location, FALSE); + BUNappend(aBAT, (ptr) msr->station, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[4]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[5])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) msr->channel, FALSE); + BUNappend(aBAT, (ptr) msr->location, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[5]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[6])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) &(msr->encoding), FALSE); + BUNappend(aBAT, (ptr) msr->channel, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[6]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[7])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); + BUNappend(aBAT, (ptr) &(msr->encoding), FALSE); + BBPreleaseref(ret_tc->tables_columns[0].column_bats[7]); + + if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[8])) == NULL) + throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); BUNappend(aBAT, (ptr) &(msr->byteorder), FALSE); - BBPreleaseref(ret_tc->tables_columns[0].column_bats[7]); + BBPreleaseref(ret_tc->tables_columns[0].column_bats[8]); files_done = TRUE; } @@ -1374,7 +1395,7 @@ str mseed_register_segments_mode(str fil { if ((aBAT = BATdescriptor(ret_tc->tables_columns[1].column_bats[0])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) file_path, FALSE); + BUNappend(aBAT, (ptr) &assigned_file_id, FALSE); BBPreleaseref(ret_tc->tables_columns[1].column_bats[0]); if ((aBAT = BATdescriptor(ret_tc->tables_columns[1].column_bats[1])) == NULL) @@ -1479,7 +1500,7 @@ str mseed_register_segments_mode(str fil * TODO: A better interface can be provided to submit values for the attributes * of tables_to_be_filled. */ -str mseed_register_and_mount_segments_mode(str file_path, temp_container* ret_tc) +str mseed_register_and_mount_segments_mode(int assigned_file_id, str file_path, temp_container* ret_tc) { MSTraceList *mstl = 0; @@ -1518,44 +1539,49 @@ str mseed_register_and_mount_segments_mo { if ((aBAT = BATdescriptor(ret_tc->tables_columns[0].column_bats[0])) == NULL) throw(MAL, "mseed_register", RUNTIME_OBJECT_MISSING); - BUNappend(aBAT, (ptr) file_path, FALSE); + BUNappend(aBAT, (ptr) &assigned_file_id, FALSE); BBPreleaseref(ret_tc->tables_columns[0].column_bats[0]); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list