json-input iterate

This commit is contained in:
John Kerl 2016-01-31 23:40:52 -05:00
parent a2f0d20692
commit 4eb8e1b207
16 changed files with 29 additions and 29 deletions

View file

@ -168,7 +168,7 @@ join_bucket_keeper_t* join_bucket_keeper_alloc_from_reader(
join_bucket_keeper_t* pkeeper = mlr_malloc_or_die(sizeof(join_bucket_keeper_t));
void* pvhandle = plrec_reader->popen_func(plrec_reader->pvstate, prepipe, left_file_name);
plrec_reader->psof_func(plrec_reader->pvstate);
plrec_reader->psof_func(plrec_reader->pvstate, pvhandle);
context_t* pctx = mlr_malloc_or_die(sizeof(context_t));
context_init(pctx, left_file_name);

View file

@ -12,7 +12,7 @@ struct _lrec_reader_t; // forward reference for method declarations
typedef void* lrec_reader_open_func_t(void* pvstate, char* prepipe, char* filename);
typedef void lrec_reader_close_func_t(void* pvstate, void* pvhandle, char* prepipe);
typedef lrec_t* lrec_reader_process_func_t(void* pvstate, void* pvhandle, context_t* pctx);
typedef void lrec_reader_sof_func_t(void* pvstate);
typedef void lrec_reader_sof_func_t(void* pvstate, void* pvhandle);
typedef void lrec_reader_free_func_t(struct _lrec_reader_t* preader);
typedef struct _lrec_reader_t {

View file

@ -12,7 +12,7 @@ typedef struct _lrec_reader_in_memory_state_t {
} lrec_reader_in_memory_state_t;
static void lrec_reader_in_memory_free(lrec_reader_t* preader);
static void lrec_reader_in_memory_sof(void* pvstate);
static void lrec_reader_in_memory_sof(void* pvstate, void* pvhandle);
static lrec_t* lrec_reader_in_memory_process(void* pvstate, void* pvhandle, context_t* pctx);
static void* lrec_reader_in_memory_vopen(void* pvstate, char* prepipe, char* filename);
static void lrec_reader_in_memory_vclose(void* pvstate, void* pvhandle, char* prepipe);
@ -42,7 +42,7 @@ static void lrec_reader_in_memory_free(lrec_reader_t* preader) {
}
// No-op for stateless readers such as this one.
static void lrec_reader_in_memory_sof(void* pvstate) {
static void lrec_reader_in_memory_sof(void* pvstate, void* pvhandle) {
}
// ----------------------------------------------------------------

View file

@ -64,7 +64,7 @@ typedef struct _lrec_reader_mmap_csv_state_t {
} lrec_reader_mmap_csv_state_t;
static void lrec_reader_mmap_csv_free(lrec_reader_t* preader);
static void lrec_reader_mmap_csv_sof(void* pvstate);
static void lrec_reader_mmap_csv_sof(void* pvstate, void* pvhandle);
static lrec_t* lrec_reader_mmap_csv_process(void* pvstate, void* pvhandle, context_t* pctx);
static int lrec_reader_mmap_csv_get_fields(lrec_reader_mmap_csv_state_t* pstate,
rslls_t* pfields, file_reader_mmap_state_t* phandle);
@ -139,7 +139,7 @@ static void lrec_reader_mmap_csv_free(lrec_reader_t* preader) {
}
// ----------------------------------------------------------------
static void lrec_reader_mmap_csv_sof(void* pvstate) {
static void lrec_reader_mmap_csv_sof(void* pvstate, void* pvhandle) {
lrec_reader_mmap_csv_state_t* pstate = pvstate;
pstate->ilno = 0LL;
pstate->expect_header_line_next = pstate->use_implicit_header ? FALSE : TRUE;

View file

@ -43,7 +43,7 @@ typedef struct _lrec_reader_mmap_csvlite_state_t {
} lrec_reader_mmap_csvlite_state_t;
static void lrec_reader_mmap_csvlite_free(lrec_reader_t* preader);
static void lrec_reader_mmap_csvlite_sof(void* pvstate);
static void lrec_reader_mmap_csvlite_sof(void* pvstate, void* pvhandle);
static lrec_t* lrec_reader_mmap_csvlite_process_single_seps(void* pvstate, void* pvhandle, context_t* pctx);
static lrec_t* lrec_reader_mmap_csvlite_process_multi_seps(void* pvstate, void* pvhandle, context_t* pctx);
@ -108,7 +108,7 @@ static void lrec_reader_mmap_csvlite_free(lrec_reader_t* preader) {
free(preader);
}
static void lrec_reader_mmap_csvlite_sof(void* pvstate) {
static void lrec_reader_mmap_csvlite_sof(void* pvstate, void* pvhandle) {
lrec_reader_mmap_csvlite_state_t* pstate = pvstate;
pstate->ifnr = 0LL;
pstate->ilno = 0LL;

View file

@ -16,7 +16,7 @@ typedef struct _lrec_reader_mmap_dkvp_state_t {
} lrec_reader_mmap_dkvp_state_t;
static void lrec_reader_mmap_dkvp_free(lrec_reader_t* preader);
static void lrec_reader_mmap_dkvp_sof(void* pvstate);
static void lrec_reader_mmap_dkvp_sof(void* pvstate, void* pvhandle);
static lrec_t* lrec_reader_mmap_dkvp_process_single_irs_single_others(void* pvstate, void* pvhandle, context_t* pctx);
static lrec_t* lrec_reader_mmap_dkvp_process_single_irs_multi_others(void* pvstate, void* pvhandle, context_t* pctx);
static lrec_t* lrec_reader_mmap_dkvp_process_multi_irs_single_others(void* pvstate, void* pvhandle, context_t* pctx);
@ -59,7 +59,7 @@ static void lrec_reader_mmap_dkvp_free(lrec_reader_t* preader) {
}
// No-op for stateless readers such as this one.
static void lrec_reader_mmap_dkvp_sof(void* pvstate) {
static void lrec_reader_mmap_dkvp_sof(void* pvstate, void* pvhandle) {
}
// ----------------------------------------------------------------

View file

@ -31,7 +31,7 @@ typedef struct _lrec_reader_mmap_json_state_t {
} lrec_reader_mmap_json_state_t;
static void lrec_reader_mmap_json_free(lrec_reader_t* preader);
static void lrec_reader_mmap_json_sof(void* pvstate);
static void lrec_reader_mmap_json_sof(void* pvstate, void* pvhandle);
static lrec_t* lrec_reader_mmap_json_process(void* pvstate, void* pvhandle, context_t* pctx);
// ----------------------------------------------------------------
@ -61,8 +61,8 @@ static void lrec_reader_mmap_json_free(lrec_reader_t* preader) {
}
// xxx cmt non-streaming; ingest-all here.
static void lrec_reader_mmap_json_sof(void* pvstate) {
// xxx parse
static void lrec_reader_mmap_json_sof(void* pvstate, void* pvhandle) {
}
// ----------------------------------------------------------------

View file

@ -12,7 +12,7 @@ typedef struct _lrec_reader_mmap_nidx_state_t {
} lrec_reader_mmap_nidx_state_t;
static void lrec_reader_mmap_nidx_free(lrec_reader_t* preader);
static void lrec_reader_mmap_nidx_sof(void* pvstate);
static void lrec_reader_mmap_nidx_sof(void* pvstate, void* pvhandle);
static lrec_t* lrec_reader_mmap_nidx_process_single_irs_single_ifs(void* pvstate, void* pvhandle, context_t* pctx);
static lrec_t* lrec_reader_mmap_nidx_process_single_irs_multi_ifs(void* pvstate, void* pvhandle, context_t* pctx);
static lrec_t* lrec_reader_mmap_nidx_process_multi_irs_single_ifs(void* pvstate, void* pvhandle, context_t* pctx);
@ -55,7 +55,7 @@ static void lrec_reader_mmap_nidx_free(lrec_reader_t* preader) {
}
// No-op for stateless readers such as this one.
static void lrec_reader_mmap_nidx_sof(void* pvstate) {
static void lrec_reader_mmap_nidx_sof(void* pvstate, void* pvhandle) {
}
// ----------------------------------------------------------------

View file

@ -13,7 +13,7 @@ typedef struct _lrec_reader_mmap_xtab_state_t {
} lrec_reader_mmap_xtab_state_t;
static void lrec_reader_mmap_xtab_free(lrec_reader_t* preader);
static void lrec_reader_mmap_xtab_sof(void* pvstate);
static void lrec_reader_mmap_xtab_sof(void* pvstate, void* pvhandle);
static lrec_t* lrec_reader_mmap_xtab_process_single_ifs_single_ips(void* pvstate, void* pvhandle, context_t* pctx);
static lrec_t* lrec_reader_mmap_xtab_process_single_ifs_multi_ips(void* pvstate, void* pvhandle, context_t* pctx);
static lrec_t* lrec_reader_mmap_xtab_process_multi_ifs_single_ips(void* pvstate, void* pvhandle, context_t* pctx);
@ -56,7 +56,7 @@ static void lrec_reader_mmap_xtab_free(lrec_reader_t* preader) {
free(preader);
}
static void lrec_reader_mmap_xtab_sof(void* pvstate) {
static void lrec_reader_mmap_xtab_sof(void* pvstate, void* pvhandle) {
}
// ----------------------------------------------------------------

View file

@ -70,7 +70,7 @@ typedef struct _lrec_reader_stdio_csv_state_t {
} lrec_reader_stdio_csv_state_t;
static void lrec_reader_stdio_csv_free(lrec_reader_t* preader);
static void lrec_reader_stdio_csv_sof(void* pvstate);
static void lrec_reader_stdio_csv_sof(void* pvstate, void* pvhandle);
static lrec_t* lrec_reader_stdio_csv_process(void* pvstate, void* pvhandle, context_t* pctx);
static int lrec_reader_stdio_csv_get_fields(lrec_reader_stdio_csv_state_t* pstate, rslls_t* pfields);
static lrec_t* paste_indices_and_data(lrec_reader_stdio_csv_state_t* pstate, rslls_t* pdata_fields,
@ -157,7 +157,7 @@ static void lrec_reader_stdio_csv_free(lrec_reader_t* preader) {
}
// ----------------------------------------------------------------
static void lrec_reader_stdio_csv_sof(void* pvstate) {
static void lrec_reader_stdio_csv_sof(void* pvstate, void* pvhandle) {
lrec_reader_stdio_csv_state_t* pstate = pvstate;
pstate->ilno = 0LL;
pstate->expect_header_line_next = pstate->use_implicit_header ? FALSE : TRUE;

View file

@ -52,7 +52,7 @@ typedef struct _lrec_reader_stdio_csvlite_state_t {
} lrec_reader_stdio_csvlite_state_t;
static void lrec_reader_stdio_csvlite_free(lrec_reader_t* preader);
static void lrec_reader_stdio_sof(void* pvstate);
static void lrec_reader_stdio_sof(void* pvstate, void* pvhandle);
static lrec_t* lrec_reader_stdio_csvlite_process(void* pvstate, void* pvhandle, context_t* pctx);
// ----------------------------------------------------------------
@ -94,7 +94,7 @@ static void lrec_reader_stdio_csvlite_free(lrec_reader_t* preader) {
}
// ----------------------------------------------------------------
static void lrec_reader_stdio_sof(void* pvstate) {
static void lrec_reader_stdio_sof(void* pvstate, void* pvhandle) {
lrec_reader_stdio_csvlite_state_t* pstate = pvstate;
pstate->ifnr = 0LL;
pstate->ilno = 0LL;

View file

@ -17,7 +17,7 @@ typedef struct _lrec_reader_stdio_dkvp_state_t {
} lrec_reader_stdio_dkvp_state_t;
static void lrec_reader_stdio_dkvp_free(lrec_reader_t* preader);
static void lrec_reader_stdio_dkvp_sof(void* pvstate);
static void lrec_reader_stdio_dkvp_sof(void* pvstate, void* pvhandle);
static lrec_t* lrec_reader_stdio_dkvp_process_single_irs_single_others(void* pvstate, void* pvhandle, context_t* pctx);
static lrec_t* lrec_reader_stdio_dkvp_process_single_irs_multi_others(void* pvstate, void* pvhandle, context_t* pctx);
static lrec_t* lrec_reader_stdio_dkvp_process_multi_irs_single_others(void* pvstate, void* pvhandle, context_t* pctx);
@ -60,7 +60,7 @@ static void lrec_reader_stdio_dkvp_free(lrec_reader_t* preader) {
}
// No-op for stateless readers such as this one.
static void lrec_reader_stdio_dkvp_sof(void* pvstate) {
static void lrec_reader_stdio_dkvp_sof(void* pvstate, void* pvhandle) {
}
// ----------------------------------------------------------------

View file

@ -13,7 +13,7 @@ typedef struct _lrec_reader_stdio_nidx_state_t {
} lrec_reader_stdio_nidx_state_t;
static void lrec_reader_stdio_nidx_free(lrec_reader_t* preader);
static void lrec_reader_stdio_nidx_sof(void* pvstate);
static void lrec_reader_stdio_nidx_sof(void* pvstate, void* pvhandle);
static lrec_t* lrec_reader_stdio_nidx_process_single_irs_single_ifs(void* pvstate, void* pvhandle, context_t* pctx);
static lrec_t* lrec_reader_stdio_nidx_process_single_irs_multi_ifs(void* pvstate, void* pvhandle, context_t* pctx);
static lrec_t* lrec_reader_stdio_nidx_process_multi_irs_single_ifs(void* pvstate, void* pvhandle, context_t* pctx);
@ -54,7 +54,7 @@ static void lrec_reader_stdio_nidx_free(lrec_reader_t* preader) {
}
// No-op for stateless readers such as this one.
static void lrec_reader_stdio_nidx_sof(void* pvstate) {
static void lrec_reader_stdio_nidx_sof(void* pvstate, void* pvhandle) {
}
// ----------------------------------------------------------------

View file

@ -15,7 +15,7 @@ typedef struct _lrec_reader_stdio_xtab_state_t {
} lrec_reader_stdio_xtab_state_t;
static void lrec_reader_stdio_xtab_free(lrec_reader_t* preader);
static void lrec_reader_stdio_xtab_sof(void* pvstate);
static void lrec_reader_stdio_xtab_sof(void* pvstate, void* pvhandle);
static lrec_t* lrec_reader_stdio_xtab_process(void* pvstate, void* pvhandle, context_t* pctx);
// ----------------------------------------------------------------
@ -45,7 +45,7 @@ static void lrec_reader_stdio_xtab_free(lrec_reader_t* preader) {
free(preader);
}
static void lrec_reader_stdio_xtab_sof(void* pvstate) {
static void lrec_reader_stdio_xtab_sof(void* pvstate, void* pvhandle) {
lrec_reader_stdio_xtab_state_t* pstate = pvstate;
pstate->at_eof = FALSE;
}

View file

@ -505,7 +505,7 @@ static void ingest_left_file(mapper_join_state_t* pstate) {
void* pvhandle = plrec_reader->popen_func(plrec_reader->pvstate, pstate->popts->prepipe,
pstate->popts->left_file_name);
plrec_reader->psof_func(plrec_reader->pvstate);
plrec_reader->psof_func(plrec_reader->pvstate, pvhandle);
context_t ctx = { .nr = 0, .fnr = 0, .filenum = 1, .filename = pstate->popts->left_file_name };
context_t* pctx = &ctx;

View file

@ -64,7 +64,7 @@ static int do_file_chained(char* prepipe, char* filename, context_t* pctx,
void* pvhandle = plrec_reader->popen_func(plrec_reader->pvstate, prepipe, filename);
// Start-of-file hook, e.g. expecting CSV headers on input.
plrec_reader->psof_func(plrec_reader->pvstate);
plrec_reader->psof_func(plrec_reader->pvstate, pvhandle);
while (1) {
lrec_t* pinrec = plrec_reader->pprocess_func(plrec_reader->pvstate, pvhandle, pctx);