Generated by Cython 3.1.1
Yellow lines hint at Python interaction.
Click on a line that starts with a "+
" to see the C code that Cython generated for it.
Raw output: dataframe.pxi
0001: # See: dataframe.md for technical overview.
0002:
0003: # Auto-flush settings.
0004: # The individual `interval`, `row_count` and `byte_count`
0005: # settings are set to `-1` when disabled.
0006: # If `.enabled`, then at least one of the settings are `!= -1`.
+0007: cdef struct auto_flush_mode_t:
struct __pyx_t_7questdb_7ingress_auto_flush_mode_t { int enabled; int64_t interval; int64_t row_count; int64_t byte_count; };
0008: bint enabled
0009: int64_t interval
0010: int64_t row_count
0011: int64_t byte_count
0012:
0013:
+0014: cdef struct auto_flush_t:
struct __pyx_t_7questdb_7ingress_auto_flush_t { struct line_sender *sender; struct __pyx_t_7questdb_7ingress_auto_flush_mode_t mode; int64_t *last_flush_ms; };
0015: line_sender* sender
0016: auto_flush_mode_t mode
0017: int64_t* last_flush_ms
0018:
0019:
+0020: cdef auto_flush_t auto_flush_blank() noexcept nogil:
static struct __pyx_t_7questdb_7ingress_auto_flush_t __pyx_f_7questdb_7ingress_auto_flush_blank(void) { struct __pyx_t_7questdb_7ingress_auto_flush_t __pyx_v_af; struct __pyx_t_7questdb_7ingress_auto_flush_t __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
0021: cdef auto_flush_t af
+0022: af.sender = NULL
__pyx_v_af.sender = NULL;
+0023: af.mode.enabled = False
__pyx_v_af.mode.enabled = 0;
+0024: af.mode.interval = -1
__pyx_v_af.mode.interval = -1L;
+0025: af.mode.row_count = -1
__pyx_v_af.mode.row_count = -1L;
+0026: af.mode.byte_count = -1
__pyx_v_af.mode.byte_count = -1L;
+0027: af.last_flush_ms = NULL
__pyx_v_af.last_flush_ms = NULL;
+0028: return af
__pyx_r = __pyx_v_af; goto __pyx_L0;
0029:
+0030: cdef bint should_auto_flush(
static int __pyx_f_7questdb_7ingress_should_auto_flush(struct __pyx_t_7questdb_7ingress_auto_flush_mode_t const *__pyx_v_af_mode, struct line_sender_buffer *__pyx_v_ls_buf, int64_t __pyx_v_last_flush_ms) { int __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
0031: const auto_flush_mode_t* af_mode,
0032: line_sender_buffer* ls_buf,
0033: int64_t last_flush_ms):
+0034: if not af_mode.enabled:
__pyx_t_1 = (!(__pyx_v_af_mode->enabled != 0)); if (__pyx_t_1) { /* … */ }
+0035: return False
__pyx_r = 0; goto __pyx_L0;
0036:
0037: # Check `auto_flush_rows` breach.
+0038: if (af_mode.row_count != -1) and \
__pyx_t_2 = (__pyx_v_af_mode->row_count != -1L); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } /* … */ if (__pyx_t_1) { /* … */ }
+0039: (<int64_t>line_sender_buffer_row_count(ls_buf) >= af_mode.row_count):
__pyx_t_2 = (((int64_t)line_sender_buffer_row_count(__pyx_v_ls_buf)) >= __pyx_v_af_mode->row_count); __pyx_t_1 = __pyx_t_2; __pyx_L5_bool_binop_done:;
+0040: return True
__pyx_r = 1; goto __pyx_L0;
0041:
0042: # Check `auto_flush_bytes` breach.
+0043: if (af_mode.byte_count != -1) and \
__pyx_t_2 = (__pyx_v_af_mode->byte_count != -1L); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L8_bool_binop_done; } /* … */ if (__pyx_t_1) { /* … */ }
+0044: (<int64_t>line_sender_buffer_size(ls_buf) >= af_mode.byte_count):
__pyx_t_2 = (((int64_t)line_sender_buffer_size(__pyx_v_ls_buf)) >= __pyx_v_af_mode->byte_count); __pyx_t_1 = __pyx_t_2; __pyx_L8_bool_binop_done:;
+0045: return True
__pyx_r = 1; goto __pyx_L0;
0046:
0047: # Check for interval breach.
+0048: if (af_mode.interval != -1) and \
__pyx_t_2 = (__pyx_v_af_mode->interval != -1L); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L11_bool_binop_done; } /* … */ if (__pyx_t_1) { /* … */ }
+0049: (((line_sender_now_micros() / 1000) - last_flush_ms) >= af_mode.interval):
__pyx_t_2 = (((((double)line_sender_now_micros()) / 1000.0) - __pyx_v_last_flush_ms) >= __pyx_v_af_mode->interval); __pyx_t_1 = __pyx_t_2; __pyx_L11_bool_binop_done:;
+0050: return True
__pyx_r = 1; goto __pyx_L0;
0051:
+0052: return False
__pyx_r = 0; goto __pyx_L0;
0053:
0054:
+0055: cdef struct col_chunks_t:
struct __pyx_t_7questdb_7ingress_col_chunks_t { size_t n_chunks; struct ArrowArray *chunks; };
0056: size_t n_chunks
0057: ArrowArray* chunks # We calloc `n_chunks + 1` of these.
0058:
0059:
+0060: cdef struct col_cursor_t:
struct __pyx_t_7questdb_7ingress_col_cursor_t { struct ArrowArray *chunk; size_t chunk_index; size_t offset; };
0061: ArrowArray* chunk # Current chunk.
0062: size_t chunk_index
0063: size_t offset # i.e. the element index (not byte offset)
0064:
0065:
+0066: cdef enum col_target_t:
enum __pyx_t_7questdb_7ingress_col_target_t { __pyx_e_7questdb_7ingress_col_target_skip = 0, __pyx_e_7questdb_7ingress_col_target_table = 1, __pyx_e_7questdb_7ingress_col_target_symbol = 2, __pyx_e_7questdb_7ingress_col_target_column_bool = 3, __pyx_e_7questdb_7ingress_col_target_column_i64 = 4, __pyx_e_7questdb_7ingress_col_target_column_f64 = 5, __pyx_e_7questdb_7ingress_col_target_column_str = 6, __pyx_e_7questdb_7ingress_col_target_column_ts = 7, __pyx_e_7questdb_7ingress_col_target_column_arr_f64 = 8, __pyx_e_7questdb_7ingress_col_target_at = 9 };
0067: col_target_skip = 0
0068: col_target_table = 1
0069: col_target_symbol = 2
0070: col_target_column_bool = 3
0071: col_target_column_i64 = 4
0072: col_target_column_f64 = 5
0073: col_target_column_str = 6
0074: col_target_column_ts = 7
0075: col_target_column_arr_f64 = 8
0076: col_target_at = 9
0077:
0078:
0079: cdef dict _TARGET_NAMES = {
+0080: col_target_t.col_target_skip: "skipped",
__pyx_t_2 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_skip); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_skipped) < 0) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0081: col_target_t.col_target_table: "table name",
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_table); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_table_name_2) < 0) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0082: col_target_t.col_target_symbol: "symbol",
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_symbol); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_symbol) < 0) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0083: col_target_t.col_target_column_bool: "boolean",
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_bool); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_boolean) < 0) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0084: col_target_t.col_target_column_i64: "integer",
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_i64); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_integer) < 0) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0085: col_target_t.col_target_column_f64: "float",
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_f64); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_float) < 0) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0086: col_target_t.col_target_column_str: "string",
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_string) < 0) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0087: col_target_t.col_target_column_ts: "timestamp",
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_ts); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_timestamp) < 0) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0088: col_target_t.col_target_column_arr_f64: "array",
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_arr_f64); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_array) < 0) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0089: col_target_t.col_target_at: "designated timestamp",
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_at); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_designated_timestamp) < 0) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__TARGET_NAMES); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__TARGET_NAMES, ((PyObject*)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
0090: }
0091:
0092:
+0093: cdef enum col_source_t:
enum __pyx_t_7questdb_7ingress_col_source_t { __pyx_e_7questdb_7ingress_col_source_nulls = 0, __pyx_e_7questdb_7ingress_col_source_bool_pyobj = 0x18AEC, __pyx_e_7questdb_7ingress_col_source_bool_numpy = 0x18E70, __pyx_e_7questdb_7ingress_col_source_bool_arrow = 0x19258, __pyx_e_7questdb_7ingress_col_source_int_pyobj = 0x3118C, __pyx_e_7questdb_7ingress_col_source_u8_numpy = 0x31510, __pyx_e_7questdb_7ingress_col_source_i8_numpy = 0x318F8, __pyx_e_7questdb_7ingress_col_source_u16_numpy = 0x31CE0, __pyx_e_7questdb_7ingress_col_source_i16_numpy = 0x320C8, __pyx_e_7questdb_7ingress_col_source_u32_numpy = 0x324B0, __pyx_e_7questdb_7ingress_col_source_i32_numpy = 0x32898, __pyx_e_7questdb_7ingress_col_source_u64_numpy = 0x32C80, __pyx_e_7questdb_7ingress_col_source_i64_numpy = 0x33068, __pyx_e_7questdb_7ingress_col_source_u8_arrow = 0x33450, __pyx_e_7questdb_7ingress_col_source_i8_arrow = 0x33838, __pyx_e_7questdb_7ingress_col_source_u16_arrow = 0x33C20, __pyx_e_7questdb_7ingress_col_source_i16_arrow = 0x34008, __pyx_e_7questdb_7ingress_col_source_u32_arrow = 0x343F0, __pyx_e_7questdb_7ingress_col_source_i32_arrow = 0x347D8, __pyx_e_7questdb_7ingress_col_source_u64_arrow = 0x34BC0, __pyx_e_7questdb_7ingress_col_source_i64_arrow = 0x34FA8, __pyx_e_7questdb_7ingress_col_source_float_pyobj = 0x4982C, __pyx_e_7questdb_7ingress_col_source_f32_numpy = 0x49BB0, __pyx_e_7questdb_7ingress_col_source_f64_numpy = 0x49F98, __pyx_e_7questdb_7ingress_col_source_f32_arrow = 0x4A380, __pyx_e_7questdb_7ingress_col_source_f64_arrow = 0x4A768, __pyx_e_7questdb_7ingress_col_source_str_pyobj = 0x61ECC, __pyx_e_7questdb_7ingress_col_source_str_utf8_arrow = 0x62250, __pyx_e_7questdb_7ingress_col_source_str_i8_cat = 0x62638, __pyx_e_7questdb_7ingress_col_source_str_i16_cat = 0x62A20, __pyx_e_7questdb_7ingress_col_source_str_i32_cat = 0x62E08, __pyx_e_7questdb_7ingress_col_source_str_lrg_utf8_arrow = 0x631F0, __pyx_e_7questdb_7ingress_col_source_dt64ns_numpy = 0x7A508, __pyx_e_7questdb_7ingress_col_source_dt64ns_tz_arrow = 0x7A8F0, __pyx_e_7questdb_7ingress_col_source_arr_f64_numpyobj = 0x92C0C };
0094: # Note: Hundreds digit set to 1 if GIL is required.
0095: col_source_nulls = 0
0096: col_source_bool_pyobj = 101100
0097: col_source_bool_numpy = 102000
0098: col_source_bool_arrow = 103000
0099: col_source_int_pyobj = 201100
0100: col_source_u8_numpy = 202000
0101: col_source_i8_numpy = 203000
0102: col_source_u16_numpy = 204000
0103: col_source_i16_numpy = 205000
0104: col_source_u32_numpy = 206000
0105: col_source_i32_numpy = 207000
0106: col_source_u64_numpy = 208000
0107: col_source_i64_numpy = 209000
0108: col_source_u8_arrow = 210000
0109: col_source_i8_arrow = 211000
0110: col_source_u16_arrow = 212000
0111: col_source_i16_arrow = 213000
0112: col_source_u32_arrow = 214000
0113: col_source_i32_arrow = 215000
0114: col_source_u64_arrow = 216000
0115: col_source_i64_arrow = 217000
0116: col_source_float_pyobj = 301100
0117: col_source_f32_numpy = 302000
0118: col_source_f64_numpy = 303000
0119: col_source_f32_arrow = 304000
0120: col_source_f64_arrow = 305000
0121: col_source_str_pyobj = 401100
0122: col_source_str_utf8_arrow = 402000
0123: col_source_str_i8_cat = 403000
0124: col_source_str_i16_cat = 404000
0125: col_source_str_i32_cat = 405000
0126: col_source_str_lrg_utf8_arrow = 406000
0127: col_source_dt64ns_numpy = 501000
0128: col_source_dt64ns_tz_arrow = 502000
0129: col_source_arr_f64_numpyobj = 601100
0130:
0131:
+0132: cdef bint col_source_needs_gil(col_source_t source) noexcept nogil:
static int __pyx_f_7questdb_7ingress_col_source_needs_gil(enum __pyx_t_7questdb_7ingress_col_source_t __pyx_v_source) { int __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
0133: # Check if hundreds digit is 1.
+0134: return <int>source // 100 % 10 == 1
__pyx_r = (__Pyx_mod_long(__Pyx_div_long(((int)__pyx_v_source), 0x64, 1), 10, 1) == 1); goto __pyx_L0;
0135:
0136:
0137: cdef set _STR_SOURCES = {
+0138: col_source_t.col_source_str_pyobj,
__pyx_t_2 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_pyobj); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+0139: col_source_t.col_source_str_utf8_arrow,
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_utf8_arrow); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+0140: col_source_t.col_source_str_lrg_utf8_arrow,
__pyx_t_4 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_lrg_utf8_arrow); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+0141: col_source_t.col_source_str_i8_cat,
__pyx_t_5 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_i8_cat); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+0142: col_source_t.col_source_str_i16_cat,
__pyx_t_6 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_i16_cat); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6);
+0143: col_source_t.col_source_str_i32_cat,
__pyx_t_7 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_i32_cat); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PySet_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PySet_Add(__pyx_t_8, __pyx_t_2) < 0) __PYX_ERR(1, 138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PySet_Add(__pyx_t_8, __pyx_t_3) < 0) __PYX_ERR(1, 138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PySet_Add(__pyx_t_8, __pyx_t_4) < 0) __PYX_ERR(1, 138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PySet_Add(__pyx_t_8, __pyx_t_5) < 0) __PYX_ERR(1, 138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PySet_Add(__pyx_t_8, __pyx_t_6) < 0) __PYX_ERR(1, 138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PySet_Add(__pyx_t_8, __pyx_t_7) < 0) __PYX_ERR(1, 138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__STR_SOURCES); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__STR_SOURCES, ((PyObject*)__pyx_t_8)); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = 0;
0144: }
0145:
0146:
0147: cdef dict _PYOBJ_SOURCE_DESCR = {
+0148: col_source_t.col_source_bool_pyobj: "bool",
__pyx_t_8 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_bool_pyobj); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_8, __pyx_t_7, __pyx_mstate_global->__pyx_n_u_bool) < 0) __PYX_ERR(1, 148, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0149: col_source_t.col_source_int_pyobj: "int",
__pyx_t_7 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_int_pyobj); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_8, __pyx_t_7, __pyx_mstate_global->__pyx_n_u_int) < 0) __PYX_ERR(1, 148, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0150: col_source_t.col_source_float_pyobj: "float",
__pyx_t_7 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_float_pyobj); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_8, __pyx_t_7, __pyx_mstate_global->__pyx_n_u_float) < 0) __PYX_ERR(1, 148, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0151: col_source_t.col_source_str_pyobj: "str",
__pyx_t_7 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_pyobj); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_8, __pyx_t_7, __pyx_mstate_global->__pyx_n_u_str) < 0) __PYX_ERR(1, 148, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__PYOBJ_SOURCE_DESCR); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__PYOBJ_SOURCE_DESCR, ((PyObject*)__pyx_t_8)); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = 0;
0152: }
0153:
0154:
0155: cdef dict _TARGET_TO_SOURCES = {
+0156: col_target_t.col_target_skip: {
__pyx_t_8 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_skip); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7);
+0157: col_source_t.col_source_nulls,
__pyx_t_6 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_nulls); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PySet_Add(__pyx_t_5, __pyx_t_6) < 0) __PYX_ERR(1, 157, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_t_8, __pyx_t_7, __pyx_t_5) < 0) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
0158: },
+0159: col_target_t.col_target_table: {
__pyx_t_5 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_table); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+0160: col_source_t.col_source_str_pyobj,
__pyx_t_7 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_pyobj); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7);
+0161: col_source_t.col_source_str_utf8_arrow,
__pyx_t_6 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_utf8_arrow); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6);
+0162: col_source_t.col_source_str_lrg_utf8_arrow,
__pyx_t_4 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_lrg_utf8_arrow); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+0163: col_source_t.col_source_str_i8_cat,
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_i8_cat); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+0164: col_source_t.col_source_str_i16_cat,
__pyx_t_2 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_i16_cat); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+0165: col_source_t.col_source_str_i32_cat,
__pyx_t_9 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_i32_cat); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PySet_New(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (PySet_Add(__pyx_t_10, __pyx_t_7) < 0) __PYX_ERR(1, 160, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (PySet_Add(__pyx_t_10, __pyx_t_6) < 0) __PYX_ERR(1, 160, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PySet_Add(__pyx_t_10, __pyx_t_4) < 0) __PYX_ERR(1, 160, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PySet_Add(__pyx_t_10, __pyx_t_3) < 0) __PYX_ERR(1, 160, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PySet_Add(__pyx_t_10, __pyx_t_2) < 0) __PYX_ERR(1, 160, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PySet_Add(__pyx_t_10, __pyx_t_9) < 0) __PYX_ERR(1, 160, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (PyDict_SetItem(__pyx_t_8, __pyx_t_5, __pyx_t_10) < 0) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
0166: },
+0167: col_target_t.col_target_symbol: {
__pyx_t_10 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_symbol); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10);
+0168: col_source_t.col_source_str_pyobj,
__pyx_t_5 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_pyobj); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+0169: col_source_t.col_source_str_utf8_arrow,
__pyx_t_9 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_utf8_arrow); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9);
+0170: col_source_t.col_source_str_lrg_utf8_arrow,
__pyx_t_2 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_lrg_utf8_arrow); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+0171: col_source_t.col_source_str_i8_cat,
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_i8_cat); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+0172: col_source_t.col_source_str_i16_cat,
__pyx_t_4 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_i16_cat); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+0173: col_source_t.col_source_str_i32_cat,
__pyx_t_6 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_i32_cat); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PySet_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PySet_Add(__pyx_t_7, __pyx_t_5) < 0) __PYX_ERR(1, 168, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PySet_Add(__pyx_t_7, __pyx_t_9) < 0) __PYX_ERR(1, 168, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (PySet_Add(__pyx_t_7, __pyx_t_2) < 0) __PYX_ERR(1, 168, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PySet_Add(__pyx_t_7, __pyx_t_3) < 0) __PYX_ERR(1, 168, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PySet_Add(__pyx_t_7, __pyx_t_4) < 0) __PYX_ERR(1, 168, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PySet_Add(__pyx_t_7, __pyx_t_6) < 0) __PYX_ERR(1, 168, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_t_8, __pyx_t_10, __pyx_t_7) < 0) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
0174: },
+0175: col_target_t.col_target_column_bool: {
__pyx_t_7 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_bool); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7);
+0176: col_source_t.col_source_bool_pyobj,
__pyx_t_10 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_bool_pyobj); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10);
+0177: col_source_t.col_source_bool_numpy,
__pyx_t_6 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_bool_numpy); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6);
+0178: col_source_t.col_source_bool_arrow,
__pyx_t_4 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_bool_arrow); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PySet_Add(__pyx_t_3, __pyx_t_10) < 0) __PYX_ERR(1, 176, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PySet_Add(__pyx_t_3, __pyx_t_6) < 0) __PYX_ERR(1, 176, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PySet_Add(__pyx_t_3, __pyx_t_4) < 0) __PYX_ERR(1, 176, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_8, __pyx_t_7, __pyx_t_3) < 0) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0179: },
+0180: col_target_t.col_target_column_i64: {
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_i64); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+0181: col_source_t.col_source_int_pyobj,
__pyx_t_7 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_int_pyobj); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7);
+0182: col_source_t.col_source_u8_numpy,
__pyx_t_4 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_u8_numpy); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+0183: col_source_t.col_source_i8_numpy,
__pyx_t_6 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_i8_numpy); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6);
+0184: col_source_t.col_source_u16_numpy,
__pyx_t_10 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_u16_numpy); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10);
+0185: col_source_t.col_source_i16_numpy,
__pyx_t_2 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_i16_numpy); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+0186: col_source_t.col_source_u32_numpy,
__pyx_t_9 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_u32_numpy); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9);
+0187: col_source_t.col_source_i32_numpy,
__pyx_t_5 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_i32_numpy); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+0188: col_source_t.col_source_u64_numpy,
__pyx_t_11 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_u64_numpy); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11);
+0189: col_source_t.col_source_i64_numpy,
__pyx_t_12 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_i64_numpy); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12);
+0190: col_source_t.col_source_u8_arrow,
__pyx_t_13 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_u8_arrow); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13);
+0191: col_source_t.col_source_i8_arrow,
__pyx_t_14 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_i8_arrow); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14);
+0192: col_source_t.col_source_u16_arrow,
__pyx_t_15 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_u16_arrow); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15);
+0193: col_source_t.col_source_i16_arrow,
__pyx_t_16 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_i16_arrow); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16);
+0194: col_source_t.col_source_u32_arrow,
__pyx_t_17 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_u32_arrow); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17);
+0195: col_source_t.col_source_i32_arrow,
__pyx_t_18 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_i32_arrow); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18);
+0196: col_source_t.col_source_u64_arrow,
__pyx_t_19 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_u64_arrow); if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19);
+0197: col_source_t.col_source_i64_arrow,
__pyx_t_20 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_i64_arrow); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_21 = PySet_New(0); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (PySet_Add(__pyx_t_21, __pyx_t_7) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_4) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_6) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_10) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_2) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_9) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_5) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_11) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_12) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_13) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_14) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_15) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_16) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_17) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_18) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_19) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; if (PySet_Add(__pyx_t_21, __pyx_t_20) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (PyDict_SetItem(__pyx_t_8, __pyx_t_3, __pyx_t_21) < 0) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
0198: },
+0199: col_target_t.col_target_column_f64: {
__pyx_t_21 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_f64); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21);
+0200: col_source_t.col_source_float_pyobj,
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_float_pyobj); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+0201: col_source_t.col_source_f32_numpy,
__pyx_t_20 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_f32_numpy); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20);
+0202: col_source_t.col_source_f64_numpy,
__pyx_t_19 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_f64_numpy); if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19);
+0203: col_source_t.col_source_f32_arrow,
__pyx_t_18 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_f32_arrow); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18);
+0204: col_source_t.col_source_f64_arrow,
__pyx_t_17 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_f64_arrow); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_16 = PySet_New(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (PySet_Add(__pyx_t_16, __pyx_t_3) < 0) __PYX_ERR(1, 200, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PySet_Add(__pyx_t_16, __pyx_t_20) < 0) __PYX_ERR(1, 200, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (PySet_Add(__pyx_t_16, __pyx_t_19) < 0) __PYX_ERR(1, 200, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; if (PySet_Add(__pyx_t_16, __pyx_t_18) < 0) __PYX_ERR(1, 200, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (PySet_Add(__pyx_t_16, __pyx_t_17) < 0) __PYX_ERR(1, 200, __pyx_L1_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if (PyDict_SetItem(__pyx_t_8, __pyx_t_21, __pyx_t_16) < 0) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
0205: },
+0206: col_target_t.col_target_column_str: {
__pyx_t_16 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_str); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16);
+0207: col_source_t.col_source_str_pyobj,
__pyx_t_21 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_pyobj); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21);
+0208: col_source_t.col_source_str_utf8_arrow,
__pyx_t_17 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_utf8_arrow); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17);
+0209: col_source_t.col_source_str_lrg_utf8_arrow,
__pyx_t_18 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_lrg_utf8_arrow); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18);
+0210: col_source_t.col_source_str_i8_cat,
__pyx_t_19 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_i8_cat); if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19);
+0211: col_source_t.col_source_str_i16_cat,
__pyx_t_20 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_i16_cat); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20);
+0212: col_source_t.col_source_str_i32_cat,
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_str_i32_cat); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = PySet_New(0); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (PySet_Add(__pyx_t_15, __pyx_t_21) < 0) __PYX_ERR(1, 207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (PySet_Add(__pyx_t_15, __pyx_t_17) < 0) __PYX_ERR(1, 207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if (PySet_Add(__pyx_t_15, __pyx_t_18) < 0) __PYX_ERR(1, 207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (PySet_Add(__pyx_t_15, __pyx_t_19) < 0) __PYX_ERR(1, 207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; if (PySet_Add(__pyx_t_15, __pyx_t_20) < 0) __PYX_ERR(1, 207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (PySet_Add(__pyx_t_15, __pyx_t_3) < 0) __PYX_ERR(1, 207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_8, __pyx_t_16, __pyx_t_15) < 0) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
0213: },
+0214: col_target_t.col_target_column_ts: {
__pyx_t_15 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_ts); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15);
+0215: col_source_t.col_source_dt64ns_numpy,
__pyx_t_16 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_dt64ns_numpy); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16);
+0216: col_source_t.col_source_dt64ns_tz_arrow,
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_dt64ns_tz_arrow); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_20 = PySet_New(0); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (PySet_Add(__pyx_t_20, __pyx_t_16) < 0) __PYX_ERR(1, 215, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (PySet_Add(__pyx_t_20, __pyx_t_3) < 0) __PYX_ERR(1, 215, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_8, __pyx_t_15, __pyx_t_20) < 0) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
0217: },
+0218: col_target_t.col_target_column_arr_f64: {
__pyx_t_20 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_arr_f64); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20);
+0219: col_source_t.col_source_arr_f64_numpyobj,
__pyx_t_15 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_arr_f64_numpyobj); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PySet_Add(__pyx_t_3, __pyx_t_15) < 0) __PYX_ERR(1, 219, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (PyDict_SetItem(__pyx_t_8, __pyx_t_20, __pyx_t_3) < 0) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0220: },
+0221: col_target_t.col_target_at: {
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_at); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+0222: col_source_t.col_source_dt64ns_numpy,
__pyx_t_20 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_dt64ns_numpy); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20);
+0223: col_source_t.col_source_dt64ns_tz_arrow,
__pyx_t_15 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_e_7questdb_7ingress_col_source_dt64ns_tz_arrow); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = PySet_New(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (PySet_Add(__pyx_t_16, __pyx_t_20) < 0) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (PySet_Add(__pyx_t_16, __pyx_t_15) < 0) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (PyDict_SetItem(__pyx_t_8, __pyx_t_3, __pyx_t_16) < 0) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__TARGET_TO_SOURCES); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__TARGET_TO_SOURCES, ((PyObject*)__pyx_t_8)); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = 0;
0224: },
0225: }
0226:
0227:
0228: # Targets associated with col_meta_target.field.
0229: cdef tuple _FIELD_TARGETS = (
+0230: col_target_t.col_target_skip,
__pyx_t_8 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_skip); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); /* … */ __pyx_t_17 = PyTuple_Pack(7, __pyx_t_8, __pyx_t_16, __pyx_t_3, __pyx_t_15, __pyx_t_20, __pyx_t_19, __pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__FIELD_TARGETS); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__FIELD_TARGETS, ((PyObject*)__pyx_t_17)); __Pyx_GIVEREF(__pyx_t_17); __pyx_t_17 = 0;
+0231: col_target_t.col_target_column_bool,
__pyx_t_16 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_bool); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16);
+0232: col_target_t.col_target_column_i64,
__pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_i64); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+0233: col_target_t.col_target_column_f64,
__pyx_t_15 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_f64); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15);
+0234: col_target_t.col_target_column_str,
__pyx_t_20 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_str); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20);
+0235: col_target_t.col_target_column_ts,
__pyx_t_19 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_ts); if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19);
+0236: col_target_t.col_target_column_arr_f64)
__pyx_t_18 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_column_arr_f64); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18);
0237:
0238:
0239: # Targets that map directly from a meta target.
0240: cdef set _DIRECT_META_TARGETS = {
+0241: col_target_t.col_target_table,
__pyx_t_17 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_table); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17);
+0242: col_target_t.col_target_symbol,
__pyx_t_18 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_symbol); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18);
+0243: col_target_t.col_target_at,
__pyx_t_19 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_e_7questdb_7ingress_col_target_at); if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_20 = PySet_New(0); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (PySet_Add(__pyx_t_20, __pyx_t_17) < 0) __PYX_ERR(1, 241, __pyx_L1_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if (PySet_Add(__pyx_t_20, __pyx_t_18) < 0) __PYX_ERR(1, 241, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (PySet_Add(__pyx_t_20, __pyx_t_19) < 0) __PYX_ERR(1, 241, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__DIRECT_META_TARGETS); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__DIRECT_META_TARGETS, ((PyObject*)__pyx_t_20)); __Pyx_GIVEREF(__pyx_t_20); __pyx_t_20 = 0;
0244: }
0245:
0246:
0247: # This is verbose, but..
0248: # * Enums give us constants.
0249: # * Constants allow unfolding `if` statements into `switch`
0250: # * Switch statements can be more heavily optimized by the C compiler.
+0251: cdef enum col_dispatch_code_t:
enum __pyx_t_7questdb_7ingress_col_dispatch_code_t {
0252: col_dispatch_code_skip_nulls = \
0253: col_target_t.col_target_skip + col_source_t.col_source_nulls
0254:
0255: col_dispatch_code_table__str_pyobj = \
0256: col_target_t.col_target_table + col_source_t.col_source_str_pyobj
0257: col_dispatch_code_table__str_utf8_arrow = \
0258: col_target_t.col_target_table + col_source_t.col_source_str_utf8_arrow
0259: col_dispatch_code_table__str_lrg_utf8_arrow = \
0260: col_target_t.col_target_table + col_source_t.col_source_str_lrg_utf8_arrow
0261: col_dispatch_code_table__str_i8_cat = \
0262: col_target_t.col_target_table + col_source_t.col_source_str_i8_cat
0263: col_dispatch_code_table__str_i16_cat = \
0264: col_target_t.col_target_table + col_source_t.col_source_str_i16_cat
0265: col_dispatch_code_table__str_i32_cat = \
0266: col_target_t.col_target_table + col_source_t.col_source_str_i32_cat
0267:
0268: col_dispatch_code_symbol__str_pyobj = \
0269: col_target_t.col_target_symbol + col_source_t.col_source_str_pyobj
0270: col_dispatch_code_symbol__str_utf8_arrow = \
0271: col_target_t.col_target_symbol + col_source_t.col_source_str_utf8_arrow
0272: col_dispatch_code_symbol__str_lrg_utf8_arrow = \
0273: col_target_t.col_target_symbol + col_source_t.col_source_str_lrg_utf8_arrow
0274: col_dispatch_code_symbol__str_i8_cat = \
0275: col_target_t.col_target_symbol + col_source_t.col_source_str_i8_cat
0276: col_dispatch_code_symbol__str_i16_cat = \
0277: col_target_t.col_target_symbol + col_source_t.col_source_str_i16_cat
0278: col_dispatch_code_symbol__str_i32_cat = \
0279: col_target_t.col_target_symbol + col_source_t.col_source_str_i32_cat
0280:
0281: col_dispatch_code_column_bool__bool_pyobj = \
0282: col_target_t.col_target_column_bool + col_source_t.col_source_bool_pyobj
0283: col_dispatch_code_column_bool__bool_numpy = \
0284: col_target_t.col_target_column_bool + col_source_t.col_source_bool_numpy
0285: col_dispatch_code_column_bool__bool_arrow = \
0286: col_target_t.col_target_column_bool + col_source_t.col_source_bool_arrow
0287:
0288: col_dispatch_code_column_i64__int_pyobj = \
0289: col_target_t.col_target_column_i64 + col_source_t.col_source_int_pyobj
0290: col_dispatch_code_column_i64__u8_numpy = \
0291: col_target_t.col_target_column_i64 + col_source_t.col_source_u8_numpy
0292: col_dispatch_code_column_i64__i8_numpy = \
0293: col_target_t.col_target_column_i64 + col_source_t.col_source_i8_numpy
0294: col_dispatch_code_column_i64__u16_numpy = \
0295: col_target_t.col_target_column_i64 + col_source_t.col_source_u16_numpy
0296: col_dispatch_code_column_i64__i16_numpy = \
0297: col_target_t.col_target_column_i64 + col_source_t.col_source_i16_numpy
0298: col_dispatch_code_column_i64__u32_numpy = \
0299: col_target_t.col_target_column_i64 + col_source_t.col_source_u32_numpy
0300: col_dispatch_code_column_i64__i32_numpy = \
0301: col_target_t.col_target_column_i64 + col_source_t.col_source_i32_numpy
0302: col_dispatch_code_column_i64__u64_numpy = \
0303: col_target_t.col_target_column_i64 + col_source_t.col_source_u64_numpy
0304: col_dispatch_code_column_i64__i64_numpy = \
0305: col_target_t.col_target_column_i64 + col_source_t.col_source_i64_numpy
0306: col_dispatch_code_column_i64__u8_arrow = \
0307: col_target_t.col_target_column_i64 + col_source_t.col_source_u8_arrow
0308: col_dispatch_code_column_i64__i8_arrow = \
0309: col_target_t.col_target_column_i64 + col_source_t.col_source_i8_arrow
0310: col_dispatch_code_column_i64__u16_arrow = \
0311: col_target_t.col_target_column_i64 + col_source_t.col_source_u16_arrow
0312: col_dispatch_code_column_i64__i16_arrow = \
0313: col_target_t.col_target_column_i64 + col_source_t.col_source_i16_arrow
0314: col_dispatch_code_column_i64__u32_arrow = \
0315: col_target_t.col_target_column_i64 + col_source_t.col_source_u32_arrow
0316: col_dispatch_code_column_i64__i32_arrow = \
0317: col_target_t.col_target_column_i64 + col_source_t.col_source_i32_arrow
0318: col_dispatch_code_column_i64__u64_arrow = \
0319: col_target_t.col_target_column_i64 + col_source_t.col_source_u64_arrow
0320: col_dispatch_code_column_i64__i64_arrow = \
0321: col_target_t.col_target_column_i64 + col_source_t.col_source_i64_arrow
0322:
0323: col_dispatch_code_column_f64__float_pyobj = \
0324: col_target_t.col_target_column_f64 + col_source_t.col_source_float_pyobj
0325: col_dispatch_code_column_f64__f32_numpy = \
0326: col_target_t.col_target_column_f64 + col_source_t.col_source_f32_numpy
0327: col_dispatch_code_column_f64__f64_numpy = \
0328: col_target_t.col_target_column_f64 + col_source_t.col_source_f64_numpy
0329: col_dispatch_code_column_f64__f32_arrow = \
0330: col_target_t.col_target_column_f64 + col_source_t.col_source_f32_arrow
0331: col_dispatch_code_column_f64__f64_arrow = \
0332: col_target_t.col_target_column_f64 + col_source_t.col_source_f64_arrow
0333:
0334: col_dispatch_code_column_str__str_pyobj = \
0335: col_target_t.col_target_column_str + col_source_t.col_source_str_pyobj
0336: col_dispatch_code_column_str__str_utf8_arrow = \
0337: col_target_t.col_target_column_str + col_source_t.col_source_str_utf8_arrow
0338: col_dispatch_code_column_str__str_lrg_utf8_arrow = \
0339: col_target_t.col_target_column_str + col_source_t.col_source_str_lrg_utf8_arrow
0340: col_dispatch_code_column_str__str_i8_cat = \
0341: col_target_t.col_target_column_str + col_source_t.col_source_str_i8_cat
0342: col_dispatch_code_column_str__str_i16_cat = \
0343: col_target_t.col_target_column_str + col_source_t.col_source_str_i16_cat
0344: col_dispatch_code_column_str__str_i32_cat = \
0345: col_target_t.col_target_column_str + col_source_t.col_source_str_i32_cat
0346:
0347: col_dispatch_code_column_ts__dt64ns_numpy = \
0348: col_target_t.col_target_column_ts + col_source_t.col_source_dt64ns_numpy
0349: col_dispatch_code_column_ts__dt64ns_tz_arrow = \
0350: col_target_t.col_target_column_ts + \
0351: col_source_t.col_source_dt64ns_tz_arrow
0352:
0353: col_dispatch_code_at__dt64ns_numpy = \
0354: col_target_t.col_target_at + col_source_t.col_source_dt64ns_numpy
0355: col_dispatch_code_at__dt64ns_tz_arrow = \
0356: col_target_t.col_target_at + col_source_t.col_source_dt64ns_tz_arrow
0357:
0358: col_dispatch_code_column_arr_f64__arr_f64_numpyobj = \
+0359: col_target_t.col_target_column_arr_f64 + col_source_t.col_source_arr_f64_numpyobj
__pyx_e_7questdb_7ingress_col_dispatch_code_skip_nulls = (__pyx_e_7questdb_7ingress_col_target_skip + __pyx_e_7questdb_7ingress_col_source_nulls), __pyx_e_7questdb_7ingress_col_dispatch_code_table__str_pyobj = (__pyx_e_7questdb_7ingress_col_target_table + __pyx_e_7questdb_7ingress_col_source_str_pyobj), __pyx_e_7questdb_7ingress_col_dispatch_code_table__str_utf8_arrow = (__pyx_e_7questdb_7ingress_col_target_table + __pyx_e_7questdb_7ingress_col_source_str_utf8_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_table__str_lrg_utf8_arrow = (__pyx_e_7questdb_7ingress_col_target_table + __pyx_e_7questdb_7ingress_col_source_str_lrg_utf8_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_table__str_i8_cat = (__pyx_e_7questdb_7ingress_col_target_table + __pyx_e_7questdb_7ingress_col_source_str_i8_cat), __pyx_e_7questdb_7ingress_col_dispatch_code_table__str_i16_cat = (__pyx_e_7questdb_7ingress_col_target_table + __pyx_e_7questdb_7ingress_col_source_str_i16_cat), __pyx_e_7questdb_7ingress_col_dispatch_code_table__str_i32_cat = (__pyx_e_7questdb_7ingress_col_target_table + __pyx_e_7questdb_7ingress_col_source_str_i32_cat), __pyx_e_7questdb_7ingress_col_dispatch_code_symbol__str_pyobj = (__pyx_e_7questdb_7ingress_col_target_symbol + __pyx_e_7questdb_7ingress_col_source_str_pyobj), __pyx_e_7questdb_7ingress_col_dispatch_code_symbol__str_utf8_arrow = (__pyx_e_7questdb_7ingress_col_target_symbol + __pyx_e_7questdb_7ingress_col_source_str_utf8_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_symbol__str_lrg_utf8_arrow = (__pyx_e_7questdb_7ingress_col_target_symbol + __pyx_e_7questdb_7ingress_col_source_str_lrg_utf8_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_symbol__str_i8_cat = (__pyx_e_7questdb_7ingress_col_target_symbol + __pyx_e_7questdb_7ingress_col_source_str_i8_cat), __pyx_e_7questdb_7ingress_col_dispatch_code_symbol__str_i16_cat = (__pyx_e_7questdb_7ingress_col_target_symbol + __pyx_e_7questdb_7ingress_col_source_str_i16_cat), __pyx_e_7questdb_7ingress_col_dispatch_code_symbol__str_i32_cat = (__pyx_e_7questdb_7ingress_col_target_symbol + __pyx_e_7questdb_7ingress_col_source_str_i32_cat), __pyx_e_7questdb_7ingress_col_dispatch_code_column_bool__bool_pyobj = (__pyx_e_7questdb_7ingress_col_target_column_bool + __pyx_e_7questdb_7ingress_col_source_bool_pyobj), __pyx_e_7questdb_7ingress_col_dispatch_code_column_bool__bool_numpy = (__pyx_e_7questdb_7ingress_col_target_column_bool + __pyx_e_7questdb_7ingress_col_source_bool_numpy), __pyx_e_7questdb_7ingress_col_dispatch_code_column_bool__bool_arrow = (__pyx_e_7questdb_7ingress_col_target_column_bool + __pyx_e_7questdb_7ingress_col_source_bool_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__int_pyobj = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_int_pyobj), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u8_numpy = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_u8_numpy), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i8_numpy = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_i8_numpy), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u16_numpy = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_u16_numpy), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i16_numpy = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_i16_numpy), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u32_numpy = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_u32_numpy), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i32_numpy = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_i32_numpy), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u64_numpy = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_u64_numpy), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i64_numpy = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_i64_numpy), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u8_arrow = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_u8_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i8_arrow = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_i8_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u16_arrow = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_u16_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i16_arrow = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_i16_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u32_arrow = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_u32_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i32_arrow = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_i32_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u64_arrow = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_u64_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i64_arrow = (__pyx_e_7questdb_7ingress_col_target_column_i64 + __pyx_e_7questdb_7ingress_col_source_i64_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_column_f64__float_pyobj = (__pyx_e_7questdb_7ingress_col_target_column_f64 + __pyx_e_7questdb_7ingress_col_source_float_pyobj), __pyx_e_7questdb_7ingress_col_dispatch_code_column_f64__f32_numpy = (__pyx_e_7questdb_7ingress_col_target_column_f64 + __pyx_e_7questdb_7ingress_col_source_f32_numpy), __pyx_e_7questdb_7ingress_col_dispatch_code_column_f64__f64_numpy = (__pyx_e_7questdb_7ingress_col_target_column_f64 + __pyx_e_7questdb_7ingress_col_source_f64_numpy), __pyx_e_7questdb_7ingress_col_dispatch_code_column_f64__f32_arrow = (__pyx_e_7questdb_7ingress_col_target_column_f64 + __pyx_e_7questdb_7ingress_col_source_f32_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_column_f64__f64_arrow = (__pyx_e_7questdb_7ingress_col_target_column_f64 + __pyx_e_7questdb_7ingress_col_source_f64_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_column_str__str_pyobj = (__pyx_e_7questdb_7ingress_col_target_column_str + __pyx_e_7questdb_7ingress_col_source_str_pyobj), __pyx_e_7questdb_7ingress_col_dispatch_code_column_str__str_utf8_arrow = (__pyx_e_7questdb_7ingress_col_target_column_str + __pyx_e_7questdb_7ingress_col_source_str_utf8_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_column_str__str_lrg_utf8_arrow = (__pyx_e_7questdb_7ingress_col_target_column_str + __pyx_e_7questdb_7ingress_col_source_str_lrg_utf8_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_column_str__str_i8_cat = (__pyx_e_7questdb_7ingress_col_target_column_str + __pyx_e_7questdb_7ingress_col_source_str_i8_cat), __pyx_e_7questdb_7ingress_col_dispatch_code_column_str__str_i16_cat = (__pyx_e_7questdb_7ingress_col_target_column_str + __pyx_e_7questdb_7ingress_col_source_str_i16_cat), __pyx_e_7questdb_7ingress_col_dispatch_code_column_str__str_i32_cat = (__pyx_e_7questdb_7ingress_col_target_column_str + __pyx_e_7questdb_7ingress_col_source_str_i32_cat), __pyx_e_7questdb_7ingress_col_dispatch_code_column_ts__dt64ns_numpy = (__pyx_e_7questdb_7ingress_col_target_column_ts + __pyx_e_7questdb_7ingress_col_source_dt64ns_numpy), __pyx_e_7questdb_7ingress_col_dispatch_code_column_ts__dt64ns_tz_arrow = (__pyx_e_7questdb_7ingress_col_target_column_ts + __pyx_e_7questdb_7ingress_col_source_dt64ns_tz_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_at__dt64ns_numpy = (__pyx_e_7questdb_7ingress_col_target_at + __pyx_e_7questdb_7ingress_col_source_dt64ns_numpy), __pyx_e_7questdb_7ingress_col_dispatch_code_at__dt64ns_tz_arrow = (__pyx_e_7questdb_7ingress_col_target_at + __pyx_e_7questdb_7ingress_col_source_dt64ns_tz_arrow), __pyx_e_7questdb_7ingress_col_dispatch_code_column_arr_f64__arr_f64_numpyobj = (__pyx_e_7questdb_7ingress_col_target_column_arr_f64 + __pyx_e_7questdb_7ingress_col_source_arr_f64_numpyobj) };
0360:
0361:
0362: # Int values in order for sorting (as needed for API's sequential coupling).
+0363: cdef enum meta_target_t:
enum __pyx_t_7questdb_7ingress_meta_target_t {
0364: meta_target_table = <int>col_target_t.col_target_table
0365: meta_target_symbol = <int>col_target_t.col_target_symbol
0366: meta_target_field = <int>col_target_t.col_target_column_bool
+0367: meta_target_at = <int>col_target_t.col_target_at
__pyx_e_7questdb_7ingress_meta_target_table = ((int)__pyx_e_7questdb_7ingress_col_target_table), __pyx_e_7questdb_7ingress_meta_target_symbol = ((int)__pyx_e_7questdb_7ingress_col_target_symbol), __pyx_e_7questdb_7ingress_meta_target_field = ((int)__pyx_e_7questdb_7ingress_col_target_column_bool), __pyx_e_7questdb_7ingress_meta_target_at = ((int)__pyx_e_7questdb_7ingress_col_target_at) };
0368:
0369:
+0370: cdef struct col_setup_t:
struct __pyx_t_7questdb_7ingress_col_setup_t { struct __pyx_t_7questdb_7ingress_col_chunks_t chunks; size_t orig_index; Py_buffer pybuf; struct ArrowSchema arrow_schema; enum __pyx_t_7questdb_7ingress_col_source_t source; enum __pyx_t_7questdb_7ingress_meta_target_t meta_target; enum __pyx_t_7questdb_7ingress_col_target_t target; };
0371: col_chunks_t chunks
0372: size_t orig_index
0373: Py_buffer pybuf
0374: ArrowSchema arrow_schema # Schema of first chunk.
0375: col_source_t source
0376: meta_target_t meta_target
0377: col_target_t target
0378:
0379:
+0380: cdef struct col_t:
struct __pyx_t_7questdb_7ingress_col_t { enum __pyx_t_7questdb_7ingress_col_dispatch_code_t dispatch_code; struct line_sender_column_name name; struct __pyx_t_7questdb_7ingress_col_cursor_t cursor; struct __pyx_t_7questdb_7ingress_col_setup_t *setup; };
0381: col_dispatch_code_t dispatch_code # source + target. Determines serializer.
0382: line_sender_column_name name
0383: col_cursor_t cursor
0384: col_setup_t* setup # Grouping to reduce size of struct.
0385:
0386:
+0387: cdef void col_t_release(col_t* col) noexcept:
static void __pyx_f_7questdb_7ingress_col_t_release(struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { size_t __pyx_v_chunk_index; struct ArrowArray *__pyx_v_chunk; /* … */ /* function exit code */ }
0388: """
0389: Release a (possibly) initialized column.
0390:
0391: col_t objects are `calloc`ed, so uninitialized (or partially) initialized
0392: objects will have their pointers and other values set to 0.
0393: """
0394: cdef size_t chunk_index
0395: cdef ArrowArray* chunk
0396:
+0397: if Py_buffer_obj_is_set(&col.setup.pybuf):
__pyx_t_1 = Py_buffer_obj_is_set((&__pyx_v_col->setup->pybuf)); if (__pyx_t_1) { /* … */ }
+0398: PyBuffer_Release(&col.setup.pybuf) # Note: Sets `.pybuf.obj` to NULL.
PyBuffer_Release((&__pyx_v_col->setup->pybuf));
0399:
+0400: for chunk_index in range(col.setup.chunks.n_chunks):
__pyx_t_2 = __pyx_v_col->setup->chunks.n_chunks; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_chunk_index = __pyx_t_4;
+0401: chunk = &col.setup.chunks.chunks[chunk_index]
__pyx_v_chunk = (&(__pyx_v_col->setup->chunks.chunks[__pyx_v_chunk_index]));
+0402: if chunk.release != NULL:
__pyx_t_1 = (__pyx_v_chunk->release != NULL); if (__pyx_t_1) { /* … */ }
+0403: chunk.release(chunk)
__pyx_v_chunk->release(__pyx_v_chunk);
+0404: memset(chunk, 0, sizeof(ArrowArray))
(void)(memset(__pyx_v_chunk, 0, (sizeof(struct ArrowArray)))); }
0405:
+0406: if col.setup.arrow_schema.release != NULL:
__pyx_t_1 = (__pyx_v_col->setup->arrow_schema.release != NULL); if (__pyx_t_1) { /* … */ }
+0407: col.setup.arrow_schema.release(&col.setup.arrow_schema)
__pyx_v_col->setup->arrow_schema.release((&__pyx_v_col->setup->arrow_schema));
0408:
+0409: free(col.setup.chunks.chunks)
free(__pyx_v_col->setup->chunks.chunks);
+0410: col.setup.chunks.chunks = NULL
__pyx_v_col->setup->chunks.chunks = NULL;
+0411: col.setup.chunks.n_chunks = 0
__pyx_v_col->setup->chunks.n_chunks = 0;
0412:
+0413: free(col.setup)
free(__pyx_v_col->setup);
+0414: col.setup = NULL
__pyx_v_col->setup = NULL;
0415:
0416:
0417: # Calloc'd array of col_t.
+0418: cdef struct col_t_arr:
struct __pyx_t_7questdb_7ingress_col_t_arr { size_t size; struct __pyx_t_7questdb_7ingress_col_t *d; };
0419: size_t size
0420: col_t* d
0421:
0422:
+0423: cdef col_t_arr col_t_arr_blank() noexcept nogil:
static struct __pyx_t_7questdb_7ingress_col_t_arr __pyx_f_7questdb_7ingress_col_t_arr_blank(void) { struct __pyx_t_7questdb_7ingress_col_t_arr __pyx_v_arr; struct __pyx_t_7questdb_7ingress_col_t_arr __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
0424: cdef col_t_arr arr
+0425: arr.size = 0
__pyx_v_arr.size = 0;
+0426: arr.d = NULL
__pyx_v_arr.d = NULL;
+0427: return arr
__pyx_r = __pyx_v_arr; goto __pyx_L0;
0428:
0429:
+0430: cdef col_t_arr col_t_arr_new(size_t size) noexcept nogil:
static struct __pyx_t_7questdb_7ingress_col_t_arr __pyx_f_7questdb_7ingress_col_t_arr_new(size_t __pyx_v_size) { struct __pyx_t_7questdb_7ingress_col_t_arr __pyx_v_arr; size_t __pyx_v_index; struct __pyx_t_7questdb_7ingress_col_t_arr __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
0431: cdef col_t_arr arr
0432: cdef size_t index
+0433: arr.size = size
__pyx_v_arr.size = __pyx_v_size;
+0434: arr.d = <col_t*>calloc(size, sizeof(col_t))
__pyx_v_arr.d = ((struct __pyx_t_7questdb_7ingress_col_t *)calloc(__pyx_v_size, (sizeof(struct __pyx_t_7questdb_7ingress_col_t))));
+0435: for index in range(size):
__pyx_t_1 = __pyx_v_size; __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_index = __pyx_t_3;
+0436: arr.d[index].setup = <col_setup_t*>calloc(1, sizeof(col_setup_t))
(__pyx_v_arr.d[__pyx_v_index]).setup = ((struct __pyx_t_7questdb_7ingress_col_setup_t *)calloc(1, (sizeof(struct __pyx_t_7questdb_7ingress_col_setup_t)))); }
+0437: return arr
__pyx_r = __pyx_v_arr; goto __pyx_L0;
0438:
0439:
+0440: cdef void col_t_arr_release(col_t_arr* arr) noexcept:
static void __pyx_f_7questdb_7ingress_col_t_arr_release(struct __pyx_t_7questdb_7ingress_col_t_arr *__pyx_v_arr) { size_t __pyx_v_index; /* … */ /* function exit code */ }
0441: cdef size_t index
+0442: if arr.d:
__pyx_t_1 = (__pyx_v_arr->d != 0); if (__pyx_t_1) { /* … */ }
+0443: for index in range(arr.size):
__pyx_t_2 = __pyx_v_arr->size; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_index = __pyx_t_4;
+0444: col_t_release(&arr.d[index])
__pyx_f_7questdb_7ingress_col_t_release((&(__pyx_v_arr->d[__pyx_v_index]))); }
+0445: free(arr.d)
free(__pyx_v_arr->d);
+0446: arr.size = 0
__pyx_v_arr->size = 0;
+0447: arr.d = NULL
__pyx_v_arr->d = NULL;
0448:
0449:
+0450: cdef object _NUMPY = None # module object
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY, Py_None); __Pyx_GIVEREF(Py_None);
+0451: cdef object _NUMPY_BOOL = None
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_BOOL); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_BOOL, Py_None); __Pyx_GIVEREF(Py_None);
+0452: cdef object _NUMPY_UINT8 = None
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_UINT8); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_UINT8, Py_None); __Pyx_GIVEREF(Py_None);
+0453: cdef object _NUMPY_INT8 = None
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_INT8); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_INT8, Py_None); __Pyx_GIVEREF(Py_None);
+0454: cdef object _NUMPY_UINT16 = None
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_UINT16); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_UINT16, Py_None); __Pyx_GIVEREF(Py_None);
+0455: cdef object _NUMPY_INT16 = None
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_INT16); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_INT16, Py_None); __Pyx_GIVEREF(Py_None);
+0456: cdef object _NUMPY_UINT32 = None
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_UINT32); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_UINT32, Py_None); __Pyx_GIVEREF(Py_None);
+0457: cdef object _NUMPY_INT32 = None
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_INT32); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_INT32, Py_None); __Pyx_GIVEREF(Py_None);
+0458: cdef object _NUMPY_UINT64 = None
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_UINT64); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_UINT64, Py_None); __Pyx_GIVEREF(Py_None);
+0459: cdef object _NUMPY_INT64 = None
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_INT64); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_INT64, Py_None); __Pyx_GIVEREF(Py_None);
+0460: cdef object _NUMPY_FLOAT32 = None
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_FLOAT32); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_FLOAT32, Py_None); __Pyx_GIVEREF(Py_None);
+0461: cdef object _NUMPY_FLOAT64 = None
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_FLOAT64); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_FLOAT64, Py_None); __Pyx_GIVEREF(Py_None);
+0462: cdef object _NUMPY_DATETIME64_NS = None
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_DATETIME64_NS); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_DATETIME64_NS, Py_None); __Pyx_GIVEREF(Py_None);
+0463: cdef object _NUMPY_OBJECT = None
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_OBJECT); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_OBJECT, Py_None); __Pyx_GIVEREF(Py_None);
+0464: cdef object _PANDAS = None # module object
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__PANDAS); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__PANDAS, Py_None); __Pyx_GIVEREF(Py_None);
+0465: cdef object _PANDAS_NA = None # pandas.NA
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__PANDAS_NA); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__PANDAS_NA, Py_None); __Pyx_GIVEREF(Py_None);
+0466: cdef object _PYARROW = None # module object, if available or None
__Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__PYARROW); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__PYARROW, Py_None); __Pyx_GIVEREF(Py_None);
0467:
+0468: cdef int64_t _NAT = INT64_MIN # pandas NaT
__pyx_v_7questdb_7ingress__NAT = INT64_MIN;
0469:
0470:
+0471: cdef object _dataframe_may_import_deps():
static PyObject *__pyx_f_7questdb_7ingress__dataframe_may_import_deps(void) { PyObject *__pyx_v_pandas = NULL; PyObject *__pyx_v_numpy = NULL; PyObject *__pyx_v_pyarrow = NULL; PyObject *__pyx_v_ie = NULL; PyObject *__pyx_r = NULL; /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("questdb.ingress._dataframe_may_import_deps", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_pandas); __Pyx_XDECREF(__pyx_v_numpy); __Pyx_XDECREF(__pyx_v_pyarrow); __Pyx_XDECREF(__pyx_v_ie); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0472: """"
0473: Lazily import module dependencies on first use to avoid startup overhead.
0474:
0475: $ cat imp_test.py
0476: import numpy
0477: import pandas
0478: import pyarrow
0479:
0480: $ time python3 ./imp_test.py
0481: python3 ./imp_test.py 0.56s user 1.60s system 852% cpu 0.254 total
0482: """
0483: global _NUMPY, _PANDAS, _PYARROW, _PANDAS_NA
0484: global _NUMPY_BOOL
0485: global _NUMPY_UINT8
0486: global _NUMPY_INT8
0487: global _NUMPY_UINT16
0488: global _NUMPY_INT16
0489: global _NUMPY_UINT32
0490: global _NUMPY_INT32
0491: global _NUMPY_UINT64
0492: global _NUMPY_INT64
0493: global _NUMPY_FLOAT32
0494: global _NUMPY_FLOAT64
0495: global _NUMPY_DATETIME64_NS
0496: global _NUMPY_OBJECT
+0497: if _NUMPY is not None:
__pyx_t_1 = (__pyx_v_7questdb_7ingress__NUMPY != Py_None); if (__pyx_t_1) { /* … */ }
+0498: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
+0499: try:
{ /*try:*/ { /* … */ } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L9_try_end:; }
+0500: import pandas
__pyx_t_5 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_pandas, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 500, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_pandas = __pyx_t_5; __pyx_t_5 = 0;
+0501: import numpy
__pyx_t_5 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_numpy, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 501, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_numpy = __pyx_t_5; __pyx_t_5 = 0;
+0502: import pyarrow
__pyx_t_5 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_pyarrow, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 502, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_pyarrow = __pyx_t_5; __pyx_t_5 = 0;
+0503: except ImportError as ie:
__pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); if (__pyx_t_6) { __Pyx_AddTraceback("questdb.ingress._dataframe_may_import_deps", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(1, 503, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_7); __pyx_v_ie = __pyx_t_7; /*try:*/ { /* … */ /*finally:*/ { __pyx_L15_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if ( unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0)) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __pyx_t_6 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ie); __pyx_v_ie = 0; } __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ErrRestore(__pyx_t_15, __pyx_t_16, __pyx_t_17); __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_14; goto __pyx_L6_except_error; } } } goto __pyx_L6_except_error;
+0504: raise ImportError(
__pyx_t_10 = NULL; __Pyx_INCREF(__pyx_builtin_ImportError); __pyx_t_11 = __pyx_builtin_ImportError; __pyx_t_12 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_mstate_global->__pyx_kp_u_Missing_dependencies_pandas_nump}; __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 504, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_9); }
0505: 'Missing dependencies: `pandas`, `numpy` and `pyarrow` must all ' +
0506: 'be installed to use the `.dataframe()` method. ' +
0507: 'See: https://py-questdb-client.readthedocs.io/' +
+0508: 'en/latest/installation.html.') from ie
__Pyx_Raise(__pyx_t_9, 0, 0, __pyx_v_ie); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_ERR(1, 504, __pyx_L15_error) }
+0509: _NUMPY = numpy
__Pyx_INCREF(__pyx_v_numpy); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY, __pyx_v_numpy); __Pyx_GIVEREF(__pyx_v_numpy);
+0510: _NUMPY_BOOL = type(_NUMPY.dtype('bool'))
__pyx_t_7 = __pyx_v_7questdb_7ingress__NUMPY; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_n_u_bool}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_BOOL); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_BOOL, ((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0511: _NUMPY_UINT8 = type(_NUMPY.dtype('uint8'))
__pyx_t_7 = __pyx_v_7questdb_7ingress__NUMPY; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_n_u_uint8}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_UINT8); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_UINT8, ((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0512: _NUMPY_INT8 = type(_NUMPY.dtype('int8'))
__pyx_t_7 = __pyx_v_7questdb_7ingress__NUMPY; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_n_u_int8}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_INT8); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_INT8, ((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0513: _NUMPY_UINT16 = type(_NUMPY.dtype('uint16'))
__pyx_t_7 = __pyx_v_7questdb_7ingress__NUMPY; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_n_u_uint16}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_UINT16); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_UINT16, ((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0514: _NUMPY_INT16 = type(_NUMPY.dtype('int16'))
__pyx_t_7 = __pyx_v_7questdb_7ingress__NUMPY; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_n_u_int16}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_INT16); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_INT16, ((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0515: _NUMPY_UINT32 = type(_NUMPY.dtype('uint32'))
__pyx_t_7 = __pyx_v_7questdb_7ingress__NUMPY; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_n_u_uint32}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_UINT32); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_UINT32, ((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0516: _NUMPY_INT32 = type(_NUMPY.dtype('int32'))
__pyx_t_7 = __pyx_v_7questdb_7ingress__NUMPY; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_n_u_int32}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_INT32); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_INT32, ((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0517: _NUMPY_UINT64 = type(_NUMPY.dtype('uint64'))
__pyx_t_7 = __pyx_v_7questdb_7ingress__NUMPY; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_n_u_uint64}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_UINT64); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_UINT64, ((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0518: _NUMPY_INT64 = type(_NUMPY.dtype('int64'))
__pyx_t_7 = __pyx_v_7questdb_7ingress__NUMPY; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_n_u_int64}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_INT64); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_INT64, ((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0519: _NUMPY_FLOAT32 = type(_NUMPY.dtype('float32'))
__pyx_t_7 = __pyx_v_7questdb_7ingress__NUMPY; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_n_u_float32}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_FLOAT32); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_FLOAT32, ((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0520: _NUMPY_FLOAT64 = type(_NUMPY.dtype('float64'))
__pyx_t_7 = __pyx_v_7questdb_7ingress__NUMPY; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_n_u_float64}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_FLOAT64); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_FLOAT64, ((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0521: _NUMPY_DATETIME64_NS = type(_NUMPY.dtype('datetime64[ns]'))
__pyx_t_7 = __pyx_v_7questdb_7ingress__NUMPY; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_datetime64_ns}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_DATETIME64_NS); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_DATETIME64_NS, ((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0522: _NUMPY_OBJECT = type(_NUMPY.dtype('object'))
__pyx_t_7 = __pyx_v_7questdb_7ingress__NUMPY; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_n_u_object}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__NUMPY_OBJECT); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__NUMPY_OBJECT, ((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_t_8))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0523: _PANDAS = pandas
__Pyx_INCREF(__pyx_v_pandas); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__PANDAS); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__PANDAS, __pyx_v_pandas); __Pyx_GIVEREF(__pyx_v_pandas);
+0524: _PANDAS_NA = pandas.NA
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_pandas, __pyx_mstate_global->__pyx_n_u_NA); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__PANDAS_NA); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__PANDAS_NA, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = 0;
+0525: _PYARROW = pyarrow
__Pyx_INCREF(__pyx_v_pyarrow); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__PYARROW); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__PYARROW, __pyx_v_pyarrow); __Pyx_GIVEREF(__pyx_v_pyarrow);
0526:
0527:
+0528: cdef object _dataframe_check_is_dataframe(object df):
static PyObject *__pyx_f_7questdb_7ingress__dataframe_check_is_dataframe(PyObject *__pyx_v_df) { PyObject *__pyx_r = NULL; /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("questdb.ingress._dataframe_check_is_dataframe", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0529: if not isinstance(df, _PANDAS.DataFrame):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_df, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 529, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (!__pyx_t_2); if (unlikely(__pyx_t_3)) { /* … */ }
+0530: raise IngressError(
__pyx_t_4 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 530, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+0531: IngressErrorCode.InvalidApiCall,
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_InvalidApiCall); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0532: f'Bad argument `df`: Expected {_fqn(_PANDAS.DataFrame)}, ' +
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (!(likely(PyType_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("type", __pyx_t_6))) __PYX_ERR(1, 532, __pyx_L1_error) __pyx_t_8 = __pyx_f_7questdb_7ingress__fqn(((PyTypeObject*)__pyx_t_6)); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyUnicode_Unicode(__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* … */ __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_10, 5, 28 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 24 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9)); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_11 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_4); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_11 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_7, __pyx_t_8}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_11, (3-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 530, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 530, __pyx_L1_error)
+0533: f'not an object of type {_fqn(type(df))}.')
__pyx_t_8 = __pyx_f_7questdb_7ingress__fqn(((PyTypeObject*)((PyObject *)Py_TYPE(__pyx_v_df)))); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_PyUnicode_Unicode(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10[0] = __pyx_mstate_global->__pyx_kp_u_Bad_argument_df_Expected; __pyx_t_10[1] = __pyx_t_6; __pyx_t_10[2] = __pyx_mstate_global->__pyx_kp_u_not_an_object_of_type; __pyx_t_10[3] = __pyx_t_9; __pyx_t_10[4] = __pyx_mstate_global->__pyx_kp_u_;
0534:
0535:
+0536: cdef ssize_t _dataframe_resolve_table_name(
static Py_ssize_t __pyx_f_7questdb_7ingress__dataframe_resolve_table_name(struct qdb_pystr_buf *__pyx_v_b, PyObject *__pyx_v_df, PyObject *__pyx_v_pandas_cols, struct __pyx_t_7questdb_7ingress_col_t_arr *__pyx_v_cols, PyObject *__pyx_v_table_name, PyObject *__pyx_v_table_name_col, size_t __pyx_v_col_count, struct line_sender_table_name *__pyx_v_name_out) { size_t __pyx_v_col_index; struct __pyx_obj_7questdb_7ingress_PandasCol *__pyx_v_pandas_col = 0; struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col; PyObject *__pyx_v_ie = NULL; Py_ssize_t __pyx_r; /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_XDECREF(__pyx_t_15); __Pyx_AddTraceback("questdb.ingress._dataframe_resolve_table_name", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -2; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_pandas_col); __Pyx_XDECREF(__pyx_v_ie); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0537: qdb_pystr_buf* b,
0538: object df,
0539: list pandas_cols,
0540: col_t_arr* cols,
0541: object table_name,
0542: object table_name_col,
0543: size_t col_count,
0544: line_sender_table_name* name_out) except -2:
0545: """
0546: Resolve the table name string or column.
0547:
0548: Returns -1 if the table name is a string, otherwise the column index.
0549: """
+0550: cdef size_t col_index = 0
__pyx_v_col_index = 0;
0551: cdef PandasCol pandas_col
0552: cdef col_t* col
+0553: if table_name is not None:
__pyx_t_1 = (__pyx_v_table_name != Py_None); if (__pyx_t_1) { /* … */ }
+0554: if table_name_col is not None:
__pyx_t_1 = (__pyx_v_table_name_col != Py_None); if (unlikely(__pyx_t_1)) { /* … */ }
+0555: raise ValueError(
__pyx_t_3 = NULL; __Pyx_INCREF(__pyx_builtin_ValueError); __pyx_t_4 = __pyx_builtin_ValueError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Can_specify_only_one_of_table_na}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 555, __pyx_L1_error)
0556: 'Can specify only one of `table_name` or `table_name_col`.')
+0557: if isinstance(table_name, str):
__pyx_t_1 = PyUnicode_Check(__pyx_v_table_name);
if (likely(__pyx_t_1)) {
/* … */
}
+0558: try:
{ /*try:*/ { /* … */ } __pyx_L6_error:; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_L8_except_error:; __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); goto __pyx_L1_error; __pyx_L10_try_return:; __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); goto __pyx_L0; }
+0559: str_to_table_name_copy(b, <PyObject*>table_name, name_out)
__pyx_t_9 = __pyx_f_7questdb_7ingress_str_to_table_name_copy(__pyx_v_b, ((PyObject *)__pyx_v_table_name), __pyx_v_name_out); if (unlikely(__pyx_t_9 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 559, __pyx_L6_error)
+0560: return -1 # Magic value for "no column index".
__pyx_r = -1L; goto __pyx_L10_try_return;
+0561: except IngressError as ie:
__Pyx_ErrFetch(&__pyx_t_2, &__pyx_t_4, &__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 561, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_2, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_ErrRestore(__pyx_t_2, __pyx_t_4, __pyx_t_3); __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_3 = 0; if (__pyx_t_11) { __Pyx_AddTraceback("questdb.ingress._dataframe_resolve_table_name", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_4, &__pyx_t_2) < 0) __PYX_ERR(1, 561, __pyx_L8_except_error) __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_v_ie = __pyx_t_4; /*try:*/ { /* … */ /*finally:*/ { __pyx_L17_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_ExceptionSwap(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if ( unlikely(__Pyx_GetException(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __pyx_t_11 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ie); __pyx_v_ie = 0; } __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ErrRestore(__pyx_t_18, __pyx_t_19, __pyx_t_20); __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L8_except_error; } } } goto __pyx_L8_except_error;
+0562: raise ValueError(
__pyx_t_12 = NULL;
__Pyx_INCREF(__pyx_builtin_ValueError);
__pyx_t_13 = __pyx_builtin_ValueError;
+0563: f'Bad argument `table_name`: {ie}')
__pyx_t_14 = __Pyx_PyObject_FormatSimple(__pyx_v_ie, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 563, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Bad_argument_table_name, __pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 563, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_15}; __pyx_t_10 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 562, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(1, 562, __pyx_L17_error) }
0564: else:
+0565: raise TypeError('Bad argument `table_name`: Must be str.')
/*else*/ { __pyx_t_4 = NULL; __Pyx_INCREF(__pyx_builtin_TypeError); __pyx_t_3 = __pyx_builtin_TypeError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_Bad_argument_table_name_Must_be}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 565, __pyx_L1_error) }
+0566: elif table_name_col is not None:
__pyx_t_1 = (__pyx_v_table_name_col != Py_None); if (__pyx_t_1) { /* … */ }
+0567: if isinstance(table_name_col, str):
__pyx_t_1 = PyUnicode_Check(__pyx_v_table_name_col);
if (__pyx_t_1) {
/* … */
goto __pyx_L23;
}
+0568: _dataframe_get_loc(df, table_name_col, 'table_name_col', &col_index)
if (!(likely(PyUnicode_CheckExact(__pyx_v_table_name_col))||((__pyx_v_table_name_col) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_v_table_name_col))) __PYX_ERR(1, 568, __pyx_L1_error) __pyx_t_9 = __pyx_f_7questdb_7ingress__dataframe_get_loc(__pyx_v_df, ((PyObject*)__pyx_v_table_name_col), __pyx_mstate_global->__pyx_n_u_table_name_col, (&__pyx_v_col_index)); if (unlikely(__pyx_t_9 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 568, __pyx_L1_error)
+0569: elif isinstance(table_name_col, int):
__pyx_t_1 = PyLong_Check(__pyx_v_table_name_col);
if (likely(__pyx_t_1)) {
/* … */
goto __pyx_L23;
}
+0570: _bind_col_index(
__pyx_t_9 = __pyx_f_7questdb_7ingress__bind_col_index(__pyx_mstate_global->__pyx_n_u_table_name_col, __pyx_t_16, __pyx_v_col_count, (&__pyx_v_col_index)); if (unlikely(__pyx_t_9 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 570, __pyx_L1_error)
+0571: 'table_name_col', table_name_col, col_count, &col_index)
__pyx_t_16 = __Pyx_PyLong_As_int(__pyx_v_table_name_col); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 571, __pyx_L1_error)
0572: else:
+0573: raise TypeError(
/*else*/ { __pyx_t_3 = NULL; __Pyx_INCREF(__pyx_builtin_TypeError); __pyx_t_4 = __pyx_builtin_TypeError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Bad_argument_table_name_col_must}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 573, __pyx_L1_error) } __pyx_L23:;
0574: 'Bad argument `table_name_col`: ' +
0575: 'must be a column name (str) or index (int).')
+0576: pandas_col = pandas_cols[col_index]
if (unlikely(__pyx_v_pandas_cols == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 576, __pyx_L1_error) } __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_pandas_cols, __pyx_v_col_index, size_t, 0, __Pyx_PyLong_FromSize_t, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_7questdb_7ingress_PandasCol))))) __PYX_ERR(1, 576, __pyx_L1_error) __pyx_v_pandas_col = ((struct __pyx_obj_7questdb_7ingress_PandasCol *)__pyx_t_2); __pyx_t_2 = 0;
+0577: col = &cols.d[col_index]
__pyx_v_col = (&(__pyx_v_cols->d[__pyx_v_col_index]));
+0578: _dataframe_check_column_is_str(
__pyx_t_9 = __pyx_f_7questdb_7ingress__dataframe_check_column_is_str(__pyx_mstate_global->__pyx_kp_u_Bad_argument_table_name_col, __pyx_v_pandas_col, __pyx_v_col->setup->source); if (unlikely(__pyx_t_9 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 578, __pyx_L1_error)
0579: 'Bad argument `table_name_col`: ',
0580: pandas_col,
0581: col.setup.source)
+0582: col.setup.meta_target = meta_target_t.meta_target_table
__pyx_v_col->setup->meta_target = __pyx_e_7questdb_7ingress_meta_target_table;
+0583: name_out.len = 0
__pyx_v_name_out->len = 0;
+0584: name_out.buf = NULL
__pyx_v_name_out->buf = NULL;
+0585: return col_index
__pyx_r = __pyx_v_col_index; goto __pyx_L0;
+0586: elif df.index.name:
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 586, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(__pyx_t_1)) { /* … */ }
+0587: if not isinstance(df.index.name, str):
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = PyUnicode_Check(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_24 = (!__pyx_t_1); if (unlikely(__pyx_t_24)) { /* … */ }
+0588: raise TypeError(
__pyx_t_4 = NULL;
__Pyx_INCREF(__pyx_builtin_TypeError);
__pyx_t_3 = __pyx_builtin_TypeError;
0589: 'Bad dataframe index name as table name: Expected str, ' +
+0590: f'not an object of type {_fqn(type(df.index.name))}.')
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __pyx_f_7questdb_7ingress__fqn(((PyTypeObject*)((PyObject *)Py_TYPE(__pyx_t_13)))); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyUnicode_Unicode(__pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_25[0] = __pyx_mstate_global->__pyx_kp_u_Bad_dataframe_index_name_as_tabl; __pyx_t_25[1] = __pyx_t_13; __pyx_t_25[2] = __pyx_mstate_global->__pyx_kp_u_; __pyx_t_10 = __Pyx_PyUnicode_Join(__pyx_t_25, 3, 76 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13)); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_10}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 588, __pyx_L1_error)
0591:
0592: # If the index has a name, use that as the table name.
+0593: try:
{ /*try:*/ { /* … */ } __pyx_L25_error:; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_L27_except_error:; __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6); goto __pyx_L1_error; __pyx_L29_try_return:; __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6); goto __pyx_L0; }
+0594: str_to_table_name_copy(b, <PyObject*>df.index.name, name_out)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 594, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 594, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __pyx_f_7questdb_7ingress_str_to_table_name_copy(__pyx_v_b, ((PyObject *)__pyx_t_3), __pyx_v_name_out); if (unlikely(__pyx_t_9 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 594, __pyx_L25_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0595: return -1 # Magic value for "no column index".
__pyx_r = -1L; goto __pyx_L29_try_return;
+0596: except IngressError as ie:
__Pyx_ErrFetch(&__pyx_t_3, &__pyx_t_2, &__pyx_t_10); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 596, __pyx_L27_except_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_16 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_3, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_ErrRestore(__pyx_t_3, __pyx_t_2, __pyx_t_10); __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_10 = 0; if (__pyx_t_16) { __Pyx_AddTraceback("questdb.ingress._dataframe_resolve_table_name", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(1, 596, __pyx_L27_except_error) __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_v_ie = __pyx_t_2; /*try:*/ { /* … */ /*finally:*/ { __pyx_L36_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21) < 0)) __Pyx_ErrFetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_16 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_26 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ie); __pyx_v_ie = 0; } __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_19, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ErrRestore(__pyx_t_23, __pyx_t_22, __pyx_t_21); __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_26; goto __pyx_L27_except_error; } } } goto __pyx_L27_except_error;
+0597: raise ValueError(
__pyx_t_13 = NULL;
__Pyx_INCREF(__pyx_builtin_ValueError);
__pyx_t_15 = __pyx_builtin_ValueError;
+0598: f'Bad dataframe index name as table name: {ie}')
__pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_v_ie, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 598, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_14 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Bad_dataframe_index_name_as_tabl_2, __pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 598, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_14}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_15, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 597, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 597, __pyx_L36_error) }
0599: else:
+0600: raise ValueError(
/*else*/ { __pyx_t_2 = NULL; __Pyx_INCREF(__pyx_builtin_ValueError); __pyx_t_10 = __pyx_builtin_ValueError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Must_specify_at_least_one_of_tab}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 600, __pyx_L1_error) }
0601: 'Must specify at least one of `table_name` or `table_name_col`, ' +
0602: 'or set the dataframe index name (df.index.name = \'tbl_name\').')
0603:
0604:
+0605: cdef void_int _bind_col_index(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__bind_col_index(PyObject *__pyx_v_arg_name, int __pyx_v_col_num, size_t __pyx_v_col_count, size_t *__pyx_v_col_index) { int __pyx_v_bad; int __pyx_v_orig_col_num; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("questdb.ingress._bind_col_index", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
0606: str arg_name, int col_num, size_t col_count,
0607: size_t* col_index) except -1:
0608: """
0609: Validate that `col_index` is in bounds for `col_count`.
0610: This function also converts negative indicies (e.g. -1 for last column) to
0611: positive indicies.
0612: """
+0613: cdef bint bad = False
__pyx_v_bad = 0;
+0614: cdef int orig_col_num = col_num
__pyx_v_orig_col_num = __pyx_v_col_num;
+0615: if col_num < 0:
__pyx_t_1 = (__pyx_v_col_num < 0); if (__pyx_t_1) { /* … */ }
+0616: col_num += col_count # Try convert negative offsets to positive ones.
__pyx_v_col_num = (__pyx_v_col_num + __pyx_v_col_count);
+0617: if col_num < 0:
__pyx_t_1 = (__pyx_v_col_num < 0); if (__pyx_t_1) { /* … */ }
+0618: bad = True
__pyx_v_bad = 1;
+0619: if (not bad) and (<size_t>col_num >= col_count):
__pyx_t_2 = (!__pyx_v_bad); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L6_bool_binop_done; } __pyx_t_2 = (((size_t)__pyx_v_col_num) >= __pyx_v_col_count); __pyx_t_1 = __pyx_t_2; __pyx_L6_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0620: bad = True
__pyx_v_bad = 1;
+0621: if bad:
if (unlikely(__pyx_v_bad)) { /* … */ }
+0622: raise IndexError(
__pyx_t_4 = NULL;
__Pyx_INCREF(__pyx_builtin_IndexError);
__pyx_t_5 = __pyx_builtin_IndexError;
+0623: f'Bad argument `{arg_name}`: {orig_col_num} index out of range')
__pyx_t_6 = __Pyx_PyUnicode_Unicode(__pyx_v_arg_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyUnicode_From_int(__pyx_v_orig_col_num, 0, ' ', 'd'); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8[0] = __pyx_mstate_global->__pyx_kp_u_Bad_argument; __pyx_t_8[1] = __pyx_t_6; __pyx_t_8[2] = __pyx_mstate_global->__pyx_kp_u__2; __pyx_t_8[3] = __pyx_t_7; __pyx_t_8[4] = __pyx_mstate_global->__pyx_kp_u_index_out_of_range; __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_8, 5, 14 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 19, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6)); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_10 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 622, __pyx_L1_error)
+0624: col_index[0] = <size_t>col_num
(__pyx_v_col_index[0]) = ((size_t)__pyx_v_col_num);
0625:
0626:
+0627: cdef void_int _dataframe_check_column_is_str(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_check_column_is_str(PyObject *__pyx_v_err_msg_prefix, struct __pyx_obj_7questdb_7ingress_PandasCol *__pyx_v_pandas_col, enum __pyx_t_7questdb_7ingress_col_source_t __pyx_v_source) { PyObject *__pyx_v_inferred_descr = 0; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("questdb.ingress._dataframe_check_column_is_str", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_inferred_descr); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0628: str err_msg_prefix,
0629: PandasCol pandas_col,
0630: col_source_t source) except -1:
+0631: cdef str inferred_descr = ""
__Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__3);
__pyx_v_inferred_descr = __pyx_mstate_global->__pyx_kp_u__3;
+0632: if not source in _STR_SOURCES:
__pyx_t_1 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_v_source); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_7questdb_7ingress__STR_SOURCES == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(1, 632, __pyx_L1_error) } __pyx_t_2 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_7questdb_7ingress__STR_SOURCES, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 632, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+0633: if isinstance(pandas_col.dtype, _NUMPY_OBJECT):
__pyx_t_1 = __pyx_v_pandas_col->dtype; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_v_7questdb_7ingress__NUMPY_OBJECT; __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = PyObject_IsInstance(__pyx_t_1, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 633, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) { /* … */ }
+0634: inferred_descr = f' (inferred type: {_PYOBJ_SOURCE_DESCR[source]})'
if (unlikely(__pyx_v_7questdb_7ingress__PYOBJ_SOURCE_DESCR == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 634, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_v_source); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_7questdb_7ingress__PYOBJ_SOURCE_DESCR, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_inferred_type; __pyx_t_4[1] = __pyx_t_3; __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u__4; __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_4, 3, 17 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_inferred_descr, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
+0635: raise IngressError(
__pyx_t_3 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+0636: IngressErrorCode.BadDataFrame,
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_BadDataFrame); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0637: err_msg_prefix +
__pyx_t_6 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_err_msg_prefix, __pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0638: f'Bad dtype `{pandas_col.dtype}`{inferred_descr} for the ' +
__pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_pandas_col->dtype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8[0] = __pyx_mstate_global->__pyx_kp_u_Bad_dtype; __pyx_t_8[1] = __pyx_t_6; __pyx_t_8[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_8[3] = __pyx_v_inferred_descr; __pyx_t_8[4] = __pyx_mstate_global->__pyx_kp_u_for_the; __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_8, 5, 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_v_inferred_descr) + 9, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_v_inferred_descr)); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_9 = __Pyx_PyUnicode_ConcatInPlace(__pyx_t_6, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_3); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_11 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_7, __pyx_t_9}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_11, (3-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 635, __pyx_L1_error)
+0639: f'{pandas_col.name!r} column: Must be a strings column.')
__pyx_t_9 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_pandas_col->name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyUnicode_ConcatInPlace(__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_column_Must_be_a_strings_column); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
0640:
0641:
+0642: @cython.internal
struct __pyx_obj_7questdb_7ingress_PandasCol { PyObject_HEAD PyObject *name; PyObject *dtype; PyObject *series; };
0643: cdef class PandasCol:
0644: """Python object representing a column to parse .dataframe() arguments."""
0645: cdef str name
0646: cdef object dtype
0647: cdef object series
0648:
+0649: def __init__(
/* Python wrapper */ static int __pyx_pw_7questdb_7ingress_9PandasCol_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7questdb_7ingress_9PandasCol_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; PyObject *__pyx_v_dtype = 0; PyObject *__pyx_v_series = 0; CYTHON_UNUSED Py_ssize_t __pyx_nargs; CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_dtype,&__pyx_mstate_global->__pyx_n_u_series,0}; PyObject* values[3] = {0,0,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 649, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 649, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 649, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 649, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < 0) __PYX_ERR(1, 649, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(1, 649, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 649, __pyx_L3_error) values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 649, __pyx_L3_error) values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 649, __pyx_L3_error) } __pyx_v_name = ((PyObject*)values[0]); __pyx_v_dtype = values[1]; __pyx_v_series = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 649, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("questdb.ingress.PandasCol.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyUnicode_Type), 1, "name", 1))) __PYX_ERR(1, 651, __pyx_L1_error) __pyx_r = __pyx_pf_7questdb_7ingress_9PandasCol___init__(((struct __pyx_obj_7questdb_7ingress_PandasCol *)__pyx_v_self), __pyx_v_name, __pyx_v_dtype, __pyx_v_series); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7questdb_7ingress_9PandasCol___init__(struct __pyx_obj_7questdb_7ingress_PandasCol *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_dtype, PyObject *__pyx_v_series) { int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; }
0650: self,
0651: str name,
0652: object dtype,
0653: object series):
+0654: self.name = name
__Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); __Pyx_GOTREF(__pyx_v_self->name); __Pyx_DECREF(__pyx_v_self->name); __pyx_v_self->name = __pyx_v_name;
+0655: self.dtype = dtype
__Pyx_INCREF(__pyx_v_dtype); __Pyx_GIVEREF(__pyx_v_dtype); __Pyx_GOTREF(__pyx_v_self->dtype); __Pyx_DECREF(__pyx_v_self->dtype); __pyx_v_self->dtype = __pyx_v_dtype;
+0656: self.series = series
__Pyx_INCREF(__pyx_v_series); __Pyx_GIVEREF(__pyx_v_series); __Pyx_GOTREF(__pyx_v_self->series); __Pyx_DECREF(__pyx_v_self->series); __pyx_v_self->series = __pyx_v_series;
0657:
+0658: cdef void_int _dataframe_resolve_symbols(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_resolve_symbols(PyObject *__pyx_v_df, PyObject *__pyx_v_pandas_cols, struct __pyx_t_7questdb_7ingress_col_t_arr *__pyx_v_cols, Py_ssize_t __pyx_v_table_name_col, Py_ssize_t __pyx_v_at_col, PyObject *__pyx_v_symbols) { size_t __pyx_v_col_index; PyObject *__pyx_v_symbol = 0; struct __pyx_obj_7questdb_7ingress_PandasCol *__pyx_v_pandas_col = 0; struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_XDECREF(__pyx_t_15); __Pyx_AddTraceback("questdb.ingress._dataframe_resolve_symbols", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_symbol); __Pyx_XDECREF((PyObject *)__pyx_v_pandas_col); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0659: object df,
0660: list pandas_cols,
0661: col_t_arr* cols,
0662: ssize_t table_name_col,
0663: ssize_t at_col,
0664: object symbols) except -1:
+0665: cdef size_t col_index = 0
__pyx_v_col_index = 0;
0666: cdef object symbol
0667: cdef PandasCol pandas_col
0668: cdef col_t* col
+0669: if symbols == 'auto':
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_symbols, __pyx_mstate_global->__pyx_n_u_auto, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 669, __pyx_L1_error) if (__pyx_t_1) { /* … */ goto __pyx_L3; }
+0670: for col_index in range(cols.size):
__pyx_t_2 = __pyx_v_cols->size; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_col_index = __pyx_t_4;
+0671: pandas_col = pandas_cols[col_index]
if (unlikely(__pyx_v_pandas_cols == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 671, __pyx_L1_error) } __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_pandas_cols, __pyx_v_col_index, size_t, 0, __Pyx_PyLong_FromSize_t, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_mstate_global->__pyx_ptype_7questdb_7ingress_PandasCol))))) __PYX_ERR(1, 671, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_pandas_col, ((struct __pyx_obj_7questdb_7ingress_PandasCol *)__pyx_t_5)); __pyx_t_5 = 0;
+0672: col = &cols.d[col_index]
__pyx_v_col = (&(__pyx_v_cols->d[__pyx_v_col_index]));
+0673: if col.setup.meta_target == meta_target_t.meta_target_field:
__pyx_t_1 = (__pyx_v_col->setup->meta_target == __pyx_e_7questdb_7ingress_meta_target_field); if (__pyx_t_1) { /* … */ } }
+0674: if isinstance(pandas_col.dtype, _PANDAS.CategoricalDtype):
__pyx_t_5 = __pyx_v_pandas_col->dtype; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_CategoricalDtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyObject_IsInstance(__pyx_t_5, __pyx_t_6); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(1, 674, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_1) { /* … */ }
+0675: col.setup.meta_target = meta_target_t.meta_target_symbol
__pyx_v_col->setup->meta_target = __pyx_e_7questdb_7ingress_meta_target_symbol;
+0676: elif symbols is False:
__pyx_t_1 = (__pyx_v_symbols == Py_False); if (__pyx_t_1) { goto __pyx_L3; }
0677: pass
+0678: elif symbols is True:
__pyx_t_1 = (__pyx_v_symbols == Py_True); if (__pyx_t_1) { /* … */ goto __pyx_L3; }
+0679: for col_index in range(cols.size):
__pyx_t_2 = __pyx_v_cols->size; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_col_index = __pyx_t_4;
+0680: col = &cols.d[col_index]
__pyx_v_col = (&(__pyx_v_cols->d[__pyx_v_col_index]));
+0681: if col.setup.source in _STR_SOURCES:
__pyx_t_6 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_v_col->setup->source); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__pyx_v_7questdb_7ingress__STR_SOURCES == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(1, 681, __pyx_L1_error) } __pyx_t_1 = (__Pyx_PySet_ContainsTF(__pyx_t_6, __pyx_v_7questdb_7ingress__STR_SOURCES, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 681, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_1) { /* … */ } }
+0682: pandas_col = pandas_cols[col_index]
if (unlikely(__pyx_v_pandas_cols == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 682, __pyx_L1_error) } __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_pandas_cols, __pyx_v_col_index, size_t, 0, __Pyx_PyLong_FromSize_t, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_mstate_global->__pyx_ptype_7questdb_7ingress_PandasCol))))) __PYX_ERR(1, 682, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_pandas_col, ((struct __pyx_obj_7questdb_7ingress_PandasCol *)__pyx_t_6)); __pyx_t_6 = 0;
+0683: if col.setup.meta_target == meta_target_t.meta_target_field:
__pyx_t_1 = (__pyx_v_col->setup->meta_target == __pyx_e_7questdb_7ingress_meta_target_field); if (__pyx_t_1) { /* … */ }
+0684: col.setup.meta_target = meta_target_t.meta_target_symbol
__pyx_v_col->setup->meta_target = __pyx_e_7questdb_7ingress_meta_target_symbol;
0685: else:
+0686: if not isinstance(symbols, (tuple, list)):
/*else*/ { __pyx_t_7 = PyTuple_Check(__pyx_v_symbols); if (!__pyx_t_7) { } else { __pyx_t_1 = __pyx_t_7; goto __pyx_L13_bool_binop_done; } __pyx_t_7 = PyList_Check(__pyx_v_symbols); __pyx_t_1 = __pyx_t_7; __pyx_L13_bool_binop_done:; __pyx_t_7 = (!__pyx_t_1); if (unlikely(__pyx_t_7)) { /* … */ }
+0687: raise TypeError(
__pyx_t_5 = NULL; __Pyx_INCREF(__pyx_builtin_TypeError); __pyx_t_8 = __pyx_builtin_TypeError; __pyx_t_2 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_Bad_argument_symbols_Must_be_a_b}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_2, (2-__pyx_t_2) | (__pyx_t_2*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(1, 687, __pyx_L1_error)
0688: f'Bad argument `symbols`: Must be a bool or a tuple or list '+
0689: 'of column names (str) or indices (int).')
+0690: for symbol in symbols:
if (likely(PyList_CheckExact(__pyx_v_symbols)) || PyTuple_CheckExact(__pyx_v_symbols)) { __pyx_t_6 = __pyx_v_symbols; __Pyx_INCREF(__pyx_t_6); __pyx_t_9 = 0; __pyx_t_10 = NULL; } else { __pyx_t_9 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_symbols); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 690, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_10)) { if (likely(PyList_CheckExact(__pyx_t_6))) { { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 690, __pyx_L1_error) #endif if (__pyx_t_9 >= __pyx_temp) break; } __pyx_t_8 = __Pyx_PyList_GetItemRef(__pyx_t_6, __pyx_t_9); ++__pyx_t_9; } else { { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_6); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 690, __pyx_L1_error) #endif if (__pyx_t_9 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_8 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_9)); #else __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_9); #endif ++__pyx_t_9; } if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 690, __pyx_L1_error) } else { __pyx_t_8 = __pyx_t_10(__pyx_t_6); if (unlikely(!__pyx_t_8)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(1, 690, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_8); __Pyx_XDECREF_SET(__pyx_v_symbol, __pyx_t_8); __pyx_t_8 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_L3:;
+0691: if isinstance(symbol, str):
__pyx_t_7 = PyUnicode_Check(__pyx_v_symbol);
if (__pyx_t_7) {
/* … */
goto __pyx_L17;
}
+0692: _dataframe_get_loc(df, symbol, 'symbols', &col_index)
if (!(likely(PyUnicode_CheckExact(__pyx_v_symbol))||((__pyx_v_symbol) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_v_symbol))) __PYX_ERR(1, 692, __pyx_L1_error) __pyx_t_11 = __pyx_f_7questdb_7ingress__dataframe_get_loc(__pyx_v_df, ((PyObject*)__pyx_v_symbol), __pyx_mstate_global->__pyx_n_u_symbols, (&__pyx_v_col_index)); if (unlikely(__pyx_t_11 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 692, __pyx_L1_error)
+0693: elif isinstance(symbol, int):
__pyx_t_7 = PyLong_Check(__pyx_v_symbol);
if (likely(__pyx_t_7)) {
/* … */
goto __pyx_L17;
}
+0694: _bind_col_index('symbol', symbol, cols.size, &col_index)
__pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_symbol); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 694, __pyx_L1_error) __pyx_t_11 = __pyx_f_7questdb_7ingress__bind_col_index(__pyx_mstate_global->__pyx_n_u_symbol, __pyx_t_12, __pyx_v_cols->size, (&__pyx_v_col_index)); if (unlikely(__pyx_t_11 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 694, __pyx_L1_error)
0695: else:
+0696: raise TypeError(
/*else*/ { __pyx_t_5 = NULL; __Pyx_INCREF(__pyx_builtin_TypeError); __pyx_t_13 = __pyx_builtin_TypeError; __pyx_t_2 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_Bad_argument_symbols_Elements_mu}; __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+__pyx_t_2, (2-__pyx_t_2) | (__pyx_t_2*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(1, 696, __pyx_L1_error) } __pyx_L17:;
0697: f'Bad argument `symbols`: Elements must ' +
0698: 'be a column name (str) or index (int).')
+0699: if (table_name_col >= 0) and (col_index == <size_t>table_name_col):
__pyx_t_1 = (__pyx_v_table_name_col >= 0); if (__pyx_t_1) { } else { __pyx_t_7 = __pyx_t_1; goto __pyx_L19_bool_binop_done; } __pyx_t_1 = (__pyx_v_col_index == ((size_t)__pyx_v_table_name_col)); __pyx_t_7 = __pyx_t_1; __pyx_L19_bool_binop_done:; if (unlikely(__pyx_t_7)) { /* … */ }
+0700: raise ValueError(
__pyx_t_13 = NULL;
__Pyx_INCREF(__pyx_builtin_ValueError);
__pyx_t_5 = __pyx_builtin_ValueError;
+0701: f'Bad argument `symbols`: Cannot use the same column ' +
__pyx_t_14 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Bad_argument_symbols_Cannot_use, __pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_2 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_14}; __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_2, (2-__pyx_t_2) | (__pyx_t_2*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(1, 700, __pyx_L1_error)
+0702: f'{symbol!r} as both the table_name and as a symbol.')
__pyx_t_14 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_symbol), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = __Pyx_PyUnicode_ConcatInPlace(__pyx_t_14, __pyx_mstate_global->__pyx_kp_u_as_both_the_table_name_and_as_a); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+0703: if (at_col >= 0) and (col_index == <size_t>at_col):
__pyx_t_1 = (__pyx_v_at_col >= 0); if (__pyx_t_1) { } else { __pyx_t_7 = __pyx_t_1; goto __pyx_L22_bool_binop_done; } __pyx_t_1 = (__pyx_v_col_index == ((size_t)__pyx_v_at_col)); __pyx_t_7 = __pyx_t_1; __pyx_L22_bool_binop_done:; if (unlikely(__pyx_t_7)) { /* … */ }
+0704: raise ValueError(
__pyx_t_5 = NULL;
__Pyx_INCREF(__pyx_builtin_ValueError);
__pyx_t_14 = __pyx_builtin_ValueError;
0705: f'Bad argument `symbols`: Cannot use the `at` column ' +
+0706: f'({df.columns[at_col]!r}) as a symbol column.')
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_15 = __Pyx_GetItemInt(__pyx_t_13, __pyx_v_at_col, Py_ssize_t, 1, PyLong_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_15), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_16[0] = __pyx_mstate_global->__pyx_kp_u_Bad_argument_symbols_Cannot_use_2; __pyx_t_16[1] = __pyx_t_13; __pyx_t_16[2] = __pyx_mstate_global->__pyx_kp_u_as_a_symbol_column; __pyx_t_15 = __Pyx_PyUnicode_Join(__pyx_t_16, 3, 52 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 21, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13)); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_2 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_15}; __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_14, __pyx_callargs+__pyx_t_2, (2-__pyx_t_2) | (__pyx_t_2*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(1, 704, __pyx_L1_error)
+0707: pandas_col = pandas_cols[col_index]
if (unlikely(__pyx_v_pandas_cols == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 707, __pyx_L1_error) } __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_pandas_cols, __pyx_v_col_index, size_t, 0, __Pyx_PyLong_FromSize_t, 1, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_mstate_global->__pyx_ptype_7questdb_7ingress_PandasCol))))) __PYX_ERR(1, 707, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_pandas_col, ((struct __pyx_obj_7questdb_7ingress_PandasCol *)__pyx_t_8)); __pyx_t_8 = 0;
+0708: col = &cols.d[col_index]
__pyx_v_col = (&(__pyx_v_cols->d[__pyx_v_col_index]));
+0709: _dataframe_check_column_is_str(
__pyx_t_11 = __pyx_f_7questdb_7ingress__dataframe_check_column_is_str(__pyx_mstate_global->__pyx_kp_u_Bad_argument_symbols, __pyx_v_pandas_col, __pyx_v_col->setup->source); if (unlikely(__pyx_t_11 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 709, __pyx_L1_error)
0710: 'Bad argument `symbols`: ',
0711: pandas_col,
0712: col.setup.source)
+0713: col.setup.meta_target = meta_target_t.meta_target_symbol
__pyx_v_col->setup->meta_target = __pyx_e_7questdb_7ingress_meta_target_symbol;
0714:
0715:
+0716: cdef void_int _dataframe_get_loc(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_get_loc(PyObject *__pyx_v_df, PyObject *__pyx_v_col_name, PyObject *__pyx_v_arg_name, size_t *__pyx_v_col_index_out) { __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_15); __Pyx_AddTraceback("questdb.ingress._dataframe_get_loc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
0717: object df, str col_name, str arg_name,
0718: size_t* col_index_out) except -1:
0719: """
0720: Return the column index for `col_name`.
0721: """
+0722: try:
{ /*try:*/ { /* … */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_L5_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L8_try_end:; }
+0723: col_index_out[0] = df.columns.get_loc(col_name)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 723, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_col_name}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_get_loc, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 723, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_7 = __Pyx_PyLong_As_size_t(__pyx_t_4); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 723, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; (__pyx_v_col_index_out[0]) = __pyx_t_7;
+0724: except KeyError:
__pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); if (__pyx_t_8) { __Pyx_AddTraceback("questdb.ingress._dataframe_get_loc", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(1, 724, __pyx_L5_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_5);
+0725: raise KeyError(
__pyx_t_10 = NULL;
__Pyx_INCREF(__pyx_builtin_KeyError);
__pyx_t_11 = __pyx_builtin_KeyError;
+0726: f'Bad argument `{arg_name}`: ' +
__pyx_t_12 = __Pyx_PyUnicode_Unicode(__pyx_v_arg_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 726, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_12); /* … */ __pyx_t_15 = __Pyx_PyUnicode_Join(__pyx_t_14, 5, 14 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12) + 10 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 28, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13)); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 726, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_7 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_15}; __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 725, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_ERR(1, 725, __pyx_L5_except_error) } goto __pyx_L5_except_error;
+0727: f'Column {col_name!r} not found in the dataframe.')
__pyx_t_13 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_col_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 727, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Bad_argument; __pyx_t_14[1] = __pyx_t_12; __pyx_t_14[2] = __pyx_mstate_global->__pyx_kp_u_Column; __pyx_t_14[3] = __pyx_t_13; __pyx_t_14[4] = __pyx_mstate_global->__pyx_kp_u_not_found_in_the_dataframe;
0728:
0729:
0730: # The values -2 and -1 are safe to use as a sentinel because the TimestampNanos
0731: # type already validates that the value is >= 0.
+0732: cdef int64_t _AT_IS_SERVER_NOW = -2
__pyx_v_7questdb_7ingress__AT_IS_SERVER_NOW = -2L;
+0733: cdef int64_t _AT_IS_SET_BY_COLUMN = -1
__pyx_v_7questdb_7ingress__AT_IS_SET_BY_COLUMN = -1L;
0734:
0735:
+0736: cdef str _SUPPORTED_DATETIMES = 'datetime64[ns] or datetime64[ns, tz]'
__Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_datetime64_ns_or_datetime64_ns_t); __Pyx_XGOTREF(__pyx_v_7questdb_7ingress__SUPPORTED_DATETIMES); __Pyx_DECREF_SET(__pyx_v_7questdb_7ingress__SUPPORTED_DATETIMES, __pyx_mstate_global->__pyx_kp_u_datetime64_ns_or_datetime64_ns_t); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u_datetime64_ns_or_datetime64_ns_t);
0737:
0738:
+0739: cdef object _dataframe_is_supported_datetime(object dtype):
static PyObject *__pyx_f_7questdb_7ingress__dataframe_is_supported_datetime(PyObject *__pyx_v_dtype) { PyObject *__pyx_r = NULL; /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("questdb.ingress._dataframe_is_supported_datetime", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0740: if (isinstance(dtype, _NUMPY_DATETIME64_NS) and
__pyx_t_2 = __pyx_v_7questdb_7ingress__NUMPY_DATETIME64_NS; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 740, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } /* … */ if (__pyx_t_1) { /* … */ }
+0741: (str(dtype) == 'datetime64[ns]')):
__pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_datetime64_ns, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 741, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __pyx_t_3; __pyx_L4_bool_binop_done:;
+0742: return True
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_True); __pyx_r = Py_True; goto __pyx_L0;
+0743: if isinstance(dtype, _PANDAS.DatetimeTZDtype):
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_DatetimeTZDtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_2); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(1, 743, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_1) { /* … */ }
+0744: return dtype.unit == 'ns'
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_mstate_global->__pyx_n_u_unit); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ns, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 744, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
+0745: return False
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_False); __pyx_r = Py_False; goto __pyx_L0;
0746:
0747:
+0748: cdef ssize_t _dataframe_resolve_at(
static Py_ssize_t __pyx_f_7questdb_7ingress__dataframe_resolve_at(PyObject *__pyx_v_df, struct __pyx_t_7questdb_7ingress_col_t_arr *__pyx_v_cols, PyObject *__pyx_v_at, size_t __pyx_v_col_count, int64_t *__pyx_v_at_value_out) { size_t __pyx_v_col_index; PyObject *__pyx_v_dtype = 0; struct __pyx_obj_7questdb_7ingress_TimestampNanos *__pyx_v_at_nanos = 0; struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col; Py_ssize_t __pyx_r; /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_14); __Pyx_AddTraceback("questdb.ingress._dataframe_resolve_at", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -2; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dtype); __Pyx_XDECREF((PyObject *)__pyx_v_at_nanos); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0749: object df,
0750: col_t_arr* cols,
0751: object at,
0752: size_t col_count,
0753: int64_t* at_value_out) except -2:
0754: cdef size_t col_index
0755: cdef object dtype
0756: cdef PandasCol pandas_col
0757: cdef TimestampNanos at_nanos
+0758: if at is None:
__pyx_t_1 = (__pyx_v_at == Py_None); if (__pyx_t_1) { /* … */ }
+0759: at_value_out[0] = _AT_IS_SERVER_NOW
(__pyx_v_at_value_out[0]) = __pyx_v_7questdb_7ingress__AT_IS_SERVER_NOW;
+0760: return -1
__pyx_r = -1L; goto __pyx_L0;
+0761: elif isinstance(at, TimestampNanos):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_at, __pyx_mstate_global->__pyx_ptype_7questdb_7ingress_TimestampNanos);
if (__pyx_t_1) {
/* … */
}
+0762: at_nanos = at
__pyx_t_2 = __pyx_v_at; __Pyx_INCREF(__pyx_t_2); if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_7questdb_7ingress_TimestampNanos))))) __PYX_ERR(1, 762, __pyx_L1_error) __pyx_v_at_nanos = ((struct __pyx_obj_7questdb_7ingress_TimestampNanos *)__pyx_t_2); __pyx_t_2 = 0;
+0763: at_value_out[0] = at_nanos._value
__pyx_t_3 = __pyx_v_at_nanos->_value; (__pyx_v_at_value_out[0]) = __pyx_t_3;
+0764: return -1
__pyx_r = -1L; goto __pyx_L0;
+0765: elif isinstance(at, datetime):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_at, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_datetime);
if (__pyx_t_1) {
/* … */
}
+0766: if at.timestamp() < 0:
__pyx_t_4 = __pyx_v_at; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_timestamp, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_mstate_global->__pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 766, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 766, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_t_1)) { /* … */ }
+0767: raise ValueError(
__pyx_t_2 = NULL; __Pyx_INCREF(__pyx_builtin_ValueError); __pyx_t_6 = __pyx_builtin_ValueError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Bad_argument_at_Cannot_use_a_dat}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 767, __pyx_L1_error)
0768: 'Bad argument `at`: Cannot use a datetime before the ' +
0769: 'Unix epoch (1970-01-01 00:00:00).')
+0770: at_value_out[0] = datetime_to_nanos(at)
if (!(likely(((__pyx_v_at) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_at, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_datetime))))) __PYX_ERR(1, 770, __pyx_L1_error) __pyx_t_3 = __pyx_f_7questdb_7ingress_datetime_to_nanos(((PyDateTime_DateTime *)__pyx_v_at)); if (unlikely(__pyx_t_3 == ((int64_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 770, __pyx_L1_error) (__pyx_v_at_value_out[0]) = __pyx_t_3;
+0771: return -1
__pyx_r = -1L; goto __pyx_L0;
+0772: elif isinstance(at, str):
__pyx_t_1 = PyUnicode_Check(__pyx_v_at);
if (__pyx_t_1) {
/* … */
goto __pyx_L3;
}
+0773: _dataframe_get_loc(df, at, 'at', &col_index)
if (!(likely(PyUnicode_CheckExact(__pyx_v_at))||((__pyx_v_at) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_v_at))) __PYX_ERR(1, 773, __pyx_L1_error) __pyx_t_7 = __pyx_f_7questdb_7ingress__dataframe_get_loc(__pyx_v_df, ((PyObject*)__pyx_v_at), __pyx_mstate_global->__pyx_n_u_at, (&__pyx_v_col_index)); if (unlikely(__pyx_t_7 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 773, __pyx_L1_error)
+0774: elif isinstance(at, int):
__pyx_t_1 = PyLong_Check(__pyx_v_at);
if (likely(__pyx_t_1)) {
/* … */
goto __pyx_L3;
}
+0775: _bind_col_index('at', at, col_count, &col_index)
__pyx_t_8 = __Pyx_PyLong_As_int(__pyx_v_at); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 775, __pyx_L1_error) __pyx_t_7 = __pyx_f_7questdb_7ingress__bind_col_index(__pyx_mstate_global->__pyx_n_u_at, __pyx_t_8, __pyx_v_col_count, (&__pyx_v_col_index)); if (unlikely(__pyx_t_7 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 775, __pyx_L1_error)
0776: else:
+0777: raise TypeError(
/*else*/ {
__pyx_t_6 = NULL;
__Pyx_INCREF(__pyx_builtin_TypeError);
__pyx_t_2 = __pyx_builtin_TypeError;
+0778: f'Bad argument `at`: Unsupported type {_fqn(type(at))}. ' +
__pyx_t_9 = __pyx_f_7questdb_7ingress__fqn(((PyTypeObject*)((PyObject *)Py_TYPE(__pyx_v_at)))); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyUnicode_Unicode(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_Bad_argument_at_Unsupported_type; __pyx_t_11[1] = __pyx_t_10; __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u_Must_be_one_of_None_TimestampNa; __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_11, 3, 36 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 86, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10)); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_9}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 777, __pyx_L1_error) } __pyx_L3:;
0779: 'Must be one of: None, TimestampNanos, datetime, ' +
0780: 'int (column index), str (colum name)')
+0781: dtype = df.dtypes.iloc[col_index]
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_dtypes); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_iloc); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_col_index, size_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_dtype = __pyx_t_4; __pyx_t_4 = 0;
+0782: if _dataframe_is_supported_datetime(dtype):
__pyx_t_4 = __pyx_f_7questdb_7ingress__dataframe_is_supported_datetime(__pyx_v_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 782, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(__pyx_t_1)) { /* … */ }
+0783: at_value_out[0] = _AT_IS_SET_BY_COLUMN
(__pyx_v_at_value_out[0]) = __pyx_v_7questdb_7ingress__AT_IS_SET_BY_COLUMN;
+0784: col = &cols.d[col_index]
__pyx_v_col = (&(__pyx_v_cols->d[__pyx_v_col_index]));
+0785: col.setup.meta_target = meta_target_t.meta_target_at
__pyx_v_col->setup->meta_target = __pyx_e_7questdb_7ingress_meta_target_at;
+0786: return col_index
__pyx_r = __pyx_v_col_index; goto __pyx_L0;
0787: else:
+0788: raise TypeError(
/*else*/ {
__pyx_t_2 = NULL;
__Pyx_INCREF(__pyx_builtin_TypeError);
__pyx_t_9 = __pyx_builtin_TypeError;
+0789: f'Bad argument `at`: Bad dtype `{dtype}` ' +
__pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_dtype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); /* … */ __pyx_t_14 = __Pyx_PyUnicode_Join(__pyx_t_13, 7, 30 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 10 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 19 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12) + 8, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_14}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 788, __pyx_L1_error) }
+0790: f'for the {at!r} column: Must be a {_SUPPORTED_DATETIMES} column.')
__pyx_t_10 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_at), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = __Pyx_PyUnicode_Unicode(__pyx_v_7questdb_7ingress__SUPPORTED_DATETIMES); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u_Bad_argument_at_Bad_dtype; __pyx_t_13[1] = __pyx_t_6; __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u_for_the_2; __pyx_t_13[3] = __pyx_t_10; __pyx_t_13[4] = __pyx_mstate_global->__pyx_kp_u_column_Must_be_a; __pyx_t_13[5] = __pyx_t_12; __pyx_t_13[6] = __pyx_mstate_global->__pyx_kp_u_column;
0791:
0792:
+0793: cdef void_int _dataframe_alloc_chunks(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_alloc_chunks(size_t __pyx_v_n_chunks, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) {
__pyx_t_7questdb_7ingress_void_int __pyx_r;
/* … */
/* function exit code */
__pyx_r = 0;
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_AddTraceback("questdb.ingress._dataframe_alloc_chunks", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
return __pyx_r;
}
0794: size_t n_chunks, col_t* col) except -1:
+0795: col.setup.chunks.n_chunks = n_chunks
__pyx_v_col->setup->chunks.n_chunks = __pyx_v_n_chunks;
+0796: col.setup.chunks.chunks = <ArrowArray*>calloc(
__pyx_v_col->setup->chunks.chunks = ((struct ArrowArray *)calloc((__pyx_v_col->setup->chunks.n_chunks + 1), (sizeof(struct ArrowArray))));
0797: col.setup.chunks.n_chunks + 1, # See `_dataframe_col_advance` on why +1.
0798: sizeof(ArrowArray))
+0799: if col.setup.chunks.chunks == NULL:
__pyx_t_1 = (__pyx_v_col->setup->chunks.chunks == NULL); if (unlikely(__pyx_t_1)) { /* … */ }
+0800: raise MemoryError()
PyErr_NoMemory(); __PYX_ERR(1, 800, __pyx_L1_error)
0801:
0802:
+0803: cdef void _dataframe_free_mapped_arrow(ArrowArray* arr) noexcept nogil:
static void __pyx_f_7questdb_7ingress__dataframe_free_mapped_arrow(struct ArrowArray *__pyx_v_arr) { /* … */ /* function exit code */ }
+0804: free(arr.buffers)
free(__pyx_v_arr->buffers);
+0805: arr.buffers = NULL
__pyx_v_arr->buffers = NULL;
+0806: arr.release = NULL
__pyx_v_arr->release = NULL;
0807:
0808:
+0809: cdef void_int _dataframe_series_as_pybuf(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(struct __pyx_obj_7questdb_7ingress_PandasCol *__pyx_v_pandas_col, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, struct __pyx_opt_args_7questdb_7ingress__dataframe_series_as_pybuf *__pyx_optional_args) { /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_15); __Pyx_XDECREF(__pyx_t_16); __Pyx_XDECREF(__pyx_t_18); __Pyx_XDECREF(__pyx_t_27); __Pyx_AddTraceback("questdb.ingress._dataframe_series_as_pybuf", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_nparr); __Pyx_XDECREF(__pyx_v_ve); __Pyx_XDECREF(__pyx_v_be); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_opt_args_7questdb_7ingress__dataframe_series_as_pybuf { int __pyx_n; PyObject *fallback_dtype; };
+0810: PandasCol pandas_col, col_t* col, str fallback_dtype=None) except -1:
PyObject *__pyx_v_fallback_dtype = ((PyObject*)Py_None); PyObject *__pyx_v_nparr = 0; struct ArrowArray *__pyx_v_mapped; CYTHON_UNUSED int __pyx_v_get_buf_ret; PyObject *__pyx_v_ve = NULL; PyObject *__pyx_v_be = NULL; __pyx_t_7questdb_7ingress_void_int __pyx_r; if (__pyx_optional_args) { if (__pyx_optional_args->__pyx_n > 0) { __pyx_v_fallback_dtype = __pyx_optional_args->fallback_dtype; } }
+0811: cdef object nparr = pandas_col.series.to_numpy(dtype=fallback_dtype)
__pyx_t_2 = __pyx_v_pandas_col->series; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, NULL}; __pyx_t_4 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_v_fallback_dtype, __pyx_t_4, __pyx_callargs+1, 0) < 0) __PYX_ERR(1, 811, __pyx_L1_error) __pyx_t_1 = __Pyx_Object_VectorcallMethod_CallFromBuilder(__pyx_mstate_global->__pyx_n_u_to_numpy, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_nparr = __pyx_t_1; __pyx_t_1 = 0;
0812: cdef ArrowArray* mapped
0813: cdef int get_buf_ret
+0814: if not PyObject_CheckBuffer(nparr):
__pyx_t_5 = (!PyObject_CheckBuffer(__pyx_v_nparr));
if (unlikely(__pyx_t_5)) {
/* … */
}
+0815: raise TypeError(
__pyx_t_4 = NULL;
__Pyx_INCREF(__pyx_builtin_TypeError);
__pyx_t_2 = __pyx_builtin_TypeError;
+0816: f'Bad column {pandas_col.name!r}: Expected a buffer, got ' +
__pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_pandas_col->name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); /* … */ __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_10, 7, 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 25 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9)); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_8}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 815, __pyx_L1_error)
+0817: f'{pandas_col.series!r} ({_fqn(type(pandas_col.series))})')
__pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_pandas_col->series), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __pyx_f_7questdb_7ingress__fqn(((PyTypeObject*)((PyObject *)Py_TYPE(__pyx_v_pandas_col->series)))); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_PyUnicode_Unicode(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10[0] = __pyx_mstate_global->__pyx_kp_u_Bad_column; __pyx_t_10[1] = __pyx_t_6; __pyx_t_10[2] = __pyx_mstate_global->__pyx_kp_u_Expected_a_buffer_got; __pyx_t_10[3] = __pyx_t_7; __pyx_t_10[4] = __pyx_mstate_global->__pyx_kp_u__6; __pyx_t_10[5] = __pyx_t_9; __pyx_t_10[6] = __pyx_mstate_global->__pyx_kp_u__4;
+0818: try:
{ /*try:*/ { /* … */ } __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* … */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); goto __pyx_L1_error; __pyx_L9_try_end:; }
0819: # Note! We don't need to support numpy strides since Pandas doesn't.
0820: # Also note that this guarantees a 1D buffer.
+0821: get_buf_ret = PyObject_GetBuffer(nparr, &col.setup.pybuf, PyBUF_SIMPLE)
__pyx_t_14 = PyObject_GetBuffer(__pyx_v_nparr, (&__pyx_v_col->setup->pybuf), PyBUF_SIMPLE); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(1, 821, __pyx_L4_error) __pyx_v_get_buf_ret = __pyx_t_14;
+0822: except ValueError as ve:
__pyx_t_14 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError); if (__pyx_t_14) { __Pyx_AddTraceback("questdb.ingress._dataframe_series_as_pybuf", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_8) < 0) __PYX_ERR(1, 822, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_v_ve = __pyx_t_2; /*try:*/ { /* … */ /*finally:*/ { __pyx_L15_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_ExceptionSwap(&__pyx_t_24, &__pyx_t_25, &__pyx_t_26); if ( unlikely(__Pyx_GetException(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23) < 0)) __Pyx_ErrFetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __pyx_t_14 = __pyx_lineno; __pyx_t_19 = __pyx_clineno; __pyx_t_20 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ve); __pyx_v_ve = 0; } __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_25, __pyx_t_26); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ErrRestore(__pyx_t_21, __pyx_t_22, __pyx_t_23); __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_19; __pyx_filename = __pyx_t_20; goto __pyx_L6_except_error; } } }
+0823: raise IngressError(
__pyx_t_9 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 823, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_7);
+0824: IngressErrorCode.BadDataFrame,
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 824, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_BadDataFrame); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 824, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0825: f'Bad column {pandas_col.name!r}: {ve}') from ve
__pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_pandas_col->name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 825, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_16 = __Pyx_PyObject_FormatSimple(__pyx_v_ve, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 825, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17[0] = __pyx_mstate_global->__pyx_kp_u_Bad_column; __pyx_t_17[1] = __pyx_t_6; __pyx_t_17[2] = __pyx_mstate_global->__pyx_kp_u__7; __pyx_t_17[3] = __pyx_t_16; __pyx_t_18 = __Pyx_PyUnicode_Join(__pyx_t_17, 4, 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_16), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_16)); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 825, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7); assert(__pyx_t_9); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_9, __pyx_t_15, __pyx_t_18}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 823, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, __pyx_v_ve); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 823, __pyx_L15_error) }
+0826: except BufferError as be:
__pyx_t_19 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BufferError); if (__pyx_t_19) { __Pyx_AddTraceback("questdb.ingress._dataframe_series_as_pybuf", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_2, &__pyx_t_1) < 0) __PYX_ERR(1, 826, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __pyx_v_be = __pyx_t_2; /*try:*/ { /* … */ /*finally:*/ { __pyx_L26_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_ExceptionSwap(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if ( unlikely(__Pyx_GetException(&__pyx_t_26, &__pyx_t_25, &__pyx_t_24) < 0)) __Pyx_ErrFetch(&__pyx_t_26, &__pyx_t_25, &__pyx_t_24); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_21); __pyx_t_19 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_28 = __pyx_filename; { __Pyx_DECREF(__pyx_v_be); __pyx_v_be = 0; } __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ErrRestore(__pyx_t_26, __pyx_t_25, __pyx_t_24); __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_lineno = __pyx_t_19; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_28; goto __pyx_L6_except_error; } } } goto __pyx_L6_except_error;
+0827: raise IngressError(
__pyx_t_7 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 827, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_18);
+0828: IngressErrorCode.BadDataFrame,
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 828, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_BadDataFrame); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 828, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+0829: f'Bad column {pandas_col.name!r}: Expected a buffer, got ' +
__pyx_t_15 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_pandas_col->name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 829, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_15); /* … */ __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_10, 7, 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15) + 25 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_16) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_27) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_15) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_16) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_27)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 829, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_18))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_18); assert(__pyx_t_7); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_18); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_18, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_9, __pyx_t_6}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_18, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 827, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_4); }
+0830: f'{pandas_col.series!r} ({_fqn(type(pandas_col.series))})') from be
__pyx_t_16 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_pandas_col->series), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 830, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_6 = __pyx_f_7questdb_7ingress__fqn(((PyTypeObject*)((PyObject *)Py_TYPE(__pyx_v_pandas_col->series)))); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 830, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_27 = __Pyx_PyUnicode_Unicode(__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(1, 830, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_10[0] = __pyx_mstate_global->__pyx_kp_u_Bad_column; __pyx_t_10[1] = __pyx_t_15; __pyx_t_10[2] = __pyx_mstate_global->__pyx_kp_u_Expected_a_buffer_got; __pyx_t_10[3] = __pyx_t_16; __pyx_t_10[4] = __pyx_mstate_global->__pyx_kp_u__6; __pyx_t_10[5] = __pyx_t_27; __pyx_t_10[6] = __pyx_mstate_global->__pyx_kp_u__4; /* … */ __Pyx_Raise(__pyx_t_4, 0, 0, __pyx_v_be); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 827, __pyx_L26_error) }
+0831: _dataframe_alloc_chunks(1, col)
__pyx_t_29 = __pyx_f_7questdb_7ingress__dataframe_alloc_chunks(1, __pyx_v_col); if (unlikely(__pyx_t_29 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 831, __pyx_L1_error)
+0832: mapped = &col.setup.chunks.chunks[0]
__pyx_v_mapped = (&(__pyx_v_col->setup->chunks.chunks[0]));
0833:
0834: # Total number of elements.
+0835: mapped.length = (
__pyx_v_mapped->length = __Pyx_div_int64_t(((int64_t)__pyx_v_col->setup->pybuf.len), ((int64_t)__pyx_v_col->setup->pybuf.itemsize), 0);
+0836: <int64_t>col.setup.pybuf.len // <int64_t>col.setup.pybuf.itemsize)
if (unlikely(((int64_t)__pyx_v_col->setup->pybuf.itemsize) == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(1, 836, __pyx_L1_error) } else if (sizeof(int64_t) == sizeof(long) && (!(((int64_t)-1) > 0)) && unlikely(((int64_t)__pyx_v_col->setup->pybuf.itemsize) == (int64_t)-1) && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(((int64_t)__pyx_v_col->setup->pybuf.len)))) { PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); __PYX_ERR(1, 836, __pyx_L1_error) }
+0837: mapped.null_count = 0
__pyx_v_mapped->null_count = 0;
+0838: mapped.offset = 0
__pyx_v_mapped->offset = 0;
+0839: mapped.n_buffers = 2
__pyx_v_mapped->n_buffers = 2;
+0840: mapped.n_children = 0
__pyx_v_mapped->n_children = 0;
+0841: mapped.buffers = <const void**>calloc(2, sizeof(const void*))
__pyx_v_mapped->buffers = ((void const **)calloc(2, (sizeof(void const *))));
+0842: mapped.buffers[0] = NULL
(__pyx_v_mapped->buffers[0]) = NULL;
+0843: mapped.buffers[1] = <const void*>col.setup.pybuf.buf
(__pyx_v_mapped->buffers[1]) = ((void const *)__pyx_v_col->setup->pybuf.buf);
+0844: mapped.children = NULL
__pyx_v_mapped->children = NULL;
+0845: mapped.dictionary = NULL
__pyx_v_mapped->dictionary = NULL;
+0846: mapped.release = _dataframe_free_mapped_arrow # to cleanup allocated array.
__pyx_v_mapped->release = __pyx_f_7questdb_7ingress__dataframe_free_mapped_arrow;
0847:
+0848: cdef void_int _dataframe_series_as_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(struct __pyx_obj_7questdb_7ingress_PandasCol *__pyx_v_pandas_col, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { PyObject *__pyx_v_array = 0; PyObject *__pyx_v_chunks = 0; size_t __pyx_v_n_chunks; size_t __pyx_v_chunk_index; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("questdb.ingress._dataframe_series_as_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_array); __Pyx_XDECREF(__pyx_v_chunks); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0849: PandasCol pandas_col,
0850: col_t* col) except -1:
0851: cdef object array
0852: cdef list chunks
0853: cdef size_t n_chunks
0854: cdef size_t chunk_index
+0855: array = _PYARROW.Array.from_pandas(pandas_col.series)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PYARROW, __pyx_mstate_global->__pyx_n_u_Array); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_pandas_col->series}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_from_pandas, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_array = __pyx_t_1; __pyx_t_1 = 0;
+0856: if isinstance(array, _PYARROW.ChunkedArray):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PYARROW, __pyx_mstate_global->__pyx_n_u_ChunkedArray); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyObject_IsInstance(__pyx_v_array, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 856, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* … */ goto __pyx_L3; }
+0857: chunks = array.chunks
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_array, __pyx_mstate_global->__pyx_n_u_chunks); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(1, 857, __pyx_L1_error) __pyx_v_chunks = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
0858: else:
+0859: chunks = [array]
/*else*/ { __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_array); __Pyx_GIVEREF(__pyx_v_array); if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_array) != (0)) __PYX_ERR(1, 859, __pyx_L1_error); __pyx_v_chunks = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; } __pyx_L3:;
0860:
+0861: n_chunks = len(chunks)
if (unlikely(__pyx_v_chunks == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(1, 861, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_chunks); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(1, 861, __pyx_L1_error) __pyx_v_n_chunks = __pyx_t_6;
+0862: _dataframe_alloc_chunks(n_chunks, col)
__pyx_t_7 = __pyx_f_7questdb_7ingress__dataframe_alloc_chunks(__pyx_v_n_chunks, __pyx_v_col); if (unlikely(__pyx_t_7 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 862, __pyx_L1_error)
0863:
+0864: for chunk_index in range(n_chunks):
__pyx_t_4 = __pyx_v_n_chunks; __pyx_t_8 = __pyx_t_4; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_chunk_index = __pyx_t_9;
+0865: array = chunks[chunk_index]
if (unlikely(__pyx_v_chunks == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 865, __pyx_L1_error) } __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_chunks, __pyx_v_chunk_index, size_t, 0, __Pyx_PyLong_FromSize_t, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 865, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_array, __pyx_t_1); __pyx_t_1 = 0;
+0866: if chunk_index == 0:
__pyx_t_5 = (__pyx_v_chunk_index == 0); if (__pyx_t_5) { /* … */ goto __pyx_L6; }
+0867: chunks[chunk_index]._export_to_c(
if (unlikely(__pyx_v_chunks == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 867, __pyx_L1_error) } __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_chunks, __pyx_v_chunk_index, size_t, 0, __Pyx_PyLong_FromSize_t, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3);
+0868: <uintptr_t>&col.setup.chunks.chunks[chunk_index],
__pyx_t_10 = __Pyx_PyLong_FromSize_t(((uintptr_t)(&(__pyx_v_col->setup->chunks.chunks[__pyx_v_chunk_index])))); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10);
+0869: <uintptr_t>&col.setup.arrow_schema)
__pyx_t_11 = __Pyx_PyLong_FromSize_t(((uintptr_t)(&__pyx_v_col->setup->arrow_schema))); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = 0; { PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_10, __pyx_t_11}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_export_to_c, __pyx_callargs+__pyx_t_12, (3-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0870: else:
+0871: chunks[chunk_index]._export_to_c(
/*else*/ { if (unlikely(__pyx_v_chunks == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 871, __pyx_L1_error) } __pyx_t_11 = __Pyx_GetItemInt_List(__pyx_v_chunks, __pyx_v_chunk_index, size_t, 0, __Pyx_PyLong_FromSize_t, 1, 0, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_2 = __pyx_t_11; __Pyx_INCREF(__pyx_t_2);
+0872: <uintptr_t>&col.setup.chunks.chunks[chunk_index])
__pyx_t_10 = __Pyx_PyLong_FromSize_t(((uintptr_t)(&(__pyx_v_col->setup->chunks.chunks[__pyx_v_chunk_index])))); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_10}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_export_to_c, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L6:; }
0873:
0874:
+0875: cdef const char* _ARROW_FMT_INT8 = "c"
__pyx_v_7questdb_7ingress__ARROW_FMT_INT8 = ((char const *)"c");
+0876: cdef const char* _ARROW_FMT_INT16 = "s"
__pyx_v_7questdb_7ingress__ARROW_FMT_INT16 = ((char const *)"s");
+0877: cdef const char* _ARROW_FMT_INT32 = "i"
__pyx_v_7questdb_7ingress__ARROW_FMT_INT32 = ((char const *)"i");
+0878: cdef const char* _ARROW_FMT_UTF8_STRING = 'u'
__pyx_v_7questdb_7ingress__ARROW_FMT_UTF8_STRING = ((char const *)"u");
+0879: cdef const char* _ARROW_FMT_LRG_UTF8_STRING = 'U'
__pyx_v_7questdb_7ingress__ARROW_FMT_LRG_UTF8_STRING = ((char const *)"U");
0880:
0881:
+0882: cdef void_int _dataframe_category_series_as_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_category_series_as_arrow(struct __pyx_obj_7questdb_7ingress_PandasCol *__pyx_v_pandas_col, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { char const *__pyx_v_format; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("questdb.ingress._dataframe_category_series_as_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
0883: PandasCol pandas_col, col_t* col) except -1:
0884: cdef const char* format
+0885: _dataframe_series_as_arrow(pandas_col, col)
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_1 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 885, __pyx_L1_error)
+0886: format = col.setup.arrow_schema.format
__pyx_t_2 = __pyx_v_col->setup->arrow_schema.format; __pyx_v_format = __pyx_t_2;
+0887: if strncmp(format, _ARROW_FMT_INT8, 1) == 0:
__pyx_t_3 = (strncmp(__pyx_v_format, __pyx_v_7questdb_7ingress__ARROW_FMT_INT8, 1) == 0); if (__pyx_t_3) { /* … */ goto __pyx_L3; }
+0888: col.setup.source = col_source_t.col_source_str_i8_cat
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_str_i8_cat;
+0889: elif strncmp(format, _ARROW_FMT_INT16, 1) == 0:
__pyx_t_3 = (strncmp(__pyx_v_format, __pyx_v_7questdb_7ingress__ARROW_FMT_INT16, 1) == 0); if (__pyx_t_3) { /* … */ goto __pyx_L3; }
+0890: col.setup.source = col_source_t.col_source_str_i16_cat
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_str_i16_cat;
+0891: elif strncmp(format, _ARROW_FMT_INT32, 1) == 0:
__pyx_t_3 = (strncmp(__pyx_v_format, __pyx_v_7questdb_7ingress__ARROW_FMT_INT32, 1) == 0); if (likely(__pyx_t_3)) { /* … */ goto __pyx_L3; }
+0892: col.setup.source = col_source_t.col_source_str_i32_cat
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_str_i32_cat;
0893: else:
+0894: raise IngressError(
/*else*/ { __pyx_t_5 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6);
+0895: IngressErrorCode.BadDataFrame,
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_BadDataFrame); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0896: f'Bad column {pandas_col.name!r}: ' +
__pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_pandas_col->name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); /* … */ __pyx_t_10 = __Pyx_PyUnicode_Join(__pyx_t_11, 5, 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 45 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9)); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_12 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); assert(__pyx_t_5); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); __pyx_t_12 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_10}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_12, (3-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 894, __pyx_L1_error) } __pyx_L3:;
0897: 'Unsupported arrow category index type. ' +
+0898: f'Got {(<bytes>format).decode("utf-8")!r}.')
__pyx_t_9 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (unlikely(__pyx_t_9 == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode"); __PYX_ERR(1, 898, __pyx_L1_error) } __pyx_t_10 = __Pyx_decode_bytes(((PyObject*)__pyx_t_9), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_10), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_Bad_column; __pyx_t_11[1] = __pyx_t_7; __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u_Unsupported_arrow_category_inde; __pyx_t_11[3] = __pyx_t_9; __pyx_t_11[4] = __pyx_mstate_global->__pyx_kp_u_;
0899:
+0900: format = col.setup.arrow_schema.dictionary.format
__pyx_t_2 = __pyx_v_col->setup->arrow_schema.dictionary->format; __pyx_v_format = __pyx_t_2;
+0901: if (strncmp(format, _ARROW_FMT_UTF8_STRING, 1) != 0):
__pyx_t_3 = (strncmp(__pyx_v_format, __pyx_v_7questdb_7ingress__ARROW_FMT_UTF8_STRING, 1) != 0); if (unlikely(__pyx_t_3)) { /* … */ }
+0902: raise IngressError(
__pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10);
+0903: IngressErrorCode.BadDataFrame,
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_BadDataFrame); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0904: f'Bad column {pandas_col.name!r}: ' +
__pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_pandas_col->name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); /* … */ __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_11, 5, 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 52 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7)); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_12 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_10); assert(__pyx_t_6); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); __pyx_t_12 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_9}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+__pyx_t_12, (3-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 902, __pyx_L1_error)
0905: 'Expected a category of strings, ' +
+0906: f'got a category of {pandas_col.series.dtype.categories.dtype}.')
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_pandas_col->series, __pyx_mstate_global->__pyx_n_u_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_categories); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_t_9, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_Bad_column; __pyx_t_11[1] = __pyx_t_8; __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u_Expected_a_category_of_strings; __pyx_t_11[3] = __pyx_t_7; __pyx_t_11[4] = __pyx_mstate_global->__pyx_kp_u_;
0907:
0908:
+0909: cdef inline bint _dataframe_is_float_nan(PyObject* obj) noexcept:
static CYTHON_INLINE int __pyx_f_7questdb_7ingress__dataframe_is_float_nan(PyObject *__pyx_v_obj) { int __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
+0910: return PyFloat_CheckExact(obj) and isnan(PyFloat_AS_DOUBLE(obj))
__pyx_t_2 = PyFloat_CheckExact(__pyx_v_obj); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L3_bool_binop_done; } __pyx_t_2 = isnan(PyFloat_AS_DOUBLE(__pyx_v_obj)); __pyx_t_1 = __pyx_t_2; __pyx_L3_bool_binop_done:; __pyx_r = __pyx_t_1; goto __pyx_L0;
0911:
0912:
+0913: cdef inline bint _dataframe_is_null_pyobj(PyObject* obj) noexcept:
static CYTHON_INLINE int __pyx_f_7questdb_7ingress__dataframe_is_null_pyobj(PyObject *__pyx_v_obj) { int __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
0914: return (
+0915: (obj == Py_None) or
__pyx_t_2 = (__pyx_v_obj == Py_None); if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L3_bool_binop_done; }
+0916: (obj == <PyObject*>_PANDAS_NA) or
__pyx_t_2 = (__pyx_v_obj == ((PyObject *)__pyx_v_7questdb_7ingress__PANDAS_NA)); if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L3_bool_binop_done; }
+0917: _dataframe_is_float_nan(obj))
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_is_float_nan(__pyx_v_obj); __pyx_t_1 = __pyx_t_2; __pyx_L3_bool_binop_done:; __pyx_r = __pyx_t_1; goto __pyx_L0;
0918:
0919: # noinspection PyUnreachableCode
+0920: cdef void_int _dataframe_series_sniff_pyobj(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_series_sniff_pyobj(struct __pyx_obj_7questdb_7ingress_PandasCol *__pyx_v_pandas_col, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { size_t __pyx_v_el_index; size_t __pyx_v_n_elements; PyObject **__pyx_v_obj_arr; PyObject *__pyx_v_obj; PyArrayObject *__pyx_v_arr; npy_int __pyx_v_arr_type; PyArray_Descr *__pyx_v_arr_descr = 0; PyObject *__pyx_v_arr_type_name = 0; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_15); __Pyx_AddTraceback("questdb.ingress._dataframe_series_sniff_pyobj", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_arr_descr); __Pyx_XDECREF(__pyx_v_arr_type_name); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0921: PandasCol pandas_col, col_t* col) except -1:
0922: """
0923: Deduct the type of the object column.
0924: Object columns can contain pretty much anything, but they usually don't.
0925: We make an educated guess by finding the first non-null value in the column.
0926: """
0927: # To access elements.
0928: cdef size_t el_index
+0929: cdef size_t n_elements = len(pandas_col.series)
__pyx_t_1 = __pyx_v_pandas_col->series; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 929, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_n_elements = __pyx_t_2;
0930: cdef PyObject** obj_arr
0931: cdef PyObject* obj
0932:
0933: # To access elements which are themselves arrays.
0934: cdef PyArrayObject* arr
0935: cdef npy_int arr_type
0936: cdef cnp.dtype arr_descr # A cython defn for `PyArray_Descr*`
0937: cdef str arr_type_name
0938:
+0939: _dataframe_series_as_pybuf(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(__pyx_v_pandas_col, __pyx_v_col, NULL); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 939, __pyx_L1_error)
+0940: obj_arr = <PyObject**>(col.setup.pybuf.buf)
__pyx_v_obj_arr = ((PyObject **)__pyx_v_col->setup->pybuf.buf);
+0941: for el_index in range(n_elements):
__pyx_t_4 = __pyx_v_n_elements; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_el_index = __pyx_t_6;
+0942: obj = obj_arr[el_index]
__pyx_v_obj = (__pyx_v_obj_arr[__pyx_v_el_index]);
+0943: if not _dataframe_is_null_pyobj(obj):
__pyx_t_7 = (!__pyx_f_7questdb_7ingress__dataframe_is_null_pyobj(__pyx_v_obj)); if (__pyx_t_7) { /* … */ } }
+0944: if PyBool_Check(obj):
__pyx_t_7 = PyBool_Check(__pyx_v_obj);
if (__pyx_t_7) {
/* … */
goto __pyx_L6;
}
+0945: col.setup.source = col_source_t.col_source_bool_pyobj
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_bool_pyobj;
+0946: elif PyLong_CheckExact(obj):
__pyx_t_7 = PyLong_CheckExact(__pyx_v_obj);
if (__pyx_t_7) {
/* … */
goto __pyx_L6;
}
+0947: col.setup.source = col_source_t.col_source_int_pyobj
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_int_pyobj;
+0948: elif PyFloat_CheckExact(obj):
__pyx_t_7 = PyFloat_CheckExact(__pyx_v_obj);
if (__pyx_t_7) {
/* … */
goto __pyx_L6;
}
+0949: col.setup.source = col_source_t.col_source_float_pyobj
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_float_pyobj;
+0950: elif PyUnicode_CheckExact(obj):
__pyx_t_7 = PyUnicode_CheckExact(__pyx_v_obj);
if (__pyx_t_7) {
/* … */
goto __pyx_L6;
}
+0951: col.setup.source = col_source_t.col_source_str_pyobj
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_str_pyobj;
+0952: elif PyArray_CheckExact(obj):
__pyx_t_7 = PyArray_CheckExact(__pyx_v_obj);
if (likely(__pyx_t_7)) {
/* … */
goto __pyx_L6;
}
+0953: arr = <PyArrayObject*>obj
__pyx_v_arr = ((PyArrayObject *)__pyx_v_obj);
+0954: arr_type = PyArray_TYPE(arr)
__pyx_v_arr_type = PyArray_TYPE(__pyx_v_arr);
+0955: if arr_type == NPY_DOUBLE:
__pyx_t_7 = (__pyx_v_arr_type == NPY_DOUBLE); if (__pyx_t_7) { /* … */ goto __pyx_L7; }
+0956: col.setup.source = col_source_t.col_source_arr_f64_numpyobj
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_arr_f64_numpyobj;
0957: else:
+0958: arr_type_name = '??unknown??'
/*else*/ {
__Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_unknown);
__pyx_v_arr_type_name = __pyx_mstate_global->__pyx_kp_u_unknown;
+0959: arr_descr = cnp.PyArray_DescrFromType(arr_type)
__pyx_t_1 = ((PyObject *)PyArray_DescrFromType(__pyx_v_arr_type)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_arr_descr = ((PyArray_Descr *)__pyx_t_1); __pyx_t_1 = 0;
+0960: if arr_descr is not None:
__pyx_t_7 = (((PyObject *)__pyx_v_arr_descr) != Py_None); if (__pyx_t_7) { /* … */ }
+0961: arr_type_name = arr_descr.name.decode('ascii')
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_arr_descr), __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = __pyx_t_9; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ascii}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_decode, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(1, 961, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_arr_type_name, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
+0962: raise IngressError(
__pyx_t_9 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8);
+0963: IngressErrorCode.BadDataFrame,
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_BadDataFrame); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0964: f'Bad column {pandas_col.name!r}: ' +
__pyx_t_11 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_pandas_col->name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); /* … */ __pyx_t_15 = __Pyx_PyUnicode_Join(__pyx_t_14, 5, 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11) + 84 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13)); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); assert(__pyx_t_9); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); __pyx_t_10 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_9, __pyx_t_12, __pyx_t_15}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 962, __pyx_L1_error) } __pyx_L7:;
0965: 'Unsupported object column containing a numpy array ' +
+0966: f'of an unsupported element type {arr_type_name}.')
__pyx_t_13 = __Pyx_PyUnicode_Unicode(__pyx_v_arr_type_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Bad_column; __pyx_t_14[1] = __pyx_t_11; __pyx_t_14[2] = __pyx_mstate_global->__pyx_kp_u_Unsupported_object_column_conta; __pyx_t_14[3] = __pyx_t_13; __pyx_t_14[4] = __pyx_mstate_global->__pyx_kp_u_;
+0967: elif PyBytes_CheckExact(obj):
__pyx_t_7 = PyBytes_CheckExact(__pyx_v_obj);
if (unlikely(__pyx_t_7)) {
/* … */
}
+0968: raise IngressError(
__pyx_t_8 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15);
+0969: IngressErrorCode.BadDataFrame,
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_BadDataFrame); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+0970: f'Bad column {pandas_col.name!r}: ' +
__pyx_t_12 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_pandas_col->name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_16[0] = __pyx_mstate_global->__pyx_kp_u_Bad_column; __pyx_t_16[1] = __pyx_t_12; __pyx_t_16[2] = __pyx_mstate_global->__pyx_kp_u_Unsupported_object_column_conta_2; __pyx_t_13 = __Pyx_PyUnicode_Join(__pyx_t_16, 3, 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12) + 140, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_15); assert(__pyx_t_8); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_15, __pyx__function); __pyx_t_10 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_9, __pyx_t_13}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_15, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 968, __pyx_L1_error)
0971: 'Unsupported object column containing bytes.' +
0972: 'If this is a string column, decode it first. ' +
0973: 'See: https://stackoverflow.com/questions/40389764/')
0974: else:
+0975: raise IngressError(
/*else*/ { __pyx_t_15 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13);
+0976: IngressErrorCode.BadDataFrame,
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_BadDataFrame); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0977: f'Bad column {pandas_col.name!r}: ' +
__pyx_t_9 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_pandas_col->name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_16[0] = __pyx_mstate_global->__pyx_kp_u_Bad_column; __pyx_t_16[1] = __pyx_t_9; __pyx_t_16[2] = __pyx_mstate_global->__pyx_kp_u_Unsupported_object_column_conta_3; __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_16, 3, 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 57, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9)); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0978: f'Unsupported object column containing an object of type ' +
__pyx_t_11 = __Pyx_PyUnicode_ConcatInPlaceSafe(__pyx_t_12, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0979: _fqn(type(<object>obj)) + '.')
__pyx_t_9 = __pyx_f_7questdb_7ingress__fqn(((PyTypeObject*)((PyObject *)Py_TYPE(((PyObject *)__pyx_v_obj))))); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); /* … */ __pyx_t_9 = __Pyx_PyUnicode_ConcatInPlace(__pyx_t_11, __pyx_mstate_global->__pyx_kp_u_); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_13); assert(__pyx_t_15); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_13, __pyx__function); __pyx_t_10 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_15, __pyx_t_8, __pyx_t_9}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 975, __pyx_L1_error) } __pyx_L6:;
+0980: return 0
__pyx_r = 0; goto __pyx_L0;
0981:
0982: # We haven't returned yet, so we've hit an object column that
0983: # exclusively has null values. We will just skip this column.
+0984: col.setup.source = col_source_t.col_source_nulls
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_nulls;
0985:
0986:
+0987: cdef void_int _dataframe_resolve_source_and_buffers(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_resolve_source_and_buffers(struct __pyx_obj_7questdb_7ingress_PandasCol *__pyx_v_pandas_col, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { PyObject *__pyx_v_dtype = 0; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_AddTraceback("questdb.ingress._dataframe_resolve_source_and_buffers", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dtype); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0988: PandasCol pandas_col, col_t* col) except -1:
+0989: cdef object dtype = pandas_col.dtype
__pyx_t_1 = __pyx_v_pandas_col->dtype;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_dtype = __pyx_t_1;
__pyx_t_1 = 0;
+0990: if isinstance(dtype, _NUMPY_BOOL):
__pyx_t_1 = __pyx_v_7questdb_7ingress__NUMPY_BOOL; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 990, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+0991: col.setup.source = col_source_t.col_source_bool_numpy
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_bool_numpy;
+0992: _dataframe_series_as_pybuf(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(__pyx_v_pandas_col, __pyx_v_col, NULL); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 992, __pyx_L1_error)
+0993: elif isinstance(dtype, _PANDAS.BooleanDtype):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_BooleanDtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 993, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+0994: col.setup.source = col_source_t.col_source_bool_arrow
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_bool_arrow;
+0995: _dataframe_series_as_arrow(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 995, __pyx_L1_error)
+0996: elif isinstance(dtype, _NUMPY_UINT8):
__pyx_t_1 = __pyx_v_7questdb_7ingress__NUMPY_UINT8; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 996, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+0997: col.setup.source = col_source_t.col_source_u8_numpy
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_u8_numpy;
+0998: _dataframe_series_as_pybuf(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(__pyx_v_pandas_col, __pyx_v_col, NULL); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 998, __pyx_L1_error)
+0999: elif isinstance(dtype, _NUMPY_INT8):
__pyx_t_1 = __pyx_v_7questdb_7ingress__NUMPY_INT8; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 999, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1000: col.setup.source = col_source_t.col_source_i8_numpy
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_i8_numpy;
+1001: _dataframe_series_as_pybuf(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(__pyx_v_pandas_col, __pyx_v_col, NULL); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1001, __pyx_L1_error)
+1002: elif isinstance(dtype, _NUMPY_UINT16):
__pyx_t_1 = __pyx_v_7questdb_7ingress__NUMPY_UINT16; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1002, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1003: col.setup.source = col_source_t.col_source_u16_numpy
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_u16_numpy;
+1004: _dataframe_series_as_pybuf(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(__pyx_v_pandas_col, __pyx_v_col, NULL); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1004, __pyx_L1_error)
+1005: elif isinstance(dtype, _NUMPY_INT16):
__pyx_t_1 = __pyx_v_7questdb_7ingress__NUMPY_INT16; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1005, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1006: col.setup.source = col_source_t.col_source_i16_numpy
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_i16_numpy;
+1007: _dataframe_series_as_pybuf(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(__pyx_v_pandas_col, __pyx_v_col, NULL); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1007, __pyx_L1_error)
+1008: elif isinstance(dtype, _NUMPY_UINT32):
__pyx_t_1 = __pyx_v_7questdb_7ingress__NUMPY_UINT32; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1008, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1009: col.setup.source = col_source_t.col_source_u32_numpy
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_u32_numpy;
+1010: _dataframe_series_as_pybuf(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(__pyx_v_pandas_col, __pyx_v_col, NULL); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1010, __pyx_L1_error)
+1011: elif isinstance(dtype, _NUMPY_INT32):
__pyx_t_1 = __pyx_v_7questdb_7ingress__NUMPY_INT32; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1011, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1012: col.setup.source = col_source_t.col_source_i32_numpy
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_i32_numpy;
+1013: _dataframe_series_as_pybuf(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(__pyx_v_pandas_col, __pyx_v_col, NULL); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1013, __pyx_L1_error)
+1014: elif isinstance(dtype, _NUMPY_UINT64):
__pyx_t_1 = __pyx_v_7questdb_7ingress__NUMPY_UINT64; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1014, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1015: col.setup.source = col_source_t.col_source_u64_numpy
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_u64_numpy;
+1016: _dataframe_series_as_pybuf(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(__pyx_v_pandas_col, __pyx_v_col, NULL); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1016, __pyx_L1_error)
+1017: elif isinstance(dtype, _NUMPY_INT64):
__pyx_t_1 = __pyx_v_7questdb_7ingress__NUMPY_INT64; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1017, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1018: col.setup.source = col_source_t.col_source_i64_numpy
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_i64_numpy;
+1019: _dataframe_series_as_pybuf(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(__pyx_v_pandas_col, __pyx_v_col, NULL); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1019, __pyx_L1_error)
+1020: elif isinstance(dtype, _PANDAS.UInt8Dtype):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_UInt8Dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1020, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1021: col.setup.source = col_source_t.col_source_u8_arrow
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_u8_arrow;
+1022: _dataframe_series_as_arrow(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1022, __pyx_L1_error)
+1023: elif isinstance(dtype, _PANDAS.Int8Dtype):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_Int8Dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1023, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1024: col.setup.source = col_source_t.col_source_i8_arrow
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_i8_arrow;
+1025: _dataframe_series_as_arrow(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1025, __pyx_L1_error)
+1026: elif isinstance(dtype, _PANDAS.UInt16Dtype):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_UInt16Dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1026, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1027: col.setup.source = col_source_t.col_source_u16_arrow
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_u16_arrow;
+1028: _dataframe_series_as_arrow(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1028, __pyx_L1_error)
+1029: elif isinstance(dtype, _PANDAS.Int16Dtype):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_Int16Dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1029, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1030: col.setup.source = col_source_t.col_source_i16_arrow
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_i16_arrow;
+1031: _dataframe_series_as_arrow(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1031, __pyx_L1_error)
+1032: elif isinstance(dtype, _PANDAS.UInt32Dtype):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_UInt32Dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1032, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1033: col.setup.source = col_source_t.col_source_u32_arrow
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_u32_arrow;
+1034: _dataframe_series_as_arrow(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1034, __pyx_L1_error)
+1035: elif isinstance(dtype, _PANDAS.Int32Dtype):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_Int32Dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1035, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1036: col.setup.source = col_source_t.col_source_i32_arrow
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_i32_arrow;
+1037: _dataframe_series_as_arrow(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1037, __pyx_L1_error)
+1038: elif isinstance(dtype, _PANDAS.UInt64Dtype):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_UInt64Dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1038, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1039: col.setup.source = col_source_t.col_source_u64_arrow
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_u64_arrow;
+1040: _dataframe_series_as_arrow(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1040, __pyx_L1_error)
+1041: elif isinstance(dtype, _PANDAS.Int64Dtype):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_Int64Dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1041, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1042: col.setup.source = col_source_t.col_source_i64_arrow
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_i64_arrow;
+1043: _dataframe_series_as_arrow(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1043, __pyx_L1_error)
+1044: elif isinstance(dtype, _NUMPY_FLOAT32):
__pyx_t_1 = __pyx_v_7questdb_7ingress__NUMPY_FLOAT32; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1044, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1045: col.setup.source = col_source_t.col_source_f32_numpy
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_f32_numpy;
+1046: _dataframe_series_as_pybuf(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(__pyx_v_pandas_col, __pyx_v_col, NULL); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1046, __pyx_L1_error)
+1047: elif isinstance(dtype, _NUMPY_FLOAT64):
__pyx_t_1 = __pyx_v_7questdb_7ingress__NUMPY_FLOAT64; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1047, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1048: col.setup.source = col_source_t.col_source_f64_numpy
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_f64_numpy;
+1049: _dataframe_series_as_pybuf(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(__pyx_v_pandas_col, __pyx_v_col, NULL); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1049, __pyx_L1_error)
+1050: elif isinstance(dtype, _PANDAS.Float32Dtype):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_Float32Dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1050, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1051: col.setup.source = col_source_t.col_source_f32_arrow
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_f32_arrow;
+1052: _dataframe_series_as_arrow(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1052, __pyx_L1_error)
+1053: elif isinstance(dtype, _PANDAS.Float64Dtype):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_Float64Dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1053, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1054: col.setup.source = col_source_t.col_source_f64_arrow
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_f64_arrow;
+1055: _dataframe_series_as_arrow(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1055, __pyx_L1_error)
+1056: elif isinstance(dtype, _PANDAS.StringDtype):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_StringDtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1056, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1057: if dtype.storage == 'pyarrow':
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_mstate_global->__pyx_n_u_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyarrow, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 1057, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L4; }
+1058: _dataframe_series_as_arrow(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1058, __pyx_L1_error)
+1059: if strncmp(col.setup.arrow_schema.format, _ARROW_FMT_UTF8_STRING, 1) == 0:
__pyx_t_2 = (strncmp(__pyx_v_col->setup->arrow_schema.format, __pyx_v_7questdb_7ingress__ARROW_FMT_UTF8_STRING, 1) == 0); if (__pyx_t_2) { /* … */ goto __pyx_L5; }
+1060: col.setup.source = col_source_t.col_source_str_utf8_arrow
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_str_utf8_arrow;
+1061: elif strncmp(col.setup.arrow_schema.format, _ARROW_FMT_LRG_UTF8_STRING, 1) == 0:
__pyx_t_2 = (strncmp(__pyx_v_col->setup->arrow_schema.format, __pyx_v_7questdb_7ingress__ARROW_FMT_LRG_UTF8_STRING, 1) == 0); if (likely(__pyx_t_2)) { /* … */ goto __pyx_L5; }
+1062: col.setup.source = col_source_t.col_source_str_lrg_utf8_arrow
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_str_lrg_utf8_arrow;
1063: else:
+1064: raise IngressError(
/*else*/ { __pyx_t_4 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+1065: IngressErrorCode.BadDataFrame,
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_BadDataFrame); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1066: f'Unknown string dtype storage: {dtype.storage} ' +
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_mstate_global->__pyx_n_u_storage); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_t_6, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_11 = __Pyx_PyUnicode_Join(__pyx_t_10, 7, 30 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 12 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 10 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 20, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9)); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+1067: f'for column {pandas_col.name} of dtype {dtype}. ' +
__pyx_t_6 = __Pyx_PyUnicode_Unicode(__pyx_v_pandas_col->name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_v_dtype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10[0] = __pyx_mstate_global->__pyx_kp_u_Unknown_string_dtype_storage; __pyx_t_10[1] = __pyx_t_8; __pyx_t_10[2] = __pyx_mstate_global->__pyx_kp_u_for_column; __pyx_t_10[3] = __pyx_t_6; __pyx_t_10[4] = __pyx_mstate_global->__pyx_kp_u_of_dtype; __pyx_t_10[5] = __pyx_t_9; __pyx_t_10[6] = __pyx_mstate_global->__pyx_kp_u_Format_specifier;
+1068: f'Format specifier: ' + repr(bytes(col.setup.arrow_schema.format).decode('latin-1')))
__pyx_t_6 = NULL; __Pyx_INCREF((PyObject *)(&PyBytes_Type)); __pyx_t_8 = ((PyObject *)(&PyBytes_Type)); __pyx_t_12 = __Pyx_PyBytes_FromString(__pyx_v_col->setup->arrow_schema.format); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_12}; __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __pyx_t_8 = __Pyx_decode_bytes(__pyx_t_9, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyObject_Repr(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyUnicode_ConcatInPlaceSafe(__pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_4); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_13 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_7, __pyx_t_8}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1064, __pyx_L1_error) } __pyx_L5:;
+1069: elif dtype.storage == 'python':
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_mstate_global->__pyx_n_u_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_python, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 1069, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_2)) { /* … */ goto __pyx_L4; }
+1070: col.setup.source = col_source_t.col_source_str_pyobj
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_str_pyobj;
+1071: _dataframe_series_as_pybuf(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(__pyx_v_pandas_col, __pyx_v_col, NULL); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1071, __pyx_L1_error)
1072: else:
+1073: raise IngressError(
/*else*/ { __pyx_t_5 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8);
+1074: IngressErrorCode.BadDataFrame,
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_BadDataFrame); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1075: f'Unknown string dtype storage: f{dtype.storage} ' +
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_mstate_global->__pyx_n_u_storage); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* … */ __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_10, 7, 31 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 12 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 10 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11)); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8); assert(__pyx_t_5); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); __pyx_t_13 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_4, __pyx_t_12}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1073, __pyx_L1_error) } __pyx_L4:;
+1076: f'for column {pandas_col.name} of dtype {dtype}.')
__pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_v_pandas_col->name); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = __Pyx_PyObject_FormatSimple(__pyx_v_dtype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_10[0] = __pyx_mstate_global->__pyx_kp_u_Unknown_string_dtype_storage_f; __pyx_t_10[1] = __pyx_t_9; __pyx_t_10[2] = __pyx_mstate_global->__pyx_kp_u_for_column; __pyx_t_10[3] = __pyx_t_7; __pyx_t_10[4] = __pyx_mstate_global->__pyx_kp_u_of_dtype; __pyx_t_10[5] = __pyx_t_11; __pyx_t_10[6] = __pyx_mstate_global->__pyx_kp_u_;
+1077: elif isinstance(dtype, _PANDAS.CategoricalDtype):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_CategoricalDtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1077, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1078: _dataframe_category_series_as_arrow(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_category_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1078, __pyx_L1_error)
+1079: elif (isinstance(dtype, _NUMPY_DATETIME64_NS) and
__pyx_t_1 = __pyx_v_7questdb_7ingress__NUMPY_DATETIME64_NS; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(1, 1079, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_14) { } else { __pyx_t_2 = __pyx_t_14; goto __pyx_L6_bool_binop_done; } /* … */ if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1080: _dataframe_is_supported_datetime(dtype)):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_is_supported_datetime(__pyx_v_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(1, 1080, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __pyx_t_14; __pyx_L6_bool_binop_done:;
+1081: col.setup.source = col_source_t.col_source_dt64ns_numpy
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_dt64ns_numpy;
+1082: _dataframe_series_as_pybuf(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_pybuf(__pyx_v_pandas_col, __pyx_v_col, NULL); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1082, __pyx_L1_error)
+1083: elif (isinstance(dtype, _PANDAS.DatetimeTZDtype) and
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7questdb_7ingress__PANDAS, __pyx_mstate_global->__pyx_n_u_DatetimeTZDtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_14 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(1, 1083, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_14) { } else { __pyx_t_2 = __pyx_t_14; goto __pyx_L8_bool_binop_done; } /* … */ if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+1084: _dataframe_is_supported_datetime(dtype)):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_is_supported_datetime(__pyx_v_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(1, 1084, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __pyx_t_14; __pyx_L8_bool_binop_done:;
+1085: col.setup.source = col_source_t.col_source_dt64ns_tz_arrow
__pyx_v_col->setup->source = __pyx_e_7questdb_7ingress_col_source_dt64ns_tz_arrow;
+1086: _dataframe_series_as_arrow(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_as_arrow(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1086, __pyx_L1_error)
+1087: elif isinstance(dtype, _NUMPY_OBJECT):
__pyx_t_1 = __pyx_v_7questdb_7ingress__NUMPY_OBJECT; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_dtype, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 1087, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_2)) { /* … */ goto __pyx_L3; }
+1088: _dataframe_series_sniff_pyobj(pandas_col, col)
__pyx_t_3 = __pyx_f_7questdb_7ingress__dataframe_series_sniff_pyobj(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_3 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1088, __pyx_L1_error)
1089: else:
+1090: raise IngressError(
/*else*/ { __pyx_t_8 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12);
+1091: IngressErrorCode.BadDataFrame,
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BadDataFrame); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1092: f'Unsupported dtype {dtype} for column {pandas_col.name!r}. ' +
__pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_dtype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_pandas_col->name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_15[0] = __pyx_mstate_global->__pyx_kp_u_Unsupported_dtype; __pyx_t_15[1] = __pyx_t_4; __pyx_t_15[2] = __pyx_mstate_global->__pyx_kp_u_for_column; __pyx_t_15[3] = __pyx_t_11; __pyx_t_15[4] = __pyx_mstate_global->__pyx_kp_u_Raise_an_issue_if_you_think_it; __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_15, 5, 18 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 12 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11) + 106, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_12); assert(__pyx_t_8); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_12, __pyx__function); __pyx_t_13 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1090, __pyx_L1_error) } __pyx_L3:;
1093: 'Raise an issue if you think it should be supported: ' +
1094: 'https://github.com/questdb/py-questdb-client/issues.')
1095:
1096:
+1097: cdef void_int _dataframe_resolve_target(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_resolve_target(struct __pyx_obj_7questdb_7ingress_PandasCol *__pyx_v_pandas_col, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { enum __pyx_t_7questdb_7ingress_col_target_t __pyx_v_target; PyObject *__pyx_v_target_sources = 0; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_12); __Pyx_AddTraceback("questdb.ingress._dataframe_resolve_target", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_target_sources); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1098: PandasCol pandas_col, col_t* col) except -1:
1099: cdef col_target_t target
1100: cdef set target_sources
+1101: if col.setup.meta_target in _DIRECT_META_TARGETS:
__pyx_t_1 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_meta_target_t(__pyx_v_col->setup->meta_target); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_7questdb_7ingress__DIRECT_META_TARGETS == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(1, 1101, __pyx_L1_error) } __pyx_t_2 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_7questdb_7ingress__DIRECT_META_TARGETS, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 1101, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+1102: col.setup.target = <col_target_t><int>col.setup.meta_target
__pyx_v_col->setup->target = ((enum __pyx_t_7questdb_7ingress_col_target_t)((int)__pyx_v_col->setup->meta_target));
+1103: return 0
__pyx_r = 0; goto __pyx_L0;
+1104: for target in _FIELD_TARGETS:
if (unlikely(__pyx_v_7questdb_7ingress__FIELD_TARGETS == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(1, 1104, __pyx_L1_error) } __pyx_t_1 = __pyx_v_7questdb_7ingress__FIELD_TARGETS; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0; for (;;) { { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 1104, __pyx_L1_error) #endif if (__pyx_t_3 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3)); #else __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_3); #endif ++__pyx_t_3; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = ((enum __pyx_t_7questdb_7ingress_col_target_t)__Pyx_PyLong_As_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1104, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_target = __pyx_t_5; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1105: target_sources = _TARGET_TO_SOURCES[target]
if (unlikely(__pyx_v_7questdb_7ingress__TARGET_TO_SOURCES == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 1105, __pyx_L1_error) } __pyx_t_4 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_v_target); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_7questdb_7ingress__TARGET_TO_SOURCES, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(PySet_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("set", __pyx_t_6))) __PYX_ERR(1, 1105, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_target_sources, ((PyObject*)__pyx_t_6)); __pyx_t_6 = 0;
+1106: if col.setup.source in target_sources:
__pyx_t_6 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_v_col->setup->source); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__pyx_v_target_sources == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(1, 1106, __pyx_L1_error) } __pyx_t_2 = (__Pyx_PySet_ContainsTF(__pyx_t_6, __pyx_v_target_sources, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 1106, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* … */ }
+1107: col.setup.target = target
__pyx_v_col->setup->target = __pyx_v_target;
+1108: return 0
__pyx_r = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
+1109: raise IngressError(
__pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+1110: IngressErrorCode.BadDataFrame,
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_BadDataFrame); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1111: f'Could not map column source type (code {col.setup.source} for ' +
__pyx_t_7 = __Pyx_PyUnicode_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_v_col->setup->source, 0, ' ', 'd'); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); /* … */ __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_11, 7, 39 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 12 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 18, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10)); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_6); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_13 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_8, __pyx_t_12}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1109, __pyx_L1_error)
+1112: f'column {pandas_col.name!r} ' +
__pyx_t_9 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_pandas_col->name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9);
+1113: f' ({pandas_col.dtype}) to any ILP type.')
__pyx_t_10 = __Pyx_PyObject_FormatSimple(__pyx_v_pandas_col->dtype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_Could_not_map_column_source_type; __pyx_t_11[1] = __pyx_t_7; __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u_for_column; __pyx_t_11[3] = __pyx_t_9; __pyx_t_11[4] = __pyx_mstate_global->__pyx_kp_u__8; __pyx_t_11[5] = __pyx_t_10; __pyx_t_11[6] = __pyx_mstate_global->__pyx_kp_u_to_any_ILP_type;
1114:
1115:
+1116: cdef void _dataframe_init_cursor(col_t* col) noexcept nogil:
static void __pyx_f_7questdb_7ingress__dataframe_init_cursor(struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { /* … */ /* function exit code */ }
+1117: col.cursor.chunk = col.setup.chunks.chunks
__pyx_t_1 = __pyx_v_col->setup->chunks.chunks; __pyx_v_col->cursor.chunk = __pyx_t_1;
+1118: col.cursor.chunk_index = 0
__pyx_v_col->cursor.chunk_index = 0;
+1119: col.cursor.offset = col.cursor.chunk.offset
__pyx_t_2 = __pyx_v_col->cursor.chunk->offset; __pyx_v_col->cursor.offset = __pyx_t_2;
1120:
1121:
+1122: cdef void_int _dataframe_resolve_cols(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_resolve_cols(CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, PyObject *__pyx_v_pandas_cols, struct __pyx_t_7questdb_7ingress_col_t_arr *__pyx_v_cols, int *__pyx_v_any_cols_need_gil_out) { size_t __pyx_v_index; size_t __pyx_v_len_dataframe_cols; struct __pyx_obj_7questdb_7ingress_PandasCol *__pyx_v_pandas_col = 0; struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("questdb.ingress._dataframe_resolve_cols", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_pandas_col); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1123: qdb_pystr_buf* b,
1124: list pandas_cols,
1125: col_t_arr* cols,
1126: bint* any_cols_need_gil_out) except -1:
1127: cdef size_t index
+1128: cdef size_t len_dataframe_cols = len(pandas_cols)
if (unlikely(__pyx_v_pandas_cols == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(1, 1128, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyList_GET_SIZE(__pyx_v_pandas_cols); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1128, __pyx_L1_error) __pyx_v_len_dataframe_cols = __pyx_t_1;
1129: cdef PandasCol pandas_col
1130: cdef col_t* col
+1131: any_cols_need_gil_out[0] = False
(__pyx_v_any_cols_need_gil_out[0]) = 0;
+1132: for index in range(len_dataframe_cols):
__pyx_t_2 = __pyx_v_len_dataframe_cols; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_index = __pyx_t_4;
+1133: pandas_col = pandas_cols[index]
if (unlikely(__pyx_v_pandas_cols == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 1133, __pyx_L1_error) } __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_pandas_cols, __pyx_v_index, size_t, 0, __Pyx_PyLong_FromSize_t, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_mstate_global->__pyx_ptype_7questdb_7ingress_PandasCol))))) __PYX_ERR(1, 1133, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_pandas_col, ((struct __pyx_obj_7questdb_7ingress_PandasCol *)__pyx_t_5)); __pyx_t_5 = 0;
+1134: col = &cols.d[index]
__pyx_v_col = (&(__pyx_v_cols->d[__pyx_v_index]));
1135:
1136: # The target is resolved in stages:
1137: # * We first assign all column `.meta_target`s to be fields.
1138: # * Then, depending on argument parsing some/none of the columns
1139: # obtain a meta-target of "table", "symbol" or "at".
1140: # * Finally, based on the source, any remaining "meta_target_field"
1141: # columns are converted to the appropriate target.
1142: # See: _dataframe_resolve_col_targets_and_dc(..).
+1143: col.setup.meta_target = meta_target_t.meta_target_field
__pyx_v_col->setup->meta_target = __pyx_e_7questdb_7ingress_meta_target_field;
1144:
1145: # We will sort columns later. The index will be used to achieve a stable
1146: # sort among columns with the same `.meta_target`.
+1147: col.setup.orig_index = index
__pyx_v_col->setup->orig_index = __pyx_v_index;
1148:
+1149: _dataframe_resolve_source_and_buffers(pandas_col, col)
__pyx_t_6 = __pyx_f_7questdb_7ingress__dataframe_resolve_source_and_buffers(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_6 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1149, __pyx_L1_error)
+1150: _dataframe_init_cursor(col)
__pyx_f_7questdb_7ingress__dataframe_init_cursor(__pyx_v_col);
+1151: if col_source_needs_gil(col.setup.source):
__pyx_t_7 = __pyx_f_7questdb_7ingress_col_source_needs_gil(__pyx_v_col->setup->source); if (__pyx_t_7) { /* … */ } }
+1152: any_cols_need_gil_out[0] = True
(__pyx_v_any_cols_need_gil_out[0]) = 1;
1153:
1154:
+1155: cdef void_int _dataframe_resolve_cols_target_name_and_dc(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_resolve_cols_target_name_and_dc(struct qdb_pystr_buf *__pyx_v_b, PyObject *__pyx_v_pandas_cols, struct __pyx_t_7questdb_7ingress_col_t_arr *__pyx_v_cols) { size_t __pyx_v_index; struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col; struct __pyx_obj_7questdb_7ingress_PandasCol *__pyx_v_pandas_col = 0; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_AddTraceback("questdb.ingress._dataframe_resolve_cols_target_name_and_dc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_pandas_col); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1156: qdb_pystr_buf* b,
1157: list pandas_cols,
1158: col_t_arr* cols) except -1:
1159: cdef size_t index
1160: cdef col_t* col
1161: cdef PandasCol pandas_col
+1162: for index in range(cols.size):
__pyx_t_1 = __pyx_v_cols->size; __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_index = __pyx_t_3;
+1163: col = &cols.d[index]
__pyx_v_col = (&(__pyx_v_cols->d[__pyx_v_index]));
+1164: pandas_col = pandas_cols[index]
if (unlikely(__pyx_v_pandas_cols == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 1164, __pyx_L1_error) } __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_pandas_cols, __pyx_v_index, size_t, 0, __Pyx_PyLong_FromSize_t, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_mstate_global->__pyx_ptype_7questdb_7ingress_PandasCol))))) __PYX_ERR(1, 1164, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_pandas_col, ((struct __pyx_obj_7questdb_7ingress_PandasCol *)__pyx_t_4)); __pyx_t_4 = 0;
+1165: _dataframe_resolve_target(pandas_col, col)
__pyx_t_5 = __pyx_f_7questdb_7ingress__dataframe_resolve_target(__pyx_v_pandas_col, __pyx_v_col); if (unlikely(__pyx_t_5 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1165, __pyx_L1_error)
+1166: if col.setup.source not in _TARGET_TO_SOURCES[col.setup.target]:
__pyx_t_4 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_source_t(__pyx_v_col->setup->source); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__pyx_v_7questdb_7ingress__TARGET_TO_SOURCES == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 1166, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_v_col->setup->target); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_7questdb_7ingress__TARGET_TO_SOURCES, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_t_4, __pyx_t_7, Py_NE)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(1, 1166, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_t_8)) { /* … */ }
+1167: raise ValueError(
__pyx_t_4 = NULL;
__Pyx_INCREF(__pyx_builtin_ValueError);
__pyx_t_6 = __pyx_builtin_ValueError;
+1168: f'Bad value: Column {pandas_col.name!r} ' +
__pyx_t_9 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_pandas_col->name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); /* … */ __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_13, 7, 18 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 24 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11) + 8, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11)); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_14 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_12}; __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __PYX_ERR(1, 1167, __pyx_L1_error)
+1169: f'({pandas_col.dtype}) is not ' +
__pyx_t_10 = __Pyx_PyObject_FormatSimple(__pyx_v_pandas_col->dtype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10);
+1170: f'supported as a {_TARGET_NAMES[col.setup.target]} column.')
if (unlikely(__pyx_v_7questdb_7ingress__TARGET_NAMES == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 1170, __pyx_L1_error) } __pyx_t_11 = __Pyx_PyLong_From_enum____pyx_t_7questdb_7ingress_col_target_t(__pyx_v_col->setup->target); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_7questdb_7ingress__TARGET_NAMES, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_FormatSimple(__pyx_t_12, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u_Bad_value_Column; __pyx_t_13[1] = __pyx_t_9; __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__6; __pyx_t_13[3] = __pyx_t_10; __pyx_t_13[4] = __pyx_mstate_global->__pyx_kp_u_is_not_supported_as_a; __pyx_t_13[5] = __pyx_t_11; __pyx_t_13[6] = __pyx_mstate_global->__pyx_kp_u_column;
+1171: col.dispatch_code = <col_dispatch_code_t>(
__pyx_v_col->dispatch_code = ((enum __pyx_t_7questdb_7ingress_col_dispatch_code_t)(((int)__pyx_v_col->setup->source) + ((int)__pyx_v_col->setup->target)));
1172: <int>col.setup.source + <int>col.setup.target)
1173:
1174: # Since we don't need to send the column names for 'table' and
1175: # 'at' columns, we don't need to validate and encode them as
1176: # column names. This allows unsupported names for these columns.
+1177: if ((col.setup.meta_target != meta_target_t.meta_target_table) and
switch (__pyx_v_col->setup->meta_target) { case __pyx_e_7questdb_7ingress_meta_target_table: case __pyx_e_7questdb_7ingress_meta_target_at: /* … */ __pyx_t_8 = 0; /* … */ break; default: __pyx_t_8 = 1; break; } if (__pyx_t_8) { /* … */ } }
1178: (col.setup.meta_target != meta_target_t.meta_target_at)):
+1179: str_to_column_name_copy(b, pandas_col.name, &col.name)
__pyx_t_7 = __pyx_v_pandas_col->name; __Pyx_INCREF(__pyx_t_7); __pyx_t_5 = __pyx_f_7questdb_7ingress_str_to_column_name_copy(__pyx_v_b, ((PyObject*)__pyx_t_7), (&__pyx_v_col->name)); if (unlikely(__pyx_t_5 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1179, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
1180:
1181:
+1182: cdef int _dataframe_compare_cols(const void* lhs, const void* rhs) noexcept nogil:
static int __pyx_f_7questdb_7ingress__dataframe_compare_cols(void const *__pyx_v_lhs, void const *__pyx_v_rhs) { struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_lhs_col; struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_rhs_col; int __pyx_v_source_diff; int __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
+1183: cdef col_t* lhs_col = <col_t*>lhs
__pyx_v_lhs_col = ((struct __pyx_t_7questdb_7ingress_col_t *)__pyx_v_lhs);
+1184: cdef col_t* rhs_col = <col_t*>rhs
__pyx_v_rhs_col = ((struct __pyx_t_7questdb_7ingress_col_t *)__pyx_v_rhs);
+1185: cdef int source_diff = lhs_col.setup.meta_target - rhs_col.setup.meta_target
__pyx_v_source_diff = (__pyx_v_lhs_col->setup->meta_target - __pyx_v_rhs_col->setup->meta_target);
+1186: if source_diff != 0:
__pyx_t_1 = (__pyx_v_source_diff != 0); if (__pyx_t_1) { /* … */ }
+1187: return source_diff
__pyx_r = __pyx_v_source_diff; goto __pyx_L0;
+1188: return <int>lhs_col.setup.orig_index - <int>rhs_col.setup.orig_index
__pyx_r = (((int)__pyx_v_lhs_col->setup->orig_index) - ((int)__pyx_v_rhs_col->setup->orig_index)); goto __pyx_L0;
1189:
1190: # noinspection PyUnreachableCode
+1191: cdef void_int _dataframe_resolve_args(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_resolve_args(PyObject *__pyx_v_df, PyObject *__pyx_v_table_name, PyObject *__pyx_v_table_name_col, PyObject *__pyx_v_symbols, PyObject *__pyx_v_at, struct qdb_pystr_buf *__pyx_v_b, size_t __pyx_v_col_count, struct line_sender_table_name *__pyx_v_c_table_name_out, int64_t *__pyx_v_at_value_out, struct __pyx_t_7questdb_7ingress_col_t_arr *__pyx_v_cols, int *__pyx_v_any_cols_need_gil_out) { Py_ssize_t __pyx_v_name_col; Py_ssize_t __pyx_v_at_col; PyObject *__pyx_v_pandas_cols = 0; PyObject *__pyx_7genexpr__pyx_v_index = NULL; PyObject *__pyx_7genexpr__pyx_v_name = NULL; PyObject *__pyx_7genexpr__pyx_v_series = NULL; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_AddTraceback("questdb.ingress._dataframe_resolve_args", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_pandas_cols); __Pyx_XDECREF(__pyx_7genexpr__pyx_v_index); __Pyx_XDECREF(__pyx_7genexpr__pyx_v_name); __Pyx_XDECREF(__pyx_7genexpr__pyx_v_series); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1192: object df,
1193: object table_name,
1194: object table_name_col,
1195: object symbols,
1196: object at,
1197: qdb_pystr_buf* b,
1198: size_t col_count,
1199: line_sender_table_name* c_table_name_out,
1200: int64_t* at_value_out,
1201: col_t_arr* cols,
1202: bint* any_cols_need_gil_out) except -1:
1203: cdef ssize_t name_col
1204: cdef ssize_t at_col
1205:
+1206: cdef list pandas_cols = [
{ /* enter inner scope */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1206, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __pyx_t_2 = __pyx_mstate_global->__pyx_int_0;
+1207: PandasCol(name, df.dtypes.iloc[index], series)
__pyx_t_7 = NULL; __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_7questdb_7ingress_PandasCol); __pyx_t_10 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7questdb_7ingress_PandasCol); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_dtypes); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1207, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_iloc); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1207, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_7genexpr__pyx_v_index); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1207, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = 1; { PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_7genexpr__pyx_v_name, __pyx_t_11, __pyx_7genexpr__pyx_v_series}; __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+__pyx_t_13, (4-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1207, __pyx_L5_error) __Pyx_GOTREF((PyObject *)__pyx_t_8); } if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_8))) __PYX_ERR(1, 1206, __pyx_L5_error) __Pyx_DECREF((PyObject *)__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_index); __pyx_7genexpr__pyx_v_index = 0; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_name); __pyx_7genexpr__pyx_v_name = 0; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_series); __pyx_7genexpr__pyx_v_series = 0; goto __pyx_L8_exit_scope; __pyx_L5_error:; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_index); __pyx_7genexpr__pyx_v_index = 0; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_name); __pyx_7genexpr__pyx_v_name = 0; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_series); __pyx_7genexpr__pyx_v_series = 0; goto __pyx_L1_error; __pyx_L8_exit_scope:; } /* exit inner scope */ __pyx_v_pandas_cols = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1208: for index, (name, series) in enumerate(df.items())]
__pyx_t_4 = 0; if (unlikely(__pyx_v_df == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(1, 1208, __pyx_L5_error) } __pyx_t_7 = __Pyx_dict_iterator(__pyx_v_df, 0, __pyx_mstate_global->__pyx_n_u_items, (&__pyx_t_5), (&__pyx_t_6)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1208, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = __pyx_t_7; __pyx_t_7 = 0; while (1) { __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_5, &__pyx_t_4, &__pyx_t_7, &__pyx_t_8, NULL, __pyx_t_6); if (unlikely(__pyx_t_9 == 0)) break; if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 1208, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_8); __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_name, __pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_series, __pyx_t_8); __pyx_t_8 = 0; __Pyx_INCREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_index, __pyx_t_2); __pyx_t_8 = __Pyx_PyLong_AddObjC(__pyx_t_2, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1208, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = __pyx_t_8; __pyx_t_8 = 0;
+1209: _dataframe_resolve_cols(b, pandas_cols, cols, any_cols_need_gil_out)
__pyx_t_14 = __pyx_f_7questdb_7ingress__dataframe_resolve_cols(__pyx_v_b, __pyx_v_pandas_cols, __pyx_v_cols, __pyx_v_any_cols_need_gil_out); if (unlikely(__pyx_t_14 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1209, __pyx_L1_error)
+1210: name_col = _dataframe_resolve_table_name(
__pyx_t_15 = __pyx_f_7questdb_7ingress__dataframe_resolve_table_name(__pyx_v_b, __pyx_v_df, __pyx_v_pandas_cols, __pyx_v_cols, __pyx_v_table_name, __pyx_v_table_name_col, __pyx_v_col_count, __pyx_v_c_table_name_out); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-2))) __PYX_ERR(1, 1210, __pyx_L1_error)
__pyx_v_name_col = __pyx_t_15;
1211: b,
1212: df,
1213: pandas_cols,
1214: cols,
1215: table_name,
1216: table_name_col,
1217: col_count,
1218: c_table_name_out)
+1219: at_col = _dataframe_resolve_at(df, cols, at, col_count, at_value_out)
__pyx_t_15 = __pyx_f_7questdb_7ingress__dataframe_resolve_at(__pyx_v_df, __pyx_v_cols, __pyx_v_at, __pyx_v_col_count, __pyx_v_at_value_out); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-2))) __PYX_ERR(1, 1219, __pyx_L1_error)
__pyx_v_at_col = __pyx_t_15;
+1220: _dataframe_resolve_symbols(df, pandas_cols, cols, name_col, at_col, symbols)
__pyx_t_14 = __pyx_f_7questdb_7ingress__dataframe_resolve_symbols(__pyx_v_df, __pyx_v_pandas_cols, __pyx_v_cols, __pyx_v_name_col, __pyx_v_at_col, __pyx_v_symbols); if (unlikely(__pyx_t_14 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1220, __pyx_L1_error)
+1221: _dataframe_resolve_cols_target_name_and_dc(b, pandas_cols, cols)
__pyx_t_14 = __pyx_f_7questdb_7ingress__dataframe_resolve_cols_target_name_and_dc(__pyx_v_b, __pyx_v_pandas_cols, __pyx_v_cols); if (unlikely(__pyx_t_14 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1221, __pyx_L1_error)
+1222: qsort(cols.d, col_count, sizeof(col_t), _dataframe_compare_cols)
qsort(__pyx_v_cols->d, __pyx_v_col_count, (sizeof(struct __pyx_t_7questdb_7ingress_col_t)), __pyx_f_7questdb_7ingress__dataframe_compare_cols);
1223:
1224:
+1225: cdef inline bint _dataframe_arrow_get_bool(col_cursor_t* cursor) noexcept nogil:
static CYTHON_INLINE int __pyx_f_7questdb_7ingress__dataframe_arrow_get_bool(struct __pyx_t_7questdb_7ingress_col_cursor_t *__pyx_v_cursor) { int __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
1226: return (
+1227: (<uint8_t*>cursor.chunk.buffers[1])[cursor.offset // 8] &
__pyx_r = ((((uint8_t *)(__pyx_v_cursor->chunk->buffers[1]))[(__pyx_v_cursor->offset / 8)]) & (1 << (__pyx_v_cursor->offset % 8))); goto __pyx_L0;
1228: (1 << (cursor.offset % 8)))
1229:
1230:
+1231: cdef inline bint _dataframe_arrow_is_valid(col_cursor_t* cursor) noexcept nogil:
static CYTHON_INLINE int __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid(struct __pyx_t_7questdb_7ingress_col_cursor_t *__pyx_v_cursor) { int __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
1232: """Check if the value is set according to the validity bitmap."""
1233: return (
+1234: cursor.chunk.null_count == 0 or
__pyx_t_2 = (__pyx_v_cursor->chunk->null_count == 0); if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L3_bool_binop_done; }
1235: (
+1236: (<uint8_t*>cursor.chunk.buffers[0])[cursor.offset // 8] &
__pyx_t_2 = (((((uint8_t *)(__pyx_v_cursor->chunk->buffers[0]))[(__pyx_v_cursor->offset / 8)]) & (1 << (__pyx_v_cursor->offset % 8))) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L3_bool_binop_done:; __pyx_r = __pyx_t_1; goto __pyx_L0;
1237: (1 << (cursor.offset % 8))))
1238:
1239:
+1240: cdef inline void _dataframe_arrow_get_cat_value(
static CYTHON_INLINE void __pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_value(struct __pyx_t_7questdb_7ingress_col_cursor_t *__pyx_v_cursor, size_t __pyx_v_key, size_t *__pyx_v_len_out, char const **__pyx_v_buf_out) { int32_t *__pyx_v_value_index_access; int32_t __pyx_v_value_begin; uint8_t *__pyx_v_value_char_access; /* … */ /* function exit code */ }
1241: col_cursor_t* cursor,
1242: size_t key,
1243: size_t* len_out,
1244: const char** buf_out) noexcept nogil:
1245: cdef int32_t* value_index_access
1246: cdef int32_t value_begin
1247: cdef uint8_t* value_char_access
+1248: value_index_access = <int32_t*>cursor.chunk.dictionary.buffers[1]
__pyx_v_value_index_access = ((int32_t *)(__pyx_v_cursor->chunk->dictionary->buffers[1]));
+1249: value_begin = value_index_access[key]
__pyx_v_value_begin = (__pyx_v_value_index_access[__pyx_v_key]);
+1250: len_out[0] = value_index_access[key + 1] - value_begin
(__pyx_v_len_out[0]) = ((__pyx_v_value_index_access[(__pyx_v_key + 1)]) - __pyx_v_value_begin);
+1251: value_char_access = <uint8_t*>cursor.chunk.dictionary.buffers[2]
__pyx_v_value_char_access = ((uint8_t *)(__pyx_v_cursor->chunk->dictionary->buffers[2]));
+1252: buf_out[0] = <const char*>&value_char_access[value_begin]
(__pyx_v_buf_out[0]) = ((char const *)(&(__pyx_v_value_char_access[__pyx_v_value_begin])));
1253:
1254:
+1255: cdef inline bint _dataframe_arrow_get_cat_i8(
static CYTHON_INLINE int __pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_i8(struct __pyx_t_7questdb_7ingress_col_cursor_t *__pyx_v_cursor, size_t *__pyx_v_len_out, char const **__pyx_v_buf_out) { int __pyx_v_valid; int8_t *__pyx_v_key_access; int8_t __pyx_v_key; int __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
1256: col_cursor_t* cursor, size_t* len_out, const char** buf_out) noexcept nogil:
+1257: cdef bint valid = _dataframe_arrow_is_valid(cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid(__pyx_v_cursor);
1258: cdef int8_t* key_access
1259: cdef int8_t key
+1260: if valid:
if (__pyx_v_valid) { /* … */ }
+1261: key_access = <int8_t*>cursor.chunk.buffers[1]
__pyx_v_key_access = ((int8_t *)(__pyx_v_cursor->chunk->buffers[1]));
+1262: key = key_access[cursor.offset]
__pyx_v_key = (__pyx_v_key_access[__pyx_v_cursor->offset]);
+1263: _dataframe_arrow_get_cat_value(cursor, <size_t>key, len_out, buf_out)
__pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_value(__pyx_v_cursor, ((size_t)__pyx_v_key), __pyx_v_len_out, __pyx_v_buf_out);
+1264: return valid
__pyx_r = __pyx_v_valid; goto __pyx_L0;
1265:
1266:
+1267: cdef inline bint _dataframe_arrow_get_cat_i16(
static CYTHON_INLINE int __pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_i16(struct __pyx_t_7questdb_7ingress_col_cursor_t *__pyx_v_cursor, size_t *__pyx_v_len_out, char const **__pyx_v_buf_out) { int __pyx_v_valid; int16_t *__pyx_v_key_access; int16_t __pyx_v_key; int __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
1268: col_cursor_t* cursor, size_t* len_out, const char** buf_out) noexcept nogil:
+1269: cdef bint valid = _dataframe_arrow_is_valid(cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid(__pyx_v_cursor);
1270: cdef int16_t* key_access
1271: cdef int16_t key
+1272: if valid:
if (__pyx_v_valid) { /* … */ }
+1273: key_access = <int16_t*>cursor.chunk.buffers[1]
__pyx_v_key_access = ((int16_t *)(__pyx_v_cursor->chunk->buffers[1]));
+1274: key = key_access[cursor.offset]
__pyx_v_key = (__pyx_v_key_access[__pyx_v_cursor->offset]);
+1275: _dataframe_arrow_get_cat_value(cursor, <size_t>key, len_out, buf_out)
__pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_value(__pyx_v_cursor, ((size_t)__pyx_v_key), __pyx_v_len_out, __pyx_v_buf_out);
+1276: return valid
__pyx_r = __pyx_v_valid; goto __pyx_L0;
1277:
1278:
+1279: cdef inline bint _dataframe_arrow_get_cat_i32(
static CYTHON_INLINE int __pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_i32(struct __pyx_t_7questdb_7ingress_col_cursor_t *__pyx_v_cursor, size_t *__pyx_v_len_out, char const **__pyx_v_buf_out) { int __pyx_v_valid; int32_t *__pyx_v_key_access; int32_t __pyx_v_key; int __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
1280: col_cursor_t* cursor, size_t* len_out, const char** buf_out) noexcept nogil:
+1281: cdef bint valid = _dataframe_arrow_is_valid(cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid(__pyx_v_cursor);
1282: cdef int32_t* key_access
1283: cdef int32_t key
+1284: if valid:
if (__pyx_v_valid) { /* … */ }
+1285: key_access = <int32_t*>cursor.chunk.buffers[1]
__pyx_v_key_access = ((int32_t *)(__pyx_v_cursor->chunk->buffers[1]));
+1286: key = key_access[cursor.offset]
__pyx_v_key = (__pyx_v_key_access[__pyx_v_cursor->offset]);
+1287: _dataframe_arrow_get_cat_value(cursor, <size_t>key, len_out, buf_out)
__pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_value(__pyx_v_cursor, ((size_t)__pyx_v_key), __pyx_v_len_out, __pyx_v_buf_out);
+1288: return valid
__pyx_r = __pyx_v_valid; goto __pyx_L0;
1289:
1290:
+1291: cdef inline bint _dataframe_arrow_str_utf8(
static CYTHON_INLINE int __pyx_f_7questdb_7ingress__dataframe_arrow_str_utf8(struct __pyx_t_7questdb_7ingress_col_cursor_t *__pyx_v_cursor, size_t *__pyx_v_len_out, char const **__pyx_v_buf_out) { int32_t *__pyx_v_index_access; uint8_t *__pyx_v_char_access; int32_t __pyx_v_begin; int __pyx_v_valid; int __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
1292: col_cursor_t* cursor,
1293: size_t* len_out,
1294: const char** buf_out) noexcept nogil:
1295: cdef int32_t* index_access
1296: cdef uint8_t* char_access
1297: cdef int32_t begin
+1298: cdef bint valid = _dataframe_arrow_is_valid(cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid(__pyx_v_cursor);
+1299: if valid:
if (__pyx_v_valid) { /* … */ }
+1300: index_access = <int32_t*>cursor.chunk.buffers[1]
__pyx_v_index_access = ((int32_t *)(__pyx_v_cursor->chunk->buffers[1]));
+1301: char_access = <uint8_t*>cursor.chunk.buffers[2]
__pyx_v_char_access = ((uint8_t *)(__pyx_v_cursor->chunk->buffers[2]));
+1302: begin = index_access[cursor.offset]
__pyx_v_begin = (__pyx_v_index_access[__pyx_v_cursor->offset]);
+1303: len_out[0] = index_access[cursor.offset + 1] - begin
(__pyx_v_len_out[0]) = ((__pyx_v_index_access[(__pyx_v_cursor->offset + 1)]) - __pyx_v_begin);
+1304: buf_out[0] = <const char*>&char_access[begin]
(__pyx_v_buf_out[0]) = ((char const *)(&(__pyx_v_char_access[__pyx_v_begin])));
+1305: return valid
__pyx_r = __pyx_v_valid; goto __pyx_L0;
1306:
+1307: cdef inline bint _dataframe_arrow_str_utf8_lrg(
static CYTHON_INLINE int __pyx_f_7questdb_7ingress__dataframe_arrow_str_utf8_lrg(struct __pyx_t_7questdb_7ingress_col_cursor_t *__pyx_v_cursor, size_t *__pyx_v_len_out, char const **__pyx_v_buf_out) { int64_t *__pyx_v_index_access; uint8_t *__pyx_v_char_access; int64_t __pyx_v_begin; int __pyx_v_valid; int __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
1308: col_cursor_t* cursor,
1309: size_t* len_out,
1310: const char** buf_out) noexcept nogil:
1311: cdef int64_t* index_access
1312: cdef uint8_t* char_access
1313: cdef int64_t begin
+1314: cdef bint valid = _dataframe_arrow_is_valid(cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid(__pyx_v_cursor);
+1315: if valid:
if (__pyx_v_valid) { /* … */ }
+1316: index_access = <int64_t*>cursor.chunk.buffers[1]
__pyx_v_index_access = ((int64_t *)(__pyx_v_cursor->chunk->buffers[1]));
+1317: char_access = <uint8_t*>cursor.chunk.buffers[2]
__pyx_v_char_access = ((uint8_t *)(__pyx_v_cursor->chunk->buffers[2]));
+1318: begin = index_access[cursor.offset]
__pyx_v_begin = (__pyx_v_index_access[__pyx_v_cursor->offset]);
+1319: len_out[0] = index_access[cursor.offset + 1] - begin
(__pyx_v_len_out[0]) = ((__pyx_v_index_access[(__pyx_v_cursor->offset + 1)]) - __pyx_v_begin);
+1320: buf_out[0] = <const char*>&char_access[begin]
(__pyx_v_buf_out[0]) = ((char const *)(&(__pyx_v_char_access[__pyx_v_begin])));
+1321: return valid
__pyx_r = __pyx_v_valid; goto __pyx_L0;
1322:
1323:
+1324: cdef inline void_int _dataframe_cell_str_pyobj_to_utf8(
static CYTHON_INLINE __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_cell_str_pyobj_to_utf8(struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_cursor_t *__pyx_v_cursor, int *__pyx_v_valid_out, struct line_sender_utf8 *__pyx_v_utf8_out) { PyObject **__pyx_v_access; PyObject *__pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("questdb.ingress._dataframe_cell_str_pyobj_to_utf8", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1325: qdb_pystr_buf* b,
1326: col_cursor_t* cursor,
1327: bint* valid_out,
1328: line_sender_utf8* utf8_out) except -1:
+1329: cdef PyObject** access = <PyObject**>cursor.chunk.buffers[1]
__pyx_v_access = ((PyObject **)(__pyx_v_cursor->chunk->buffers[1]));
+1330: cdef PyObject* cell = access[cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_cursor->offset]);
+1331: if PyUnicode_CheckExact(cell):
__pyx_t_1 = PyUnicode_CheckExact(__pyx_v_cell);
if (__pyx_t_1) {
/* … */
goto __pyx_L3;
}
+1332: str_to_utf8(b, cell, utf8_out)
__pyx_t_2 = __pyx_f_7questdb_7ingress_str_to_utf8(__pyx_v_b, __pyx_v_cell, __pyx_v_utf8_out); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1332, __pyx_L1_error)
+1333: valid_out[0] = True
(__pyx_v_valid_out[0]) = 1;
+1334: elif _dataframe_is_null_pyobj(cell):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_is_null_pyobj(__pyx_v_cell); if (likely(__pyx_t_1)) { /* … */ goto __pyx_L3; }
+1335: valid_out[0] = False
(__pyx_v_valid_out[0]) = 0;
1336: else:
+1337: raise ValueError(
/*else*/ {
__pyx_t_4 = NULL;
__Pyx_INCREF(__pyx_builtin_ValueError);
__pyx_t_5 = __pyx_builtin_ValueError;
1338: 'Expected a string, ' +
+1339: f'got an object of type {_fqn(type(<object>cell))}.')
__pyx_t_6 = __pyx_f_7questdb_7ingress__fqn(((PyTypeObject*)((PyObject *)Py_TYPE(((PyObject *)__pyx_v_cell))))); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_8[0] = __pyx_mstate_global->__pyx_kp_u_Expected_a_string_got_an_object; __pyx_t_8[1] = __pyx_t_7; __pyx_t_8[2] = __pyx_mstate_global->__pyx_kp_u_; __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_8, 3, 41 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 1337, __pyx_L1_error) } __pyx_L3:;
1340:
1341:
+1342: cdef void_int _dataframe_serialize_cell_table__str_pyobj(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_table__str_pyobj(struct line_sender_buffer *__pyx_v_ls_buf, struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { struct line_sender_error *__pyx_v_err; PyObject **__pyx_v_access; PyObject *__pyx_v_cell; struct line_sender_table_name __pyx_v_c_table_name; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_table__str_pyobj", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1343: line_sender_buffer* ls_buf,
1344: qdb_pystr_buf* b,
1345: col_t* col) except -1:
+1346: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1347: cdef PyObject** access = <PyObject**>col.cursor.chunk.buffers[1]
__pyx_v_access = ((PyObject **)(__pyx_v_col->cursor.chunk->buffers[1]));
+1348: cdef PyObject* cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
1349: cdef line_sender_table_name c_table_name
+1350: if not PyUnicode_CheckExact(cell):
__pyx_t_1 = (!PyUnicode_CheckExact(__pyx_v_cell));
if (__pyx_t_1) {
/* … */
}
+1351: if _dataframe_is_null_pyobj(cell):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_is_null_pyobj(__pyx_v_cell); if (unlikely(__pyx_t_1)) { /* … */ }
+1352: raise ValueError('Expected a table name, got a null value')
__pyx_t_3 = NULL; __Pyx_INCREF(__pyx_builtin_ValueError); __pyx_t_4 = __pyx_builtin_ValueError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Expected_a_table_name_got_a_null}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1352, __pyx_L1_error)
1353: else:
+1354: raise ValueError(
/*else*/ {
__pyx_t_4 = NULL;
__Pyx_INCREF(__pyx_builtin_ValueError);
__pyx_t_3 = __pyx_builtin_ValueError;
1355: 'Expected a table name (str object), ' +
+1356: f'got an object of type {_fqn(type(<object>cell))}.')
__pyx_t_6 = __pyx_f_7questdb_7ingress__fqn(((PyTypeObject*)((PyObject *)Py_TYPE(((PyObject *)__pyx_v_cell))))); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_8[0] = __pyx_mstate_global->__pyx_kp_u_Expected_a_table_name_str_object; __pyx_t_8[1] = __pyx_t_7; __pyx_t_8[2] = __pyx_mstate_global->__pyx_kp_u_; __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_8, 3, 58 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1354, __pyx_L1_error) }
+1357: str_to_table_name(b, cell, &c_table_name)
__pyx_t_9 = __pyx_f_7questdb_7ingress_str_to_table_name(__pyx_v_b, __pyx_v_cell, (&__pyx_v_c_table_name)); if (unlikely(__pyx_t_9 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1357, __pyx_L1_error)
+1358: if not line_sender_buffer_table(ls_buf, c_table_name, &err):
__pyx_t_1 = (!line_sender_buffer_table(__pyx_v_ls_buf, __pyx_v_c_table_name, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1359: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1359, __pyx_L1_error)
1360:
1361:
+1362: cdef void_int _dataframe_serialize_cell_table__str_utf8_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_table__str_utf8_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; size_t __pyx_v_c_len; char const *__pyx_v_buf; struct line_sender_table_name __pyx_v_c_table_name; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_table__str_utf8_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1363: line_sender_buffer* ls_buf,
1364: qdb_pystr_buf* b,
1365: col_t* col,
1366: PyThreadState** gs) except -1:
+1367: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
1368: cdef size_t c_len
1369: cdef const char* buf
1370: cdef line_sender_table_name c_table_name
+1371: if _dataframe_arrow_str_utf8(&col.cursor, &c_len, &buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_str_utf8((&__pyx_v_col->cursor), (&__pyx_v_c_len), (&__pyx_v_buf)); if (likely(__pyx_t_1)) { /* … */ goto __pyx_L3; }
+1372: if not line_sender_table_name_init(&c_table_name, c_len, buf, &err):
__pyx_t_1 = (!line_sender_table_name_init((&__pyx_v_c_table_name), __pyx_v_c_len, __pyx_v_buf, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1373: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1373, __pyx_L1_error)
+1374: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1374, __pyx_L1_error)
+1375: if not line_sender_buffer_table(ls_buf, c_table_name, &err):
__pyx_t_1 = (!line_sender_buffer_table(__pyx_v_ls_buf, __pyx_v_c_table_name, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1376: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1376, __pyx_L1_error)
+1377: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1377, __pyx_L1_error)
1378: else:
+1379: _ensure_has_gil(gs)
/*else*/ {
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1379, __pyx_L1_error)
+1380: raise ValueError('Table name cannot be null')
__pyx_t_3 = NULL; __Pyx_INCREF(__pyx_builtin_ValueError); __pyx_t_4 = __pyx_builtin_ValueError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Table_name_cannot_be_null}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1380, __pyx_L1_error) } __pyx_L3:;
1381:
+1382: cdef void_int _dataframe_serialize_cell_table__str_lrg_utf8_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_table__str_lrg_utf8_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; size_t __pyx_v_c_len; char const *__pyx_v_buf; struct line_sender_table_name __pyx_v_c_table_name; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_table__str_lrg_utf8_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1383: line_sender_buffer* ls_buf,
1384: qdb_pystr_buf* b,
1385: col_t* col,
1386: PyThreadState** gs) except -1:
+1387: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
1388: cdef size_t c_len
1389: cdef const char* buf
1390: cdef line_sender_table_name c_table_name
+1391: if _dataframe_arrow_str_utf8_lrg(&col.cursor, &c_len, &buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_str_utf8_lrg((&__pyx_v_col->cursor), (&__pyx_v_c_len), (&__pyx_v_buf)); if (likely(__pyx_t_1)) { /* … */ goto __pyx_L3; }
+1392: if not line_sender_table_name_init(&c_table_name, c_len, buf, &err):
__pyx_t_1 = (!line_sender_table_name_init((&__pyx_v_c_table_name), __pyx_v_c_len, __pyx_v_buf, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1393: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1393, __pyx_L1_error)
+1394: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1394, __pyx_L1_error)
+1395: if not line_sender_buffer_table(ls_buf, c_table_name, &err):
__pyx_t_1 = (!line_sender_buffer_table(__pyx_v_ls_buf, __pyx_v_c_table_name, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1396: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1396, __pyx_L1_error)
+1397: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1397, __pyx_L1_error)
1398: else:
+1399: _ensure_has_gil(gs)
/*else*/ {
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1399, __pyx_L1_error)
+1400: raise ValueError('Table name cannot be null')
__pyx_t_3 = NULL; __Pyx_INCREF(__pyx_builtin_ValueError); __pyx_t_4 = __pyx_builtin_ValueError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Table_name_cannot_be_null}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1400, __pyx_L1_error) } __pyx_L3:;
1401:
1402:
+1403: cdef void_int _dataframe_serialize_cell_table__str_i8_cat(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_table__str_i8_cat(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; size_t __pyx_v_c_len; char const *__pyx_v_c_buf; struct line_sender_table_name __pyx_v_c_table_name; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_table__str_i8_cat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1404: line_sender_buffer* ls_buf,
1405: qdb_pystr_buf* b,
1406: col_t* col,
1407: PyThreadState** gs) except -1:
+1408: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
1409: cdef size_t c_len
1410: cdef const char* c_buf
1411: cdef line_sender_table_name c_table_name
+1412: if _dataframe_arrow_get_cat_i8(&col.cursor, &c_len, &c_buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_i8((&__pyx_v_col->cursor), (&__pyx_v_c_len), (&__pyx_v_c_buf)); if (likely(__pyx_t_1)) { /* … */ goto __pyx_L3; }
+1413: if not line_sender_table_name_init(&c_table_name, c_len, c_buf, &err):
__pyx_t_1 = (!line_sender_table_name_init((&__pyx_v_c_table_name), __pyx_v_c_len, __pyx_v_c_buf, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1414: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1414, __pyx_L1_error)
+1415: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1415, __pyx_L1_error)
+1416: if not line_sender_buffer_table(ls_buf, c_table_name, &err):
__pyx_t_1 = (!line_sender_buffer_table(__pyx_v_ls_buf, __pyx_v_c_table_name, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1417: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1417, __pyx_L1_error)
+1418: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1418, __pyx_L1_error)
1419: else:
+1420: _ensure_has_gil(gs)
/*else*/ {
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1420, __pyx_L1_error)
+1421: raise ValueError('Table name cannot be null')
__pyx_t_3 = NULL; __Pyx_INCREF(__pyx_builtin_ValueError); __pyx_t_4 = __pyx_builtin_ValueError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Table_name_cannot_be_null}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1421, __pyx_L1_error) } __pyx_L3:;
1422:
1423:
+1424: cdef void_int _dataframe_serialize_cell_table__str_i16_cat(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_table__str_i16_cat(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; size_t __pyx_v_c_len; char const *__pyx_v_c_buf; struct line_sender_table_name __pyx_v_c_table_name; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_table__str_i16_cat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1425: line_sender_buffer* ls_buf,
1426: qdb_pystr_buf* b,
1427: col_t* col,
1428: PyThreadState** gs) except -1:
+1429: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
1430: cdef size_t c_len
1431: cdef const char* c_buf
1432: cdef line_sender_table_name c_table_name
+1433: if _dataframe_arrow_get_cat_i16(&col.cursor, &c_len, &c_buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_i16((&__pyx_v_col->cursor), (&__pyx_v_c_len), (&__pyx_v_c_buf)); if (likely(__pyx_t_1)) { /* … */ goto __pyx_L3; }
+1434: if not line_sender_table_name_init(&c_table_name, c_len, c_buf, &err):
__pyx_t_1 = (!line_sender_table_name_init((&__pyx_v_c_table_name), __pyx_v_c_len, __pyx_v_c_buf, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1435: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1435, __pyx_L1_error)
+1436: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1436, __pyx_L1_error)
+1437: if not line_sender_buffer_table(ls_buf, c_table_name, &err):
__pyx_t_1 = (!line_sender_buffer_table(__pyx_v_ls_buf, __pyx_v_c_table_name, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1438: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1438, __pyx_L1_error)
+1439: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1439, __pyx_L1_error)
1440: else:
+1441: _ensure_has_gil(gs)
/*else*/ {
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1441, __pyx_L1_error)
+1442: raise ValueError('Table name cannot be null')
__pyx_t_3 = NULL; __Pyx_INCREF(__pyx_builtin_ValueError); __pyx_t_4 = __pyx_builtin_ValueError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Table_name_cannot_be_null}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1442, __pyx_L1_error) } __pyx_L3:;
1443:
1444:
+1445: cdef void_int _dataframe_serialize_cell_table__str_i32_cat(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_table__str_i32_cat(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; size_t __pyx_v_c_len; char const *__pyx_v_c_buf; struct line_sender_table_name __pyx_v_c_table_name; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_table__str_i32_cat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1446: line_sender_buffer* ls_buf,
1447: qdb_pystr_buf* b,
1448: col_t* col,
1449: PyThreadState** gs) except -1:
+1450: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
1451: cdef size_t c_len
1452: cdef const char* c_buf
1453: cdef line_sender_table_name c_table_name
+1454: if _dataframe_arrow_get_cat_i32(&col.cursor, &c_len, &c_buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_i32((&__pyx_v_col->cursor), (&__pyx_v_c_len), (&__pyx_v_c_buf)); if (likely(__pyx_t_1)) { /* … */ goto __pyx_L3; }
+1455: if not line_sender_table_name_init(&c_table_name, c_len, c_buf, &err):
__pyx_t_1 = (!line_sender_table_name_init((&__pyx_v_c_table_name), __pyx_v_c_len, __pyx_v_c_buf, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1456: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1456, __pyx_L1_error)
+1457: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1457, __pyx_L1_error)
+1458: if not line_sender_buffer_table(ls_buf, c_table_name, &err):
__pyx_t_1 = (!line_sender_buffer_table(__pyx_v_ls_buf, __pyx_v_c_table_name, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1459: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1459, __pyx_L1_error)
+1460: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1460, __pyx_L1_error)
1461: else:
+1462: _ensure_has_gil(gs)
/*else*/ {
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1462, __pyx_L1_error)
+1463: raise ValueError('Table name cannot be null')
__pyx_t_3 = NULL; __Pyx_INCREF(__pyx_builtin_ValueError); __pyx_t_4 = __pyx_builtin_ValueError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Table_name_cannot_be_null}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1463, __pyx_L1_error) } __pyx_L3:;
1464:
1465:
+1466: cdef void_int _dataframe_serialize_cell_symbol__str_pyobj(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_symbol__str_pyobj(struct line_sender_buffer *__pyx_v_ls_buf, struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; struct line_sender_utf8 __pyx_v_utf8; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_symbol__str_pyobj", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1467: line_sender_buffer* ls_buf,
1468: qdb_pystr_buf* b,
1469: col_t* col) except -1:
+1470: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1471: cdef bint valid = False
__pyx_v_valid = 0;
1472: cdef line_sender_utf8 utf8
+1473: _dataframe_cell_str_pyobj_to_utf8(b, &col.cursor, &valid, &utf8)
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_cell_str_pyobj_to_utf8(__pyx_v_b, (&__pyx_v_col->cursor), (&__pyx_v_valid), (&__pyx_v_utf8)); if (unlikely(__pyx_t_1 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1473, __pyx_L1_error)
+1474: if valid and not line_sender_buffer_symbol(ls_buf, col.name, utf8, &err):
if (__pyx_v_valid) { } else { __pyx_t_2 = __pyx_v_valid; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (!line_sender_buffer_symbol(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_utf8, (&__pyx_v_err))); __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_2)) { /* … */ }
+1475: raise c_err_to_py(err)
__pyx_t_4 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 1475, __pyx_L1_error)
1476:
1477:
+1478: cdef void_int _dataframe_serialize_cell_symbol__str_utf8_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_symbol__str_utf8_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; struct line_sender_utf8 __pyx_v_utf8; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_symbol__str_utf8_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1479: line_sender_buffer* ls_buf,
1480: qdb_pystr_buf* b,
1481: col_t* col,
1482: PyThreadState** gs) except -1:
+1483: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
1484: cdef line_sender_utf8 utf8
+1485: if _dataframe_arrow_str_utf8(&col.cursor, &utf8.len, &utf8.buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_str_utf8((&__pyx_v_col->cursor), (&__pyx_v_utf8.len), (&__pyx_v_utf8.buf)); if (__pyx_t_1) { /* … */ }
+1486: if not line_sender_buffer_symbol(ls_buf, col.name, utf8, &err):
__pyx_t_1 = (!line_sender_buffer_symbol(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_utf8, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1487: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1487, __pyx_L1_error)
+1488: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1488, __pyx_L1_error)
1489:
+1490: cdef void_int _dataframe_serialize_cell_symbol__str_lrg_utf8_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_symbol__str_lrg_utf8_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; struct line_sender_utf8 __pyx_v_utf8; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_symbol__str_lrg_utf8_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1491: line_sender_buffer* ls_buf,
1492: qdb_pystr_buf* b,
1493: col_t* col,
1494: PyThreadState** gs) except -1:
+1495: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
1496: cdef line_sender_utf8 utf8
+1497: if _dataframe_arrow_str_utf8_lrg(&col.cursor, &utf8.len, &utf8.buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_str_utf8_lrg((&__pyx_v_col->cursor), (&__pyx_v_utf8.len), (&__pyx_v_utf8.buf)); if (__pyx_t_1) { /* … */ }
+1498: if not line_sender_buffer_symbol(ls_buf, col.name, utf8, &err):
__pyx_t_1 = (!line_sender_buffer_symbol(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_utf8, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1499: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1499, __pyx_L1_error)
+1500: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1500, __pyx_L1_error)
1501:
1502:
+1503: cdef void_int _dataframe_serialize_cell_symbol__str_i8_cat(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_symbol__str_i8_cat(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; struct line_sender_utf8 __pyx_v_utf8; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_symbol__str_i8_cat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1504: line_sender_buffer* ls_buf,
1505: qdb_pystr_buf* b,
1506: col_t* col,
1507: PyThreadState** gs) except -1:
+1508: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
1509: cdef line_sender_utf8 utf8
+1510: if _dataframe_arrow_get_cat_i8(&col.cursor, &utf8.len, &utf8.buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_i8((&__pyx_v_col->cursor), (&__pyx_v_utf8.len), (&__pyx_v_utf8.buf)); if (__pyx_t_1) { /* … */ }
+1511: if not line_sender_buffer_symbol(ls_buf, col.name, utf8, &err):
__pyx_t_1 = (!line_sender_buffer_symbol(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_utf8, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1512: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1512, __pyx_L1_error)
+1513: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1513, __pyx_L1_error)
1514:
1515:
+1516: cdef void_int _dataframe_serialize_cell_symbol__str_i16_cat(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_symbol__str_i16_cat(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; struct line_sender_utf8 __pyx_v_utf8; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_symbol__str_i16_cat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1517: line_sender_buffer* ls_buf,
1518: qdb_pystr_buf* b,
1519: col_t* col,
1520: PyThreadState** gs) except -1:
+1521: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
1522: cdef line_sender_utf8 utf8
+1523: if _dataframe_arrow_get_cat_i16(&col.cursor, &utf8.len, &utf8.buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_i16((&__pyx_v_col->cursor), (&__pyx_v_utf8.len), (&__pyx_v_utf8.buf)); if (__pyx_t_1) { /* … */ }
+1524: if not line_sender_buffer_symbol(ls_buf, col.name, utf8, &err):
__pyx_t_1 = (!line_sender_buffer_symbol(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_utf8, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1525: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1525, __pyx_L1_error)
+1526: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1526, __pyx_L1_error)
1527:
1528:
+1529: cdef void_int _dataframe_serialize_cell_symbol__str_i32_cat(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_symbol__str_i32_cat(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; struct line_sender_utf8 __pyx_v_utf8; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_symbol__str_i32_cat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1530: line_sender_buffer* ls_buf,
1531: qdb_pystr_buf* b,
1532: col_t* col,
1533: PyThreadState** gs) except -1:
+1534: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
1535: cdef line_sender_utf8 utf8
+1536: if _dataframe_arrow_get_cat_i32(&col.cursor, &utf8.len, &utf8.buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_i32((&__pyx_v_col->cursor), (&__pyx_v_utf8.len), (&__pyx_v_utf8.buf)); if (__pyx_t_1) { /* … */ }
+1537: if not line_sender_buffer_symbol(ls_buf, col.name, utf8, &err):
__pyx_t_1 = (!line_sender_buffer_symbol(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_utf8, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1538: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1538, __pyx_L1_error)
+1539: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1539, __pyx_L1_error)
1540:
1541:
+1542: cdef void_int _dataframe_serialize_cell_column_bool__bool_pyobj(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_bool__bool_pyobj(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { struct line_sender_error *__pyx_v_err; PyObject **__pyx_v_access; PyObject *__pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_bool__bool_pyobj", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1543: line_sender_buffer* ls_buf,
1544: qdb_pystr_buf* b,
1545: col_t* col) except -1:
+1546: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1547: cdef PyObject** access = <PyObject**>col.cursor.chunk.buffers[1]
__pyx_v_access = ((PyObject **)(__pyx_v_col->cursor.chunk->buffers[1]));
+1548: cdef PyObject* cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+1549: if PyBool_Check(cell):
__pyx_t_1 = PyBool_Check(__pyx_v_cell);
if (likely(__pyx_t_1)) {
/* … */
goto __pyx_L3;
}
+1550: if not line_sender_buffer_column_bool(
__pyx_t_1 = (!line_sender_buffer_column_bool(__pyx_v_ls_buf, __pyx_v_col->name, (__pyx_v_cell == Py_True), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
1551: ls_buf, col.name, cell == Py_True, &err):
+1552: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1552, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1552, __pyx_L1_error)
+1553: elif _dataframe_is_null_pyobj(cell):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_is_null_pyobj(__pyx_v_cell); if (unlikely(__pyx_t_1)) { /* … */ }
+1554: raise ValueError('Cannot insert null values into a boolean column.')
__pyx_t_3 = NULL; __Pyx_INCREF(__pyx_builtin_ValueError); __pyx_t_4 = __pyx_builtin_ValueError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Cannot_insert_null_values_into_a}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1554, __pyx_L1_error)
1555: else:
+1556: raise ValueError(
/*else*/ {
__pyx_t_4 = NULL;
__Pyx_INCREF(__pyx_builtin_ValueError);
__pyx_t_3 = __pyx_builtin_ValueError;
+1557: 'Expected an object of type bool, got a ' +
__pyx_t_7 = __Pyx_PyUnicode_ConcatSafe(__pyx_mstate_global->__pyx_kp_u_Expected_an_object_of_type_bool, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1558: _fqn(type(<object>cell)) + '.')
__pyx_t_6 = __pyx_f_7questdb_7ingress__fqn(((PyTypeObject*)((PyObject *)Py_TYPE(((PyObject *)__pyx_v_cell))))); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); /* … */ __pyx_t_6 = __Pyx_PyUnicode_ConcatInPlace(__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1556, __pyx_L1_error) } __pyx_L3:;
1559:
1560:
+1561: cdef void_int _dataframe_serialize_cell_column_bool__bool_numpy(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_bool__bool_numpy(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; uint8_t *__pyx_v_access; uint8_t __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_bool__bool_numpy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1562: line_sender_buffer* ls_buf,
1563: qdb_pystr_buf* b,
1564: col_t* col,
1565: PyThreadState** gs) except -1:
+1566: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1567: cdef uint8_t* access = <uint8_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((uint8_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1568: cdef uint8_t cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+1569: if not line_sender_buffer_column_bool(ls_buf, col.name, not not cell, &err):
__pyx_t_1 = (!line_sender_buffer_column_bool(__pyx_v_ls_buf, __pyx_v_col->name, (!(!(__pyx_v_cell != 0))), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1570: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1570, __pyx_L1_error)
+1571: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1571, __pyx_L1_error)
1572:
1573:
+1574: cdef void_int _dataframe_serialize_cell_column_bool__bool_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_bool__bool_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; int __pyx_v_value; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_bool__bool_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1575: line_sender_buffer* ls_buf,
1576: qdb_pystr_buf* b,
1577: col_t* col,
1578: PyThreadState** gs) except -1:
+1579: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1580: cdef bint valid = _dataframe_arrow_is_valid(&col.cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid((&__pyx_v_col->cursor));
1581: cdef bint value
+1582: if valid:
if (likely(__pyx_v_valid)) { /* … */ goto __pyx_L3; }
+1583: value = _dataframe_arrow_get_bool(&col.cursor)
__pyx_v_value = __pyx_f_7questdb_7ingress__dataframe_arrow_get_bool((&__pyx_v_col->cursor));
+1584: if not line_sender_buffer_column_bool(ls_buf, col.name, value, &err):
__pyx_t_1 = (!line_sender_buffer_column_bool(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_value, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1585: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1585, __pyx_L1_error)
+1586: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1586, __pyx_L1_error)
1587: else:
+1588: _ensure_has_gil(gs)
/*else*/ {
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1588, __pyx_L1_error)
+1589: raise ValueError('Cannot insert null values into a boolean column.')
__pyx_t_3 = NULL; __Pyx_INCREF(__pyx_builtin_ValueError); __pyx_t_4 = __pyx_builtin_ValueError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Cannot_insert_null_values_into_a}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1589, __pyx_L1_error) } __pyx_L3:;
1590:
1591:
+1592: cdef void_int _dataframe_serialize_cell_column_i64__int_pyobj(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__int_pyobj(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { struct line_sender_error *__pyx_v_err; PyObject **__pyx_v_access; PyObject *__pyx_v_cell; int64_t __pyx_v_value; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__int_pyobj", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1593: line_sender_buffer* ls_buf,
1594: qdb_pystr_buf* b,
1595: col_t* col) except -1:
+1596: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1597: cdef PyObject** access = <PyObject**>col.cursor.chunk.buffers[1]
__pyx_v_access = ((PyObject **)(__pyx_v_col->cursor.chunk->buffers[1]));
+1598: cdef PyObject* cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
1599: cdef int64_t value
+1600: if PyLong_CheckExact(cell):
__pyx_t_1 = PyLong_CheckExact(__pyx_v_cell);
if (__pyx_t_1) {
/* … */
goto __pyx_L3;
}
+1601: value = PyLong_AsLongLong(cell)
__pyx_t_2 = PyLong_AsLongLong(__pyx_v_cell); if (unlikely(__pyx_t_2 == ((PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(1, 1601, __pyx_L1_error) __pyx_v_value = __pyx_t_2;
+1602: if not line_sender_buffer_column_i64(ls_buf, col.name, value, &err):
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_value, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1603: raise c_err_to_py(err)
__pyx_t_3 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 1603, __pyx_L1_error)
+1604: elif _dataframe_is_null_pyobj(cell):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_is_null_pyobj(__pyx_v_cell); if (likely(__pyx_t_1)) { goto __pyx_L3; }
1605: pass
1606: else:
+1607: raise ValueError(
/*else*/ {
__pyx_t_4 = NULL;
__Pyx_INCREF(__pyx_builtin_ValueError);
__pyx_t_5 = __pyx_builtin_ValueError;
+1608: 'Expected an object of type int, got an object of type ' +
__pyx_t_7 = __Pyx_PyUnicode_ConcatSafe(__pyx_mstate_global->__pyx_kp_u_Expected_an_object_of_type_int_g, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1609: _fqn(type(<object>cell)) + '.')
__pyx_t_6 = __pyx_f_7questdb_7ingress__fqn(((PyTypeObject*)((PyObject *)Py_TYPE(((PyObject *)__pyx_v_cell))))); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); /* … */ __pyx_t_6 = __Pyx_PyUnicode_ConcatInPlace(__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 1607, __pyx_L1_error) } __pyx_L3:;
1610:
1611:
+1612: cdef void_int _dataframe_serialize_cell_column_i64__u8_numpy(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u8_numpy(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; uint8_t *__pyx_v_access; uint8_t __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__u8_numpy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1613: line_sender_buffer* ls_buf,
1614: qdb_pystr_buf* b,
1615: col_t* col,
1616: PyThreadState** gs) except -1:
+1617: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1618: cdef uint8_t* access = <uint8_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((uint8_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1619: cdef uint8_t cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+1620: if not line_sender_buffer_column_i64(ls_buf, col.name, <int64_t>cell, &err):
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, ((int64_t)__pyx_v_cell), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1621: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1621, __pyx_L1_error)
+1622: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1622, __pyx_L1_error)
1623:
1624:
+1625: cdef void_int _dataframe_serialize_cell_column_i64__i8_numpy(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i8_numpy(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int8_t *__pyx_v_access; int8_t __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__i8_numpy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1626: line_sender_buffer* ls_buf,
1627: qdb_pystr_buf* b,
1628: col_t* col,
1629: PyThreadState** gs) except -1:
+1630: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1631: cdef int8_t* access = <int8_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((int8_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1632: cdef int8_t cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+1633: if not line_sender_buffer_column_i64(ls_buf, col.name, <int64_t>cell, &err):
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, ((int64_t)__pyx_v_cell), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1634: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1634, __pyx_L1_error)
+1635: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1635, __pyx_L1_error)
1636:
1637:
+1638: cdef void_int _dataframe_serialize_cell_column_i64__u16_numpy(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u16_numpy(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; uint16_t *__pyx_v_access; uint16_t __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__u16_numpy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1639: line_sender_buffer* ls_buf,
1640: qdb_pystr_buf* b,
1641: col_t* col,
1642: PyThreadState** gs) except -1:
+1643: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1644: cdef uint16_t* access = <uint16_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((uint16_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1645: cdef uint16_t cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+1646: if not line_sender_buffer_column_i64(ls_buf, col.name, <int64_t>cell, &err):
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, ((int64_t)__pyx_v_cell), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1647: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1647, __pyx_L1_error)
+1648: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1648, __pyx_L1_error)
1649:
1650:
+1651: cdef void_int _dataframe_serialize_cell_column_i64__i16_numpy(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i16_numpy(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int16_t *__pyx_v_access; int16_t __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__i16_numpy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1652: line_sender_buffer* ls_buf,
1653: qdb_pystr_buf* b,
1654: col_t* col,
1655: PyThreadState** gs) except -1:
+1656: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1657: cdef int16_t* access = <int16_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((int16_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1658: cdef int16_t cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+1659: if not line_sender_buffer_column_i64(ls_buf, col.name, <int64_t>cell, &err):
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, ((int64_t)__pyx_v_cell), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1660: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1660, __pyx_L1_error)
+1661: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1661, __pyx_L1_error)
1662:
1663:
+1664: cdef void_int _dataframe_serialize_cell_column_i64__u32_numpy(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u32_numpy(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; uint32_t *__pyx_v_access; uint32_t __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__u32_numpy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1665: line_sender_buffer* ls_buf,
1666: qdb_pystr_buf* b,
1667: col_t* col,
1668: PyThreadState** gs) except -1:
+1669: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1670: cdef uint32_t* access = <uint32_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((uint32_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1671: cdef uint32_t cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+1672: if not line_sender_buffer_column_i64(ls_buf, col.name, <int64_t>cell, &err):
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, ((int64_t)__pyx_v_cell), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1673: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1673, __pyx_L1_error)
+1674: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1674, __pyx_L1_error)
1675:
1676:
+1677: cdef void_int _dataframe_serialize_cell_column_i64__i32_numpy(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i32_numpy(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int32_t *__pyx_v_access; int32_t __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__i32_numpy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1678: line_sender_buffer* ls_buf,
1679: qdb_pystr_buf* b,
1680: col_t* col,
1681: PyThreadState** gs) except -1:
+1682: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1683: cdef int32_t* access = <int32_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((int32_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1684: cdef int32_t cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+1685: if not line_sender_buffer_column_i64(ls_buf, col.name, <int64_t>cell, &err):
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, ((int64_t)__pyx_v_cell), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1686: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1686, __pyx_L1_error)
+1687: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1687, __pyx_L1_error)
1688:
1689:
+1690: cdef void_int _dataframe_serialize_cell_column_i64__u64_numpy(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u64_numpy(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; uint64_t *__pyx_v_access; uint64_t __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__u64_numpy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1691: line_sender_buffer* ls_buf,
1692: qdb_pystr_buf* b,
1693: col_t* col,
1694: PyThreadState** gs) except -1:
+1695: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1696: cdef uint64_t* access = <uint64_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((uint64_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1697: cdef uint64_t cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+1698: if cell > <uint64_t>INT64_MAX:
__pyx_t_1 = (__pyx_v_cell > ((uint64_t)INT64_MAX)); if (unlikely(__pyx_t_1)) { /* … */ }
+1699: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1699, __pyx_L1_error)
+1700: raise OverflowError('uint64 value too large for int64 column type.')
__pyx_t_3 = NULL; __Pyx_INCREF(__pyx_builtin_OverflowError); __pyx_t_4 = __pyx_builtin_OverflowError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_uint64_value_too_large_for_int64}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1700, __pyx_L1_error)
+1701: if not line_sender_buffer_column_i64(ls_buf, col.name, <int64_t>cell, &err):
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, ((int64_t)__pyx_v_cell), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1702: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1702, __pyx_L1_error)
+1703: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1703, __pyx_L1_error)
1704:
1705:
+1706: cdef void_int _dataframe_serialize_cell_column_i64__i64_numpy(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i64_numpy(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int64_t *__pyx_v_access; int64_t __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__i64_numpy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1707: line_sender_buffer* ls_buf,
1708: qdb_pystr_buf* b,
1709: col_t* col,
1710: PyThreadState** gs) except -1:
+1711: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1712: cdef int64_t* access = <int64_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((int64_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1713: cdef int64_t cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+1714: if not line_sender_buffer_column_i64(ls_buf, col.name, cell, &err):
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_cell, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1715: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1715, __pyx_L1_error)
+1716: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1716, __pyx_L1_error)
1717:
1718:
+1719: cdef void_int _dataframe_serialize_cell_column_i64__u8_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u8_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; uint8_t *__pyx_v_access; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__u8_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1720: line_sender_buffer* ls_buf,
1721: qdb_pystr_buf* b,
1722: col_t* col,
1723: PyThreadState** gs) except -1:
+1724: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1725: cdef bint valid = _dataframe_arrow_is_valid(&col.cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid((&__pyx_v_col->cursor));
1726: cdef uint8_t* access
+1727: if valid:
if (__pyx_v_valid) { /* … */ }
+1728: access = <uint8_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((uint8_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1729: if not line_sender_buffer_column_i64(
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, ((int64_t)(__pyx_v_access[__pyx_v_col->cursor.offset])), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
1730: ls_buf,
1731: col.name,
1732: <int64_t>access[col.cursor.offset],
1733: &err):
+1734: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1734, __pyx_L1_error)
+1735: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1735, __pyx_L1_error)
1736:
1737:
+1738: cdef void_int _dataframe_serialize_cell_column_i64__i8_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i8_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; int8_t *__pyx_v_access; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__i8_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1739: line_sender_buffer* ls_buf,
1740: qdb_pystr_buf* b,
1741: col_t* col,
1742: PyThreadState** gs) except -1:
+1743: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1744: cdef bint valid = _dataframe_arrow_is_valid(&col.cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid((&__pyx_v_col->cursor));
1745: cdef int8_t* access
+1746: if valid:
if (__pyx_v_valid) { /* … */ }
+1747: access = <int8_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((int8_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1748: if not line_sender_buffer_column_i64(
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, ((int64_t)(__pyx_v_access[__pyx_v_col->cursor.offset])), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
1749: ls_buf,
1750: col.name,
1751: <int64_t>access[col.cursor.offset],
1752: &err):
+1753: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1753, __pyx_L1_error)
+1754: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1754, __pyx_L1_error)
1755:
1756:
+1757: cdef void_int _dataframe_serialize_cell_column_i64__u16_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u16_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; uint16_t *__pyx_v_access; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__u16_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1758: line_sender_buffer* ls_buf,
1759: qdb_pystr_buf* b,
1760: col_t* col,
1761: PyThreadState** gs) except -1:
+1762: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1763: cdef bint valid = _dataframe_arrow_is_valid(&col.cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid((&__pyx_v_col->cursor));
1764: cdef uint16_t* access
+1765: if valid:
if (__pyx_v_valid) { /* … */ }
+1766: access = <uint16_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((uint16_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1767: if not line_sender_buffer_column_i64(
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, ((int64_t)(__pyx_v_access[__pyx_v_col->cursor.offset])), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
1768: ls_buf,
1769: col.name,
1770: <int64_t>access[col.cursor.offset],
1771: &err):
+1772: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1772, __pyx_L1_error)
+1773: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1773, __pyx_L1_error)
1774:
1775:
+1776: cdef void_int _dataframe_serialize_cell_column_i64__i16_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i16_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; int16_t *__pyx_v_access; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__i16_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1777: line_sender_buffer* ls_buf,
1778: qdb_pystr_buf* b,
1779: col_t* col,
1780: PyThreadState** gs) except -1:
+1781: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1782: cdef bint valid = _dataframe_arrow_is_valid(&col.cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid((&__pyx_v_col->cursor));
1783: cdef int16_t* access
+1784: if valid:
if (__pyx_v_valid) { /* … */ }
+1785: access = <int16_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((int16_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1786: if not line_sender_buffer_column_i64(
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, ((int64_t)(__pyx_v_access[__pyx_v_col->cursor.offset])), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
1787: ls_buf,
1788: col.name,
1789: <int64_t>access[col.cursor.offset],
1790: &err):
+1791: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1791, __pyx_L1_error)
+1792: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1792, __pyx_L1_error)
1793:
1794:
+1795: cdef void_int _dataframe_serialize_cell_column_i64__u32_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u32_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; uint32_t *__pyx_v_access; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__u32_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1796: line_sender_buffer* ls_buf,
1797: qdb_pystr_buf* b,
1798: col_t* col,
1799: PyThreadState** gs) except -1:
+1800: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1801: cdef bint valid = _dataframe_arrow_is_valid(&col.cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid((&__pyx_v_col->cursor));
1802: cdef uint32_t* access
+1803: if valid:
if (__pyx_v_valid) { /* … */ }
+1804: access = <uint32_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((uint32_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1805: if not line_sender_buffer_column_i64(
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, ((int64_t)(__pyx_v_access[__pyx_v_col->cursor.offset])), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
1806: ls_buf,
1807: col.name,
1808: <int64_t>access[col.cursor.offset],
1809: &err):
+1810: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1810, __pyx_L1_error)
+1811: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1811, __pyx_L1_error)
1812:
1813:
+1814: cdef void_int _dataframe_serialize_cell_column_i64__i32_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i32_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; int32_t *__pyx_v_access; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__i32_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1815: line_sender_buffer* ls_buf,
1816: qdb_pystr_buf* b,
1817: col_t* col,
1818: PyThreadState** gs) except -1:
+1819: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1820: cdef bint valid = _dataframe_arrow_is_valid(&col.cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid((&__pyx_v_col->cursor));
1821: cdef int32_t* access
+1822: if valid:
if (__pyx_v_valid) { /* … */ }
+1823: access = <int32_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((int32_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1824: if not line_sender_buffer_column_i64(
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, ((int64_t)(__pyx_v_access[__pyx_v_col->cursor.offset])), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
1825: ls_buf,
1826: col.name,
1827: <int64_t>access[col.cursor.offset],
1828: &err):
+1829: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1829, __pyx_L1_error)
+1830: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1830, __pyx_L1_error)
1831:
1832:
+1833: cdef void_int _dataframe_serialize_cell_column_i64__u64_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u64_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; uint64_t *__pyx_v_access; uint64_t __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__u64_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1834: line_sender_buffer* ls_buf,
1835: qdb_pystr_buf* b,
1836: col_t* col,
1837: PyThreadState** gs) except -1:
+1838: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1839: cdef bint valid = _dataframe_arrow_is_valid(&col.cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid((&__pyx_v_col->cursor));
1840: cdef uint64_t* access
1841: cdef uint64_t cell
+1842: if valid:
if (__pyx_v_valid) { /* … */ }
+1843: access = <uint64_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((uint64_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1844: cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+1845: if cell > <uint64_t>INT64_MAX:
__pyx_t_1 = (__pyx_v_cell > ((uint64_t)INT64_MAX)); if (unlikely(__pyx_t_1)) { /* … */ }
+1846: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1846, __pyx_L1_error)
+1847: raise OverflowError('uint64 value too large for int64 column type.')
__pyx_t_3 = NULL; __Pyx_INCREF(__pyx_builtin_OverflowError); __pyx_t_4 = __pyx_builtin_OverflowError; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_uint64_value_too_large_for_int64}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1847, __pyx_L1_error)
+1848: if not line_sender_buffer_column_i64(
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, ((int64_t)__pyx_v_cell), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
1849: ls_buf,
1850: col.name,
1851: <int64_t>cell,
1852: &err):
+1853: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1853, __pyx_L1_error)
+1854: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1854, __pyx_L1_error)
1855:
1856:
+1857: cdef void_int _dataframe_serialize_cell_column_i64__i64_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i64_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; int64_t *__pyx_v_access; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_i64__i64_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1858: line_sender_buffer* ls_buf,
1859: qdb_pystr_buf* b,
1860: col_t* col,
1861: PyThreadState** gs) except -1:
+1862: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1863: cdef bint valid = _dataframe_arrow_is_valid(&col.cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid((&__pyx_v_col->cursor));
1864: cdef int64_t* access
+1865: if valid:
if (__pyx_v_valid) { /* … */ }
+1866: access = <int64_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((int64_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1867: if not line_sender_buffer_column_i64(
__pyx_t_1 = (!line_sender_buffer_column_i64(__pyx_v_ls_buf, __pyx_v_col->name, (__pyx_v_access[__pyx_v_col->cursor.offset]), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
1868: ls_buf,
1869: col.name,
1870: access[col.cursor.offset],
1871: &err):
+1872: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1872, __pyx_L1_error)
+1873: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1873, __pyx_L1_error)
1874:
1875:
+1876: cdef void_int _dataframe_serialize_cell_column_f64__float_pyobj(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_f64__float_pyobj(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { struct line_sender_error *__pyx_v_err; PyObject **__pyx_v_access; PyObject *__pyx_v_cell; double __pyx_v_value; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_f64__float_pyobj", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1877: line_sender_buffer* ls_buf,
1878: qdb_pystr_buf* b,
1879: col_t* col) except -1:
+1880: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1881: cdef PyObject** access = <PyObject**>col.cursor.chunk.buffers[1]
__pyx_v_access = ((PyObject **)(__pyx_v_col->cursor.chunk->buffers[1]));
+1882: cdef PyObject* cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
1883: cdef double value
+1884: if PyFloat_CheckExact(cell):
__pyx_t_1 = PyFloat_CheckExact(__pyx_v_cell);
if (__pyx_t_1) {
/* … */
goto __pyx_L3;
}
+1885: value = PyFloat_AS_DOUBLE(cell)
__pyx_v_value = PyFloat_AS_DOUBLE(__pyx_v_cell);
+1886: if not line_sender_buffer_column_f64(ls_buf, col.name, value, &err):
__pyx_t_1 = (!line_sender_buffer_column_f64(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_value, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1887: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1887, __pyx_L1_error)
+1888: elif _dataframe_is_null_pyobj(cell):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_is_null_pyobj(__pyx_v_cell); if (likely(__pyx_t_1)) { goto __pyx_L3; }
1889: pass
1890: else:
+1891: raise ValueError(
/*else*/ {
__pyx_t_3 = NULL;
__Pyx_INCREF(__pyx_builtin_ValueError);
__pyx_t_4 = __pyx_builtin_ValueError;
+1892: 'Expected an object of type float, got an object of type ' +
__pyx_t_6 = __Pyx_PyUnicode_ConcatSafe(__pyx_mstate_global->__pyx_kp_u_Expected_an_object_of_type_float, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1893: _fqn(type(<object>cell)) + '.')
__pyx_t_5 = __pyx_f_7questdb_7ingress__fqn(((PyTypeObject*)((PyObject *)Py_TYPE(((PyObject *)__pyx_v_cell))))); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); /* … */ __pyx_t_5 = __Pyx_PyUnicode_ConcatInPlace(__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1891, __pyx_L1_error) } __pyx_L3:;
1894:
1895:
+1896: cdef void_int _dataframe_serialize_cell_column_f64__f32_numpy(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_f64__f32_numpy(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; float *__pyx_v_access; float __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_f64__f32_numpy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1897: line_sender_buffer* ls_buf,
1898: qdb_pystr_buf* b,
1899: col_t* col,
1900: PyThreadState** gs) except -1:
+1901: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
1902: # Note: This is the C `float` type, not the Python `float` type.
+1903: cdef float* access = <float*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((float *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1904: cdef float cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+1905: if not line_sender_buffer_column_f64(ls_buf, col.name, <double>cell, &err):
__pyx_t_1 = (!line_sender_buffer_column_f64(__pyx_v_ls_buf, __pyx_v_col->name, ((double)__pyx_v_cell), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1906: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1906, __pyx_L1_error)
+1907: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1907, __pyx_L1_error)
1908:
1909:
+1910: cdef void_int _dataframe_serialize_cell_column_f64__f64_numpy(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_f64__f64_numpy(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; double *__pyx_v_access; double __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_f64__f64_numpy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1911: line_sender_buffer* ls_buf,
1912: qdb_pystr_buf* b,
1913: col_t* col,
1914: PyThreadState** gs) except -1:
+1915: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1916: cdef double* access = <double*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((double *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1917: cdef double cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+1918: if not line_sender_buffer_column_f64(ls_buf, col.name, cell, &err):
__pyx_t_1 = (!line_sender_buffer_column_f64(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_cell, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1919: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1919, __pyx_L1_error)
+1920: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1920, __pyx_L1_error)
1921:
1922:
+1923: cdef void_int _dataframe_serialize_cell_column_f64__f32_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_f64__f32_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; float *__pyx_v_access; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_f64__f32_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1924: line_sender_buffer* ls_buf,
1925: qdb_pystr_buf* b,
1926: col_t* col,
1927: PyThreadState** gs) except -1:
+1928: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1929: cdef bint valid = _dataframe_arrow_is_valid(&col.cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid((&__pyx_v_col->cursor));
1930: cdef float* access
+1931: if valid:
if (__pyx_v_valid) { /* … */ }
+1932: access = <float*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((float *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1933: if not line_sender_buffer_column_f64(
__pyx_t_1 = (!line_sender_buffer_column_f64(__pyx_v_ls_buf, __pyx_v_col->name, ((double)(__pyx_v_access[__pyx_v_col->cursor.offset])), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
1934: ls_buf,
1935: col.name,
1936: <double>access[col.cursor.offset],
1937: &err):
+1938: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1938, __pyx_L1_error)
+1939: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1939, __pyx_L1_error)
1940:
1941:
+1942: cdef void_int _dataframe_serialize_cell_column_f64__f64_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_f64__f64_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; double *__pyx_v_access; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_f64__f64_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1943: line_sender_buffer* ls_buf,
1944: qdb_pystr_buf* b,
1945: col_t* col,
1946: PyThreadState** gs) except -1:
+1947: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1948: cdef bint valid = _dataframe_arrow_is_valid(&col.cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid((&__pyx_v_col->cursor));
1949: cdef double* access
+1950: if valid:
if (__pyx_v_valid) { /* … */ }
+1951: access = <double*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((double *)(__pyx_v_col->cursor.chunk->buffers[1]));
+1952: if not line_sender_buffer_column_f64(
__pyx_t_1 = (!line_sender_buffer_column_f64(__pyx_v_ls_buf, __pyx_v_col->name, (__pyx_v_access[__pyx_v_col->cursor.offset]), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
1953: ls_buf,
1954: col.name,
1955: access[col.cursor.offset],
1956: &err):
+1957: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1957, __pyx_L1_error)
+1958: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1958, __pyx_L1_error)
1959:
1960:
+1961: cdef void_int _dataframe_serialize_cell_column_str__str_pyobj(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_str__str_pyobj(struct line_sender_buffer *__pyx_v_ls_buf, struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; struct line_sender_utf8 __pyx_v_utf8; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_str__str_pyobj", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1962: line_sender_buffer* ls_buf,
1963: qdb_pystr_buf* b,
1964: col_t* col) except -1:
+1965: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+1966: cdef bint valid = False
__pyx_v_valid = 0;
1967: cdef line_sender_utf8 utf8
+1968: _dataframe_cell_str_pyobj_to_utf8(b, &col.cursor, &valid, &utf8)
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_cell_str_pyobj_to_utf8(__pyx_v_b, (&__pyx_v_col->cursor), (&__pyx_v_valid), (&__pyx_v_utf8)); if (unlikely(__pyx_t_1 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 1968, __pyx_L1_error)
+1969: if valid and not line_sender_buffer_column_str(
if (__pyx_v_valid) { } else { __pyx_t_2 = __pyx_v_valid; goto __pyx_L4_bool_binop_done; } /* … */ __pyx_t_3 = (!line_sender_buffer_column_str(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_utf8, (&__pyx_v_err))); __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; /* … */ if (unlikely(__pyx_t_2)) { /* … */ }
1970: ls_buf, col.name, utf8, &err):
+1971: raise c_err_to_py(err)
__pyx_t_4 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 1971, __pyx_L1_error)
1972:
1973:
+1974: cdef void_int _dataframe_serialize_cell_column_str__str_utf8_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_str__str_utf8_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; struct line_sender_utf8 __pyx_v_utf8; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_str__str_utf8_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1975: line_sender_buffer* ls_buf,
1976: qdb_pystr_buf* b,
1977: col_t* col,
1978: PyThreadState** gs) except -1:
+1979: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
1980: cdef line_sender_utf8 utf8
+1981: if _dataframe_arrow_str_utf8(&col.cursor, &utf8.len, &utf8.buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_str_utf8((&__pyx_v_col->cursor), (&__pyx_v_utf8.len), (&__pyx_v_utf8.buf)); if (__pyx_t_1) { /* … */ }
+1982: if not line_sender_buffer_column_str(ls_buf, col.name, utf8, &err):
__pyx_t_1 = (!line_sender_buffer_column_str(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_utf8, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1983: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1983, __pyx_L1_error)
+1984: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1984, __pyx_L1_error)
1985:
+1986: cdef void_int _dataframe_serialize_cell_column_str__str_lrg_utf8_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_str__str_lrg_utf8_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; struct line_sender_utf8 __pyx_v_utf8; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_str__str_lrg_utf8_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1987: line_sender_buffer* ls_buf,
1988: qdb_pystr_buf* b,
1989: col_t* col,
1990: PyThreadState** gs) except -1:
+1991: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
1992: cdef line_sender_utf8 utf8
+1993: if _dataframe_arrow_str_utf8_lrg(&col.cursor, &utf8.len, &utf8.buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_str_utf8_lrg((&__pyx_v_col->cursor), (&__pyx_v_utf8.len), (&__pyx_v_utf8.buf)); if (__pyx_t_1) { /* … */ }
+1994: if not line_sender_buffer_column_str(ls_buf, col.name, utf8, &err):
__pyx_t_1 = (!line_sender_buffer_column_str(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_utf8, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+1995: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1995, __pyx_L1_error)
+1996: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1996, __pyx_L1_error)
1997:
1998:
+1999: cdef void_int _dataframe_serialize_cell_column_str__str_i8_cat(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_str__str_i8_cat(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; struct line_sender_utf8 __pyx_v_utf8; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_str__str_i8_cat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
2000: line_sender_buffer* ls_buf,
2001: qdb_pystr_buf* b,
2002: col_t* col,
2003: PyThreadState** gs) except -1:
+2004: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
2005: cdef line_sender_utf8 utf8
+2006: if _dataframe_arrow_get_cat_i8(&col.cursor, &utf8.len, &utf8.buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_i8((&__pyx_v_col->cursor), (&__pyx_v_utf8.len), (&__pyx_v_utf8.buf)); if (__pyx_t_1) { /* … */ }
+2007: if not line_sender_buffer_column_str(ls_buf, col.name, utf8, &err):
__pyx_t_1 = (!line_sender_buffer_column_str(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_utf8, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+2008: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2008, __pyx_L1_error)
+2009: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2009, __pyx_L1_error)
2010:
2011:
+2012: cdef void_int _dataframe_serialize_cell_column_str__str_i16_cat(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_str__str_i16_cat(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; struct line_sender_utf8 __pyx_v_utf8; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_str__str_i16_cat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
2013: line_sender_buffer* ls_buf,
2014: qdb_pystr_buf* b,
2015: col_t* col,
2016: PyThreadState** gs) except -1:
+2017: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
2018: cdef line_sender_utf8 utf8
+2019: if _dataframe_arrow_get_cat_i16(&col.cursor, &utf8.len, &utf8.buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_i16((&__pyx_v_col->cursor), (&__pyx_v_utf8.len), (&__pyx_v_utf8.buf)); if (__pyx_t_1) { /* … */ }
+2020: if not line_sender_buffer_column_str(ls_buf, col.name, utf8, &err):
__pyx_t_1 = (!line_sender_buffer_column_str(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_utf8, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+2021: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2021, __pyx_L1_error)
+2022: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2022, __pyx_L1_error)
2023:
2024:
+2025: cdef void_int _dataframe_serialize_cell_column_str__str_i32_cat(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_str__str_i32_cat(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; struct line_sender_utf8 __pyx_v_utf8; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_str__str_i32_cat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
2026: line_sender_buffer* ls_buf,
2027: qdb_pystr_buf* b,
2028: col_t* col,
2029: PyThreadState** gs) except -1:
+2030: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
2031: cdef line_sender_utf8 utf8
+2032: if _dataframe_arrow_get_cat_i32(&col.cursor, &utf8.len, &utf8.buf):
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_arrow_get_cat_i32((&__pyx_v_col->cursor), (&__pyx_v_utf8.len), (&__pyx_v_utf8.buf)); if (__pyx_t_1) { /* … */ }
+2033: if not line_sender_buffer_column_str(ls_buf, col.name, utf8, &err):
__pyx_t_1 = (!line_sender_buffer_column_str(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_utf8, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+2034: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2034, __pyx_L1_error)
+2035: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2035, __pyx_L1_error)
2036:
2037:
+2038: cdef void_int _dataframe_serialize_cell_column_ts__dt64ns_numpy(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_ts__dt64ns_numpy(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int64_t *__pyx_v_access; int64_t __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_ts__dt64ns_numpy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
2039: line_sender_buffer* ls_buf,
2040: qdb_pystr_buf* b,
2041: col_t* col,
2042: PyThreadState** gs) except -1:
+2043: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+2044: cdef int64_t* access = <int64_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((int64_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+2045: cdef int64_t cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+2046: if cell != _NAT:
__pyx_t_1 = (__pyx_v_cell != __pyx_v_7questdb_7ingress__NAT); if (__pyx_t_1) { /* … */ }
+2047: if not line_sender_buffer_column_ts_nanos(ls_buf, col.name, cell, &err):
__pyx_t_1 = (!line_sender_buffer_column_ts_nanos(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_cell, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+2048: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2048, __pyx_L1_error)
+2049: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2049, __pyx_L1_error)
2050:
+2051: cdef void_int _dataframe_serialize_cell_column_arr_f64__arr_f64_numpyobj(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_arr_f64__arr_f64_numpyobj(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { PyObject **__pyx_v_access; PyObject *__pyx_v_cell; PyArrayObject *__pyx_v_arr; npy_int __pyx_v_arr_type; PyArray_Descr *__pyx_v_arr_descr = 0; size_t __pyx_v_rank; uint8_t const *__pyx_v_data_ptr; struct line_sender_error *__pyx_v_err; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_arr_f64__arr_f64_numpyobj", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_arr_descr); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2052: line_sender_buffer* ls_buf,
2053: qdb_pystr_buf* b,
2054: col_t* col) except -1:
+2055: cdef PyObject** access = <PyObject**>col.cursor.chunk.buffers[1]
__pyx_v_access = ((PyObject **)(__pyx_v_col->cursor.chunk->buffers[1]));
+2056: cdef PyObject* cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+2057: cdef PyArrayObject* arr = <PyArrayObject*> cell
__pyx_v_arr = ((PyArrayObject *)__pyx_v_cell);
+2058: cdef npy_int arr_type = PyArray_TYPE(arr)
__pyx_v_arr_type = PyArray_TYPE(__pyx_v_arr);
2059: cdef cnp.dtype arr_descr
+2060: if arr_type != NPY_DOUBLE:
__pyx_t_1 = (__pyx_v_arr_type != NPY_DOUBLE); if (unlikely(__pyx_t_1)) { /* … */ }
+2061: arr_descr = cnp.PyArray_DescrFromType(arr_type)
__pyx_t_2 = ((PyObject *)PyArray_DescrFromType(__pyx_v_arr_type)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_arr_descr = ((PyArray_Descr *)__pyx_t_2); __pyx_t_2 = 0;
+2062: raise IngressError(
__pyx_t_3 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+2063: IngressErrorCode.ArrayWriteToBufferError,
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ArrayWriteToBufferError); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2064: f'Only float64 numpy arrays are supported, got dtype: {arr_descr}')
__pyx_t_5 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_arr_descr), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Only_float64_numpy_arrays_are_su, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_8 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_3); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_8 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_6, __pyx_t_7}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2062, __pyx_L1_error)
2065: cdef:
+2066: size_t rank = PyArray_NDIM(arr)
__pyx_v_rank = PyArray_NDIM(__pyx_v_arr);
+2067: const uint8_t* data_ptr = <const uint8_t *> PyArray_DATA(arr)
__pyx_v_data_ptr = ((uint8_t const *)PyArray_DATA(__pyx_v_arr));
+2068: line_sender_error * err = NULL
__pyx_v_err = NULL;
+2069: if not line_sender_buffer_column_f64_arr_byte_strides(
__pyx_t_1 = (!line_sender_buffer_column_f64_arr_byte_strides(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_rank, ((size_t const *)PyArray_DIMS(__pyx_v_arr)), ((Py_ssize_t const *)PyArray_STRIDES(__pyx_v_arr)), __pyx_v_data_ptr, PyArray_NBYTES(__pyx_v_arr), (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
2070: ls_buf,
2071: col.name,
2072: rank,
2073: <const size_t*> PyArray_DIMS(arr),
2074: <const ssize_t*> PyArray_STRIDES(arr), # N.B.: Strides expressed as byte jumps
2075: data_ptr,
2076: PyArray_NBYTES(arr),
2077: &err):
+2078: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2078, __pyx_L1_error)
2079:
+2080: cdef void_int _dataframe_serialize_cell_column_ts__dt64ns_tz_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_ts__dt64ns_tz_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; int64_t __pyx_v_cell; int64_t *__pyx_v_access; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_column_ts__dt64ns_tz_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
2081: line_sender_buffer* ls_buf,
2082: qdb_pystr_buf* b,
2083: col_t* col,
2084: PyThreadState** gs) except -1:
+2085: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+2086: cdef bint valid = _dataframe_arrow_is_valid(&col.cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid((&__pyx_v_col->cursor));
2087: cdef int64_t cell
2088: cdef int64_t* access
+2089: if valid:
if (__pyx_v_valid) { /* … */ }
+2090: access = <int64_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((int64_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+2091: cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+2092: if not line_sender_buffer_column_ts_nanos(ls_buf, col.name, cell, &err):
__pyx_t_1 = (!line_sender_buffer_column_ts_nanos(__pyx_v_ls_buf, __pyx_v_col->name, __pyx_v_cell, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+2093: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2093, __pyx_L1_error)
+2094: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2094, __pyx_L1_error)
2095:
2096:
+2097: cdef void_int _dataframe_serialize_cell_at_dt64ns_numpy(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_at_dt64ns_numpy(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int64_t *__pyx_v_access; int64_t __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_at_dt64ns_numpy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
2098: line_sender_buffer* ls_buf,
2099: qdb_pystr_buf* b,
2100: col_t* col,
2101: PyThreadState** gs) except -1:
+2102: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+2103: cdef int64_t* access = <int64_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((int64_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+2104: cdef int64_t cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
+2105: if cell == _NAT:
__pyx_t_1 = (__pyx_v_cell == __pyx_v_7questdb_7ingress__NAT); if (__pyx_t_1) { /* … */ goto __pyx_L3; }
+2106: if not line_sender_buffer_at_now(ls_buf, &err):
__pyx_t_1 = (!line_sender_buffer_at_now(__pyx_v_ls_buf, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+2107: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2107, __pyx_L1_error)
+2108: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2108, __pyx_L1_error)
2109: else:
2110: # Note: ls_buf will validate against negative numbers.
+2111: if not line_sender_buffer_at_nanos(ls_buf, cell, &err):
/*else*/ { __pyx_t_1 = (!line_sender_buffer_at_nanos(__pyx_v_ls_buf, __pyx_v_cell, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ } } __pyx_L3:;
+2112: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2112, __pyx_L1_error)
+2113: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2113, __pyx_L1_error)
2114:
2115:
+2116: cdef void_int _dataframe_serialize_cell_at_dt64ns_tz_arrow(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell_at_dt64ns_tz_arrow(struct line_sender_buffer *__pyx_v_ls_buf, CYTHON_UNUSED struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_err; int __pyx_v_valid; int64_t *__pyx_v_access; int64_t __pyx_v_cell; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell_at_dt64ns_tz_arrow", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
2117: line_sender_buffer* ls_buf,
2118: qdb_pystr_buf* b,
2119: col_t* col,
2120: PyThreadState** gs) except -1:
+2121: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
+2122: cdef bint valid = _dataframe_arrow_is_valid(&col.cursor)
__pyx_v_valid = __pyx_f_7questdb_7ingress__dataframe_arrow_is_valid((&__pyx_v_col->cursor));
2123: cdef int64_t* access
2124: cdef int64_t cell
+2125: if valid:
if (__pyx_v_valid) { /* … */ goto __pyx_L3; }
+2126: access = <int64_t*>col.cursor.chunk.buffers[1]
__pyx_v_access = ((int64_t *)(__pyx_v_col->cursor.chunk->buffers[1]));
+2127: cell = access[col.cursor.offset]
__pyx_v_cell = (__pyx_v_access[__pyx_v_col->cursor.offset]);
2128: # Note: ls_buf will validate against negative numbers.
+2129: if not line_sender_buffer_at_nanos(ls_buf, cell, &err):
__pyx_t_1 = (!line_sender_buffer_at_nanos(__pyx_v_ls_buf, __pyx_v_cell, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ }
+2130: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2130, __pyx_L1_error)
+2131: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2131, __pyx_L1_error)
2132: else:
+2133: if not line_sender_buffer_at_now(ls_buf, &err):
/*else*/ { __pyx_t_1 = (!line_sender_buffer_at_now(__pyx_v_ls_buf, (&__pyx_v_err))); if (unlikely(__pyx_t_1)) { /* … */ } } __pyx_L3:;
+2134: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2134, __pyx_L1_error)
+2135: raise c_err_to_py(err)
__pyx_t_2 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2135, __pyx_L1_error)
2136:
2137:
+2138: cdef void_int _dataframe_serialize_cell(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_serialize_cell(struct line_sender_buffer *__pyx_v_ls_buf, struct qdb_pystr_buf *__pyx_v_b, struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col, PyThreadState **__pyx_v_gs) { enum __pyx_t_7questdb_7ingress_col_dispatch_code_t __pyx_v_dc; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("questdb.ingress._dataframe_serialize_cell", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
2139: line_sender_buffer* ls_buf,
2140: qdb_pystr_buf* b,
2141: col_t* col,
2142: PyThreadState** gs) except -1:
+2143: cdef col_dispatch_code_t dc = col.dispatch_code
__pyx_t_1 = __pyx_v_col->dispatch_code; __pyx_v_dc = __pyx_t_1;
2144: # Note!: Code below will generate a `switch` statement.
2145: # Ensure this happens! Don't break the `dc == ...` pattern.
+2146: if dc == col_dispatch_code_t.col_dispatch_code_skip_nulls:
switch (__pyx_v_dc) { case __pyx_e_7questdb_7ingress_col_dispatch_code_skip_nulls: break; case __pyx_e_7questdb_7ingress_col_dispatch_code_table__str_pyobj:
2147: pass # We skip a null column. Nothing to do.
+2148: elif dc == col_dispatch_code_t.col_dispatch_code_table__str_pyobj:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_table__str_utf8_arrow:
+2149: _dataframe_serialize_cell_table__str_pyobj(ls_buf, b, col)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_table__str_pyobj(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2149, __pyx_L1_error)
+2150: elif dc == col_dispatch_code_t.col_dispatch_code_table__str_utf8_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_table__str_lrg_utf8_arrow:
+2151: _dataframe_serialize_cell_table__str_utf8_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_table__str_utf8_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2151, __pyx_L1_error)
+2152: elif dc == col_dispatch_code_t.col_dispatch_code_table__str_lrg_utf8_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_table__str_i8_cat:
+2153: _dataframe_serialize_cell_table__str_lrg_utf8_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_table__str_lrg_utf8_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2153, __pyx_L1_error)
+2154: elif dc == col_dispatch_code_t.col_dispatch_code_table__str_i8_cat:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_table__str_i16_cat:
+2155: _dataframe_serialize_cell_table__str_i8_cat(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_table__str_i8_cat(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2155, __pyx_L1_error)
+2156: elif dc == col_dispatch_code_t.col_dispatch_code_table__str_i16_cat:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_table__str_i32_cat:
+2157: _dataframe_serialize_cell_table__str_i16_cat(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_table__str_i16_cat(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2157, __pyx_L1_error)
+2158: elif dc == col_dispatch_code_t.col_dispatch_code_table__str_i32_cat:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_symbol__str_pyobj:
+2159: _dataframe_serialize_cell_table__str_i32_cat(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_table__str_i32_cat(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2159, __pyx_L1_error)
+2160: elif dc == col_dispatch_code_t.col_dispatch_code_symbol__str_pyobj:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_symbol__str_utf8_arrow:
+2161: _dataframe_serialize_cell_symbol__str_pyobj(ls_buf, b, col)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_symbol__str_pyobj(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2161, __pyx_L1_error)
+2162: elif dc == col_dispatch_code_t.col_dispatch_code_symbol__str_utf8_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_symbol__str_lrg_utf8_arrow:
+2163: _dataframe_serialize_cell_symbol__str_utf8_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_symbol__str_utf8_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2163, __pyx_L1_error)
+2164: elif dc == col_dispatch_code_t.col_dispatch_code_symbol__str_lrg_utf8_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_symbol__str_i8_cat:
+2165: _dataframe_serialize_cell_symbol__str_lrg_utf8_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_symbol__str_lrg_utf8_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2165, __pyx_L1_error)
+2166: elif dc == col_dispatch_code_t.col_dispatch_code_symbol__str_i8_cat:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_symbol__str_i16_cat:
+2167: _dataframe_serialize_cell_symbol__str_i8_cat(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_symbol__str_i8_cat(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2167, __pyx_L1_error)
+2168: elif dc == col_dispatch_code_t.col_dispatch_code_symbol__str_i16_cat:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_symbol__str_i32_cat:
+2169: _dataframe_serialize_cell_symbol__str_i16_cat(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_symbol__str_i16_cat(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2169, __pyx_L1_error)
+2170: elif dc == col_dispatch_code_t.col_dispatch_code_symbol__str_i32_cat:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_bool__bool_pyobj:
+2171: _dataframe_serialize_cell_symbol__str_i32_cat(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_symbol__str_i32_cat(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2171, __pyx_L1_error)
+2172: elif dc == col_dispatch_code_t.col_dispatch_code_column_bool__bool_pyobj:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_bool__bool_numpy:
+2173: _dataframe_serialize_cell_column_bool__bool_pyobj(ls_buf, b, col)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_bool__bool_pyobj(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2173, __pyx_L1_error)
+2174: elif dc == col_dispatch_code_t.col_dispatch_code_column_bool__bool_numpy:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_bool__bool_arrow:
+2175: _dataframe_serialize_cell_column_bool__bool_numpy(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_bool__bool_numpy(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2175, __pyx_L1_error)
+2176: elif dc == col_dispatch_code_t.col_dispatch_code_column_bool__bool_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__int_pyobj:
+2177: _dataframe_serialize_cell_column_bool__bool_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_bool__bool_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2177, __pyx_L1_error)
+2178: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__int_pyobj:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u8_numpy:
+2179: _dataframe_serialize_cell_column_i64__int_pyobj(ls_buf, b, col)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__int_pyobj(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2179, __pyx_L1_error)
+2180: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__u8_numpy:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i8_numpy:
+2181: _dataframe_serialize_cell_column_i64__u8_numpy(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u8_numpy(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2181, __pyx_L1_error)
+2182: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__i8_numpy:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u16_numpy:
+2183: _dataframe_serialize_cell_column_i64__i8_numpy(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i8_numpy(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2183, __pyx_L1_error)
+2184: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__u16_numpy:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i16_numpy:
+2185: _dataframe_serialize_cell_column_i64__u16_numpy(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u16_numpy(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2185, __pyx_L1_error)
+2186: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__i16_numpy:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u32_numpy:
+2187: _dataframe_serialize_cell_column_i64__i16_numpy(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i16_numpy(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2187, __pyx_L1_error)
+2188: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__u32_numpy:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i32_numpy:
+2189: _dataframe_serialize_cell_column_i64__u32_numpy(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u32_numpy(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2189, __pyx_L1_error)
+2190: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__i32_numpy:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u64_numpy:
+2191: _dataframe_serialize_cell_column_i64__i32_numpy(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i32_numpy(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2191, __pyx_L1_error)
+2192: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__u64_numpy:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i64_numpy:
+2193: _dataframe_serialize_cell_column_i64__u64_numpy(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u64_numpy(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2193, __pyx_L1_error)
+2194: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__i64_numpy:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u8_arrow:
+2195: _dataframe_serialize_cell_column_i64__i64_numpy(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i64_numpy(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2195, __pyx_L1_error)
+2196: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__u8_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i8_arrow:
+2197: _dataframe_serialize_cell_column_i64__u8_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u8_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2197, __pyx_L1_error)
+2198: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__i8_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u16_arrow:
+2199: _dataframe_serialize_cell_column_i64__i8_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i8_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2199, __pyx_L1_error)
+2200: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__u16_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i16_arrow:
+2201: _dataframe_serialize_cell_column_i64__u16_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u16_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2201, __pyx_L1_error)
+2202: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__i16_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u32_arrow:
+2203: _dataframe_serialize_cell_column_i64__i16_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i16_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2203, __pyx_L1_error)
+2204: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__u32_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i32_arrow:
+2205: _dataframe_serialize_cell_column_i64__u32_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u32_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2205, __pyx_L1_error)
+2206: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__i32_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__u64_arrow:
+2207: _dataframe_serialize_cell_column_i64__i32_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i32_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2207, __pyx_L1_error)
+2208: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__u64_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_i64__i64_arrow:
+2209: _dataframe_serialize_cell_column_i64__u64_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__u64_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2209, __pyx_L1_error)
+2210: elif dc == col_dispatch_code_t.col_dispatch_code_column_i64__i64_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_f64__float_pyobj:
+2211: _dataframe_serialize_cell_column_i64__i64_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_i64__i64_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2211, __pyx_L1_error)
+2212: elif dc == col_dispatch_code_t.col_dispatch_code_column_f64__float_pyobj:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_f64__f32_numpy:
+2213: _dataframe_serialize_cell_column_f64__float_pyobj(ls_buf, b, col)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_f64__float_pyobj(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2213, __pyx_L1_error)
+2214: elif dc == col_dispatch_code_t.col_dispatch_code_column_f64__f32_numpy:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_f64__f64_numpy:
+2215: _dataframe_serialize_cell_column_f64__f32_numpy(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_f64__f32_numpy(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2215, __pyx_L1_error)
+2216: elif dc == col_dispatch_code_t.col_dispatch_code_column_f64__f64_numpy:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_f64__f32_arrow:
+2217: _dataframe_serialize_cell_column_f64__f64_numpy(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_f64__f64_numpy(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2217, __pyx_L1_error)
+2218: elif dc == col_dispatch_code_t.col_dispatch_code_column_f64__f32_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_f64__f64_arrow:
+2219: _dataframe_serialize_cell_column_f64__f32_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_f64__f32_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2219, __pyx_L1_error)
+2220: elif dc == col_dispatch_code_t.col_dispatch_code_column_f64__f64_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_str__str_pyobj:
+2221: _dataframe_serialize_cell_column_f64__f64_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_f64__f64_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2221, __pyx_L1_error)
+2222: elif dc == col_dispatch_code_t.col_dispatch_code_column_str__str_pyobj:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_str__str_utf8_arrow:
+2223: _dataframe_serialize_cell_column_str__str_pyobj(ls_buf, b, col)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_str__str_pyobj(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2223, __pyx_L1_error)
+2224: elif dc == col_dispatch_code_t.col_dispatch_code_column_str__str_utf8_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_str__str_lrg_utf8_arrow:
+2225: _dataframe_serialize_cell_column_str__str_utf8_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_str__str_utf8_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2225, __pyx_L1_error)
+2226: elif dc == col_dispatch_code_t.col_dispatch_code_column_str__str_lrg_utf8_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_str__str_i8_cat:
+2227: _dataframe_serialize_cell_column_str__str_lrg_utf8_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_str__str_lrg_utf8_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2227, __pyx_L1_error)
+2228: elif dc == col_dispatch_code_t.col_dispatch_code_column_str__str_i8_cat:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_str__str_i16_cat:
+2229: _dataframe_serialize_cell_column_str__str_i8_cat(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_str__str_i8_cat(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2229, __pyx_L1_error)
+2230: elif dc == col_dispatch_code_t.col_dispatch_code_column_str__str_i16_cat:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_str__str_i32_cat:
+2231: _dataframe_serialize_cell_column_str__str_i16_cat(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_str__str_i16_cat(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2231, __pyx_L1_error)
+2232: elif dc == col_dispatch_code_t.col_dispatch_code_column_str__str_i32_cat:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_ts__dt64ns_numpy:
+2233: _dataframe_serialize_cell_column_str__str_i32_cat(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_str__str_i32_cat(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2233, __pyx_L1_error)
+2234: elif dc == col_dispatch_code_t.col_dispatch_code_column_ts__dt64ns_numpy:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_arr_f64__arr_f64_numpyobj:
+2235: _dataframe_serialize_cell_column_ts__dt64ns_numpy(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_ts__dt64ns_numpy(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2235, __pyx_L1_error)
+2236: elif dc == col_dispatch_code_t.col_dispatch_code_column_arr_f64__arr_f64_numpyobj:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_column_ts__dt64ns_tz_arrow:
+2237: _dataframe_serialize_cell_column_arr_f64__arr_f64_numpyobj(ls_buf, b, col)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_arr_f64__arr_f64_numpyobj(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2237, __pyx_L1_error)
+2238: elif dc == col_dispatch_code_t.col_dispatch_code_column_ts__dt64ns_tz_arrow:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_at__dt64ns_numpy:
+2239: _dataframe_serialize_cell_column_ts__dt64ns_tz_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_column_ts__dt64ns_tz_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2239, __pyx_L1_error)
+2240: elif dc == col_dispatch_code_t.col_dispatch_code_at__dt64ns_numpy:
break; case __pyx_e_7questdb_7ingress_col_dispatch_code_at__dt64ns_tz_arrow:
+2241: _dataframe_serialize_cell_at_dt64ns_numpy(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_at_dt64ns_numpy(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2241, __pyx_L1_error)
+2242: elif dc == col_dispatch_code_t.col_dispatch_code_at__dt64ns_tz_arrow:
break; default:
+2243: _dataframe_serialize_cell_at_dt64ns_tz_arrow(ls_buf, b, col, gs)
__pyx_t_2 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell_at_dt64ns_tz_arrow(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, __pyx_v_gs); if (unlikely(__pyx_t_2 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2243, __pyx_L1_error)
2244: else:
+2245: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2245, __pyx_L1_error)
+2246: raise RuntimeError(f"Unknown column dispatch code: {dc}")
__pyx_t_4 = NULL; __Pyx_INCREF(__pyx_builtin_RuntimeError); __pyx_t_5 = __pyx_builtin_RuntimeError; __pyx_t_6 = __Pyx_PyUnicode_From_enum____pyx_t_7questdb_7ingress_col_dispatch_code_t(__pyx_v_dc, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Unknown_column_dispatch_code, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_8 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 2246, __pyx_L1_error) break; }
2247: # See earlier note about switch statement generation.
2248: # Don't add complex conditions above!
2249:
2250:
+2251: cdef void _dataframe_col_advance(col_t* col) noexcept nogil:
static void __pyx_f_7questdb_7ingress__dataframe_col_advance(struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col) { struct __pyx_t_7questdb_7ingress_col_cursor_t *__pyx_v_cursor; size_t __pyx_v_new_chunk; /* … */ /* function exit code */ }
2252: # Branchless version of:
2253: # cdef bint new_chunk = cursor.offset == <size_t>cursor.chunk.length
2254: # if new_chunk == 0:
2255: # cursor.chunk_index += 1
2256: # cursor.chunk += 1 # pointer advance
2257: #
2258: # if new_chunk:
2259: # cursor.offset = cursor.chunk.offset
2260: # else:
2261: # cursor.offset += 1
2262: #
2263: # (Checked with Godbolt, GCC -O3 code was rather "jumpy")
+2264: cdef col_cursor_t* cursor = &col.cursor
__pyx_v_cursor = (&__pyx_v_col->cursor);
2265: cdef size_t new_chunk # disguised bint. Either 0 or 1.
+2266: cursor.offset += 1
__pyx_v_cursor->offset = (__pyx_v_cursor->offset + 1);
+2267: new_chunk = cursor.offset == <size_t>cursor.chunk.length
__pyx_v_new_chunk = (__pyx_v_cursor->offset == ((size_t)__pyx_v_cursor->chunk->length));
+2268: cursor.chunk_index += new_chunk
__pyx_v_cursor->chunk_index = (__pyx_v_cursor->chunk_index + __pyx_v_new_chunk);
+2269: cursor.chunk += new_chunk
__pyx_v_cursor->chunk = (__pyx_v_cursor->chunk + __pyx_v_new_chunk);
2270: # Note: We get away with this because we've allocated one extra blank chunk.
2271: # This ensures that accessing `cursor.chunk.offset` doesn't segfault.
+2272: cursor.offset = (
__pyx_v_cursor->offset = ((__pyx_v_new_chunk * __pyx_v_cursor->chunk->offset) + ((!(__pyx_v_new_chunk != 0)) * __pyx_v_cursor->offset));
2273: (new_chunk * cursor.chunk.offset) +
2274: ((not new_chunk) * cursor.offset))
2275:
2276:
+2277: cdef void_int _dataframe_handle_auto_flush(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe_handle_auto_flush(struct __pyx_t_7questdb_7ingress_auto_flush_t const *__pyx_v_af, struct line_sender_buffer *__pyx_v_ls_buf, PyThreadState **__pyx_v_gs) { struct line_sender_error *__pyx_v_flush_err; struct line_sender_error *__pyx_v_marker_err; int __pyx_v_flush_ok; int __pyx_v_marker_ok; int __pyx_v_had_gil; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("questdb.ingress._dataframe_handle_auto_flush", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
2278: const auto_flush_t* af,
2279: line_sender_buffer* ls_buf,
2280: PyThreadState** gs) except -1:
2281: cdef line_sender_error* flush_err
2282: cdef line_sender_error* marker_err
2283: cdef bint flush_ok
2284: cdef bint marker_ok
+2285: if (af.sender == NULL) or (not should_auto_flush(&af.mode, ls_buf, af.last_flush_ms[0])):
__pyx_t_2 = (__pyx_v_af->sender == NULL); if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = __pyx_f_7questdb_7ingress_should_auto_flush((&__pyx_v_af->mode), __pyx_v_ls_buf, (__pyx_v_af->last_flush_ms[0])); if (unlikely(__pyx_t_2 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(1, 2285, __pyx_L1_error) __pyx_t_3 = (!__pyx_t_2); __pyx_t_1 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+2286: return 0
__pyx_r = 0; goto __pyx_L0;
2287:
2288: # Always temporarily release GIL during a flush.
+2289: had_gil = _ensure_doesnt_have_gil(gs)
__pyx_t_1 = __pyx_f_7questdb_7ingress__ensure_doesnt_have_gil(__pyx_v_gs); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(1, 2289, __pyx_L1_error) __pyx_v_had_gil = __pyx_t_1;
+2290: flush_ok = line_sender_flush(af.sender, ls_buf, &flush_err)
__pyx_v_flush_ok = line_sender_flush(__pyx_v_af->sender, __pyx_v_ls_buf, (&__pyx_v_flush_err));
+2291: if flush_ok:
if (__pyx_v_flush_ok) { /* … */ goto __pyx_L6; }
+2292: af.last_flush_ms[0] = line_sender_now_micros() // 1000
(__pyx_v_af->last_flush_ms[0]) = __Pyx_div_int64_t(line_sender_now_micros(), 0x3E8, 1);
2293: else:
2294: # To avoid flush reattempt on Sender.__exit__.
+2295: line_sender_buffer_clear(ls_buf)
/*else*/ { line_sender_buffer_clear(__pyx_v_ls_buf); } __pyx_L6:;
2296:
2297: # Flushing will have cleared the marker: We need to set it again
2298: # We need this also on error due to our error handling logic which will
2299: # try to rewind the buffer on error and fail if the marker is unset.
+2300: marker_ok = line_sender_buffer_set_marker(ls_buf, &marker_err)
__pyx_v_marker_ok = line_sender_buffer_set_marker(__pyx_v_ls_buf, (&__pyx_v_marker_err));
2301:
+2302: if had_gil or (not flush_ok) or (not marker_ok):
if (!__pyx_v_had_gil) { } else { __pyx_t_1 = __pyx_v_had_gil; goto __pyx_L8_bool_binop_done; } __pyx_t_3 = (!__pyx_v_flush_ok); if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L8_bool_binop_done; } __pyx_t_3 = (!__pyx_v_marker_ok); __pyx_t_1 = __pyx_t_3; __pyx_L8_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+2303: _ensure_has_gil(gs)
__pyx_f_7questdb_7ingress__ensure_has_gil(__pyx_v_gs); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2303, __pyx_L1_error)
2304:
+2305: if not flush_ok:
__pyx_t_1 = (!__pyx_v_flush_ok); if (unlikely(__pyx_t_1)) { /* … */ }
+2306: raise c_err_to_py_fmt(flush_err, _FLUSH_FMT)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_FLUSH_FMT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_4))) __PYX_ERR(1, 2306, __pyx_L1_error) __pyx_t_5 = __pyx_f_7questdb_7ingress_c_err_to_py_fmt(__pyx_v_flush_err, ((PyObject*)__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(1, 2306, __pyx_L1_error)
2307:
2308: # The flush error takes precedence over the marker error.
+2309: if not marker_ok:
__pyx_t_1 = (!__pyx_v_marker_ok); if (unlikely(__pyx_t_1)) { /* … */ }
+2310: raise c_err_to_py(marker_err)
__pyx_t_5 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_marker_err); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(1, 2310, __pyx_L1_error)
2311:
2312:
2313: # Every how many cells to release and re-acquire the Python GIL.
2314: #
2315: # We've done some perf testing with some mixed column dtypes.
2316: # On a modern CPU we're doing over 8 million pandas cells per second.
2317: # By default, `sys.getswitchinterval()` is 0.005 seconds.
2318: # To accomodate this, we'd need to release the GIL every 40,000 cells.
2319: # This will be divided by the column count to get the row gil blip interval.
+2320: cdef size_t _CELL_GIL_BLIP_INTERVAL = 40000
__pyx_v_7questdb_7ingress__CELL_GIL_BLIP_INTERVAL = 0x9C40;
2321:
2322:
+2323: cdef void_int _dataframe(
static __pyx_t_7questdb_7ingress_void_int __pyx_f_7questdb_7ingress__dataframe(struct __pyx_t_7questdb_7ingress_auto_flush_t __pyx_v_af, struct line_sender_buffer *__pyx_v_ls_buf, struct qdb_pystr_buf *__pyx_v_b, PyObject *__pyx_v_df, PyObject *__pyx_v_table_name, PyObject *__pyx_v_table_name_col, PyObject *__pyx_v_symbols, PyObject *__pyx_v_at) { size_t __pyx_v_col_count; struct line_sender_table_name __pyx_v_c_table_name; int64_t __pyx_v_at_value; struct __pyx_t_7questdb_7ingress_col_t_arr __pyx_v_cols; int __pyx_v_any_cols_need_gil; struct qdb_pystr_pos __pyx_v_str_buf_marker; size_t __pyx_v_row_count; struct line_sender_error *__pyx_v_err; size_t __pyx_v_row_index; size_t __pyx_v_col_index; struct __pyx_t_7questdb_7ingress_col_t *__pyx_v_col; size_t __pyx_v_row_gil_blip_interval; PyThreadState *__pyx_v_gs; int __pyx_v_was_serializing_cell; PyObject *__pyx_v_e = NULL; __pyx_t_7questdb_7ingress_void_int __pyx_r; /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_20); __Pyx_XDECREF(__pyx_t_21); __Pyx_XDECREF(__pyx_t_22); __Pyx_XDECREF(__pyx_t_23); __Pyx_XDECREF(__pyx_t_24); __Pyx_XDECREF(__pyx_t_25); __Pyx_XDECREF(__pyx_t_27); __Pyx_XDECREF(__pyx_t_28); __Pyx_XDECREF(__pyx_t_29); __Pyx_XDECREF(__pyx_t_30); __Pyx_AddTraceback("questdb.ingress._dataframe", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_e); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2324: auto_flush_t af,
2325: line_sender_buffer* ls_buf,
2326: qdb_pystr_buf* b,
2327: object df,
2328: object table_name,
2329: object table_name_col,
2330: object symbols,
2331: object at) except -1:
2332: cdef size_t col_count
2333: cdef line_sender_table_name c_table_name
+2334: cdef int64_t at_value = _AT_IS_SET_BY_COLUMN
__pyx_v_at_value = __pyx_v_7questdb_7ingress__AT_IS_SET_BY_COLUMN;
+2335: cdef col_t_arr cols = col_t_arr_blank()
__pyx_v_cols = __pyx_f_7questdb_7ingress_col_t_arr_blank();
+2336: cdef bint any_cols_need_gil = False
__pyx_v_any_cols_need_gil = 0;
2337: cdef qdb_pystr_pos str_buf_marker
2338: cdef size_t row_count
+2339: cdef line_sender_error* err = NULL
__pyx_v_err = NULL;
2340: cdef size_t row_index
2341: cdef size_t col_index
2342: cdef col_t* col
2343: cdef size_t row_gil_blip_interval
+2344: cdef PyThreadState* gs = NULL # GIL state. NULL means we have the GIL.
__pyx_v_gs = NULL;
2345: cdef bint had_gil
+2346: cdef bint was_serializing_cell = False
__pyx_v_was_serializing_cell = 0;
2347:
+2348: _dataframe_may_import_deps()
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_may_import_deps(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2349: _dataframe_check_is_dataframe(df)
__pyx_t_1 = __pyx_f_7questdb_7ingress__dataframe_check_is_dataframe(__pyx_v_df); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2350: row_count = len(df)
__pyx_t_2 = PyObject_Length(__pyx_v_df); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2350, __pyx_L1_error) __pyx_v_row_count = __pyx_t_2;
+2351: col_count = len(df.columns)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2351, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_col_count = __pyx_t_2;
+2352: if (col_count == 0) or (row_count == 0):
__pyx_t_4 = (__pyx_v_col_count == 0); if (!__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = (__pyx_v_row_count == 0); __pyx_t_3 = __pyx_t_4; __pyx_L4_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+2353: return 0 # Nothing to do.
__pyx_r = 0; goto __pyx_L0;
2354:
+2355: try:
/*try:*/ { { /*try:*/ { /* … */ } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L14_try_end; __pyx_L9_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0; __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* … */ __pyx_L11_except_error:; __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); goto __pyx_L7_error; __pyx_L14_try_end:; } }
+2356: qdb_pystr_buf_clear(b)
qdb_pystr_buf_clear(__pyx_v_b);
+2357: cols = col_t_arr_new(col_count)
__pyx_v_cols = __pyx_f_7questdb_7ingress_col_t_arr_new(__pyx_v_col_count);
+2358: _dataframe_resolve_args(
__pyx_t_9 = __pyx_f_7questdb_7ingress__dataframe_resolve_args(__pyx_v_df, __pyx_v_table_name, __pyx_v_table_name_col, __pyx_v_symbols, __pyx_t_1, __pyx_v_b, __pyx_v_col_count, (&__pyx_v_c_table_name), (&__pyx_v_at_value), (&__pyx_v_cols), (&__pyx_v_any_cols_need_gil)); if (unlikely(__pyx_t_9 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2358, __pyx_L9_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2359: df,
2360: table_name,
2361: table_name_col,
2362: symbols,
+2363: at if not isinstance(at, ServerTimestampType) else None,
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ServerTimestampType); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2363, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = PyObject_IsInstance(__pyx_v_at, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 2363, __pyx_L9_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_4 = (!__pyx_t_3); if (__pyx_t_4) { __Pyx_INCREF(__pyx_v_at); __pyx_t_1 = __pyx_v_at; } else { __Pyx_INCREF(Py_None); __pyx_t_1 = Py_None; }
2364: b,
2365: col_count,
2366: &c_table_name,
2367: &at_value,
2368: &cols,
2369: &any_cols_need_gil)
2370:
2371: # We've used the str buffer up to a point for the headers.
2372: # Instead of clearing it (which would clear the headers' memory)
2373: # we will truncate (rewind) back to this position.
+2374: str_buf_marker = qdb_pystr_buf_tell(b)
__pyx_v_str_buf_marker = qdb_pystr_buf_tell(__pyx_v_b);
+2375: line_sender_buffer_clear_marker(ls_buf)
line_sender_buffer_clear_marker(__pyx_v_ls_buf);
2376:
2377: # On error, undo all added lines.
+2378: if not line_sender_buffer_set_marker(ls_buf, &err):
__pyx_t_4 = (!line_sender_buffer_set_marker(__pyx_v_ls_buf, (&__pyx_v_err))); if (unlikely(__pyx_t_4)) { /* … */ }
+2379: raise c_err_to_py(err)
__pyx_t_1 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2379, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 2379, __pyx_L9_error)
2380:
+2381: row_gil_blip_interval = _CELL_GIL_BLIP_INTERVAL // col_count
if (unlikely(__pyx_v_col_count == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(1, 2381, __pyx_L9_error) } __pyx_v_row_gil_blip_interval = (__pyx_v_7questdb_7ingress__CELL_GIL_BLIP_INTERVAL / __pyx_v_col_count);
+2382: if row_gil_blip_interval < 400: # ceiling reached at 100 columns
__pyx_t_4 = (__pyx_v_row_gil_blip_interval < 0x190); if (__pyx_t_4) { /* … */ }
+2383: row_gil_blip_interval = 400
__pyx_v_row_gil_blip_interval = 0x190;
+2384: try:
{ /*try:*/ { /* … */ } __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L22_try_end; __pyx_L17_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* … */ __pyx_L19_except_error:; __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); goto __pyx_L9_error; __pyx_L22_try_end:; }
2385: # Don't move this logic up! We need the GIL to execute a `try`.
2386: # Also we can't have any other `try` blocks between here and the
2387: # `finally` block.
+2388: if not any_cols_need_gil:
__pyx_t_4 = (!__pyx_v_any_cols_need_gil); if (__pyx_t_4) { /* … */ }
+2389: _ensure_doesnt_have_gil(&gs)
__pyx_t_4 = __pyx_f_7questdb_7ingress__ensure_doesnt_have_gil((&__pyx_v_gs)); if (unlikely(__pyx_t_4 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(1, 2389, __pyx_L17_error)
2390:
+2391: for row_index in range(row_count):
__pyx_t_13 = __pyx_v_row_count; __pyx_t_14 = __pyx_t_13; for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) { __pyx_v_row_index = __pyx_t_15;
+2392: if (gs == NULL) and (row_index % row_gil_blip_interval == 0):
__pyx_t_3 = (__pyx_v_gs == NULL); if (__pyx_t_3) { } else { __pyx_t_4 = __pyx_t_3; goto __pyx_L27_bool_binop_done; } if (unlikely(__pyx_v_row_gil_blip_interval == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(1, 2392, __pyx_L17_error) } __pyx_t_3 = ((__pyx_v_row_index % __pyx_v_row_gil_blip_interval) == 0); __pyx_t_4 = __pyx_t_3; __pyx_L27_bool_binop_done:; if (__pyx_t_4) { /* … */ }
2393: # Release and re-acquire the GIL every so often.
2394: # This is to allow other python threads to run.
2395: # If we hold the GIL for too long, we can starve other
2396: # threads, for example timing out network activity.
+2397: _ensure_doesnt_have_gil(&gs)
__pyx_t_4 = __pyx_f_7questdb_7ingress__ensure_doesnt_have_gil((&__pyx_v_gs)); if (unlikely(__pyx_t_4 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(1, 2397, __pyx_L17_error)
+2398: _ensure_has_gil(&gs)
__pyx_f_7questdb_7ingress__ensure_has_gil((&__pyx_v_gs)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2398, __pyx_L17_error)
2399:
+2400: qdb_pystr_buf_truncate(b, str_buf_marker)
qdb_pystr_buf_truncate(__pyx_v_b, __pyx_v_str_buf_marker);
2401:
2402: # Table-name from `table_name` arg in Python.
+2403: if c_table_name.buf != NULL:
__pyx_t_4 = (__pyx_v_c_table_name.buf != NULL); if (__pyx_t_4) { /* … */ }
+2404: if not line_sender_buffer_table(ls_buf, c_table_name, &err):
__pyx_t_4 = (!line_sender_buffer_table(__pyx_v_ls_buf, __pyx_v_c_table_name, (&__pyx_v_err))); if (unlikely(__pyx_t_4)) { /* … */ }
+2405: _ensure_has_gil(&gs)
__pyx_f_7questdb_7ingress__ensure_has_gil((&__pyx_v_gs)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2405, __pyx_L17_error)
+2406: raise c_err_to_py(err)
__pyx_t_1 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2406, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 2406, __pyx_L17_error)
2407:
2408: # Serialize columns cells.
2409: # Note: Columns are sorted: table name, symbols, fields, at.
+2410: was_serializing_cell = True
__pyx_v_was_serializing_cell = 1;
+2411: for col_index in range(col_count):
__pyx_t_16 = __pyx_v_col_count; __pyx_t_17 = __pyx_t_16; for (__pyx_t_18 = 0; __pyx_t_18 < __pyx_t_17; __pyx_t_18+=1) { __pyx_v_col_index = __pyx_t_18;
+2412: col = &cols.d[col_index]
__pyx_v_col = (&(__pyx_v_cols.d[__pyx_v_col_index]));
+2413: _dataframe_serialize_cell(ls_buf, b, col, &gs) # may raise
__pyx_t_9 = __pyx_f_7questdb_7ingress__dataframe_serialize_cell(__pyx_v_ls_buf, __pyx_v_b, __pyx_v_col, (&__pyx_v_gs)); if (unlikely(__pyx_t_9 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2413, __pyx_L17_error)
+2414: _dataframe_col_advance(col)
__pyx_f_7questdb_7ingress__dataframe_col_advance(__pyx_v_col); }
+2415: was_serializing_cell = False
__pyx_v_was_serializing_cell = 0;
2416:
2417: # Fixed "at" value (not from a column).
+2418: if at_value == _AT_IS_SERVER_NOW:
__pyx_t_4 = (__pyx_v_at_value == __pyx_v_7questdb_7ingress__AT_IS_SERVER_NOW); if (__pyx_t_4) { /* … */ goto __pyx_L33; }
+2419: if not line_sender_buffer_at_now(ls_buf, &err):
__pyx_t_4 = (!line_sender_buffer_at_now(__pyx_v_ls_buf, (&__pyx_v_err))); if (unlikely(__pyx_t_4)) { /* … */ }
+2420: _ensure_has_gil(&gs)
__pyx_f_7questdb_7ingress__ensure_has_gil((&__pyx_v_gs)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2420, __pyx_L17_error)
+2421: raise c_err_to_py(err)
__pyx_t_1 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2421, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 2421, __pyx_L17_error)
+2422: elif at_value >= 0:
__pyx_t_4 = (__pyx_v_at_value >= 0); if (__pyx_t_4) { /* … */ } __pyx_L33:;
+2423: if not line_sender_buffer_at_nanos(ls_buf, at_value, &err):
__pyx_t_4 = (!line_sender_buffer_at_nanos(__pyx_v_ls_buf, __pyx_v_at_value, (&__pyx_v_err))); if (unlikely(__pyx_t_4)) { /* … */ }
+2424: _ensure_has_gil(&gs)
__pyx_f_7questdb_7ingress__ensure_has_gil((&__pyx_v_gs)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2424, __pyx_L17_error)
+2425: raise c_err_to_py(err)
__pyx_t_1 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2425, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 2425, __pyx_L17_error)
2426:
+2427: _dataframe_handle_auto_flush(&af, ls_buf, &gs)
__pyx_t_9 = __pyx_f_7questdb_7ingress__dataframe_handle_auto_flush((&__pyx_v_af), __pyx_v_ls_buf, (&__pyx_v_gs)); if (unlikely(__pyx_t_9 == ((__pyx_t_7questdb_7ingress_void_int)-1))) __PYX_ERR(1, 2427, __pyx_L17_error)
}
+2428: except Exception as e:
__pyx_t_19 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_19) { __Pyx_AddTraceback("questdb.ingress._dataframe", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_20) < 0) __PYX_ERR(1, 2428, __pyx_L19_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_20); __Pyx_INCREF(__pyx_t_8); __pyx_v_e = __pyx_t_8; /*try:*/ { /* … */ /*finally:*/ { __pyx_L41_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_34 = 0; __pyx_t_35 = 0; __pyx_t_36 = 0; __pyx_t_37 = 0; __pyx_t_38 = 0; __pyx_t_39 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0; __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_ExceptionSwap(&__pyx_t_37, &__pyx_t_38, &__pyx_t_39); if ( unlikely(__Pyx_GetException(&__pyx_t_34, &__pyx_t_35, &__pyx_t_36) < 0)) __Pyx_ErrFetch(&__pyx_t_34, &__pyx_t_35, &__pyx_t_36); __Pyx_XGOTREF(__pyx_t_34); __Pyx_XGOTREF(__pyx_t_35); __Pyx_XGOTREF(__pyx_t_36); __Pyx_XGOTREF(__pyx_t_37); __Pyx_XGOTREF(__pyx_t_38); __Pyx_XGOTREF(__pyx_t_39); __pyx_t_19 = __pyx_lineno; __pyx_t_32 = __pyx_clineno; __pyx_t_33 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_37); __Pyx_XGIVEREF(__pyx_t_38); __Pyx_XGIVEREF(__pyx_t_39); __Pyx_ExceptionReset(__pyx_t_37, __pyx_t_38, __pyx_t_39); __Pyx_XGIVEREF(__pyx_t_34); __Pyx_XGIVEREF(__pyx_t_35); __Pyx_XGIVEREF(__pyx_t_36); __Pyx_ErrRestore(__pyx_t_34, __pyx_t_35, __pyx_t_36); __pyx_t_34 = 0; __pyx_t_35 = 0; __pyx_t_36 = 0; __pyx_t_37 = 0; __pyx_t_38 = 0; __pyx_t_39 = 0; __pyx_lineno = __pyx_t_19; __pyx_clineno = __pyx_t_32; __pyx_filename = __pyx_t_33; goto __pyx_L19_except_error; } } } goto __pyx_L19_except_error;
2429: # It would be an internal bug for this to raise.
+2430: if not line_sender_buffer_rewind_to_marker(ls_buf, &err):
__pyx_t_4 = (!line_sender_buffer_rewind_to_marker(__pyx_v_ls_buf, (&__pyx_v_err))); if (unlikely(__pyx_t_4)) { /* … */ }
+2431: raise c_err_to_py(err)
__pyx_t_21 = __pyx_f_7questdb_7ingress_c_err_to_py(__pyx_v_err); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 2431, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_Raise(__pyx_t_21, 0, 0, 0); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __PYX_ERR(1, 2431, __pyx_L41_error)
2432:
+2433: if (isinstance(e, IngressError) and
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 2433, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_3 = PyObject_IsInstance(__pyx_v_e, __pyx_t_21); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 2433, __pyx_L41_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_3) { } else { __pyx_t_4 = __pyx_t_3; goto __pyx_L45_bool_binop_done; } /* … */ if (unlikely(__pyx_t_4)) { /* … */ }
+2434: (e.code == IngressErrorCode.InvalidApiCall)):
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_code); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 2434, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_GetModuleGlobalName(__pyx_t_22, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_22)) __PYX_ERR(1, 2434, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_mstate_global->__pyx_n_u_InvalidApiCall); if (unlikely(!__pyx_t_23)) __PYX_ERR(1, 2434, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_22 = PyObject_RichCompare(__pyx_t_21, __pyx_t_23, Py_EQ); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(1, 2434, __pyx_L41_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 2434, __pyx_L41_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_4 = __pyx_t_3; __pyx_L45_bool_binop_done:;
2435: # TODO: This should be allowed by the database.
2436: # It currently isn't so we have to raise an error.
+2437: raise IngressError(
__pyx_t_23 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 2437, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_21);
+2438: IngressErrorCode.BadDataFrame,
__Pyx_GetModuleGlobalName(__pyx_t_24, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_24)) __PYX_ERR(1, 2438, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_24); __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_24, __pyx_mstate_global->__pyx_n_u_BadDataFrame); if (unlikely(!__pyx_t_25)) __PYX_ERR(1, 2438, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
+2439: f'Bad dataframe row at index {row_index}: ' +
__pyx_t_24 = __Pyx_PyUnicode_From_size_t(__pyx_v_row_index, 0, ' ', 'd'); if (unlikely(!__pyx_t_24)) __PYX_ERR(1, 2439, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_24); __pyx_t_26[0] = __pyx_mstate_global->__pyx_kp_u_Bad_dataframe_row_at_index; __pyx_t_26[1] = __pyx_t_24; __pyx_t_26[2] = __pyx_mstate_global->__pyx_kp_u_All_values_are_nulls_Ensure_at; __pyx_t_27 = __Pyx_PyUnicode_Join(__pyx_t_26, 3, 27 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_24) + 63, 127); if (unlikely(!__pyx_t_27)) __PYX_ERR(1, 2439, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_21); assert(__pyx_t_23); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_23); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_21, __pyx__function); __pyx_t_13 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_23, __pyx_t_25, __pyx_t_27}; __pyx_t_22 = __Pyx_PyObject_FastCall(__pyx_t_21, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_22)) __PYX_ERR(1, 2437, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_22); }
2440: 'All values are nulls. '+
+2441: 'Ensure at least one column is not null.') from e
__Pyx_Raise(__pyx_t_22, 0, 0, __pyx_v_e); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __PYX_ERR(1, 2437, __pyx_L41_error)
+2442: elif was_serializing_cell:
if (unlikely(__pyx_v_was_serializing_cell)) { /* … */ }
+2443: raise IngressError(
__pyx_t_21 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_27, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_27)) __PYX_ERR(1, 2443, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_27);
+2444: IngressErrorCode.BadDataFrame,
__Pyx_GetModuleGlobalName(__pyx_t_25, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_25)) __PYX_ERR(1, 2444, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_t_25, __pyx_mstate_global->__pyx_n_u_BadDataFrame); if (unlikely(!__pyx_t_23)) __PYX_ERR(1, 2444, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+2445: 'Failed to serialize value of column ' +
__pyx_t_24 = __Pyx_PyUnicode_ConcatSafe(__pyx_mstate_global->__pyx_kp_u_Failed_to_serialize_value_of_col, __pyx_t_25); if (unlikely(!__pyx_t_24)) __PYX_ERR(1, 2445, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+2446: repr(df.columns[col.setup.orig_index]) +
__pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_25)) __PYX_ERR(1, 2446, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_24 = __Pyx_GetItemInt(__pyx_t_25, __pyx_v_col->setup->orig_index, size_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1); if (unlikely(!__pyx_t_24)) __PYX_ERR(1, 2446, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = PyObject_Repr(__pyx_t_24); if (unlikely(!__pyx_t_25)) __PYX_ERR(1, 2446, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; /* … */ __pyx_t_25 = __Pyx_PyUnicode_ConcatInPlace(__pyx_t_24, __pyx_t_28); if (unlikely(!__pyx_t_25)) __PYX_ERR(1, 2446, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
+2447: f' at row index {row_index} (' +
__pyx_t_25 = __Pyx_PyUnicode_From_size_t(__pyx_v_row_index, 0, ' ', 'd'); if (unlikely(!__pyx_t_25)) __PYX_ERR(1, 2447, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_26[0] = __pyx_mstate_global->__pyx_kp_u_at_row_index; __pyx_t_26[1] = __pyx_t_25; __pyx_t_26[2] = __pyx_mstate_global->__pyx_kp_u__6; __pyx_t_28 = __Pyx_PyUnicode_Join(__pyx_t_26, 3, 14 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_25) + 2, 127); if (unlikely(!__pyx_t_28)) __PYX_ERR(1, 2447, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_28); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; /* … */ __pyx_t_29 = __Pyx_PyUnicode_ConcatInPlaceSafe(__pyx_t_25, __pyx_t_30); if (unlikely(!__pyx_t_29)) __PYX_ERR(1, 2447, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_29); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0;
+2448: repr(df.iloc[row_index, col.setup.orig_index]) +
__pyx_t_28 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_iloc); if (unlikely(!__pyx_t_28)) __PYX_ERR(1, 2448, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_28); __pyx_t_24 = __Pyx_PyLong_FromSize_t(__pyx_v_row_index); if (unlikely(!__pyx_t_24)) __PYX_ERR(1, 2448, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_24); __pyx_t_29 = __Pyx_PyLong_FromSize_t(__pyx_v_col->setup->orig_index); if (unlikely(!__pyx_t_29)) __PYX_ERR(1, 2448, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_29); __pyx_t_30 = PyTuple_New(2); if (unlikely(!__pyx_t_30)) __PYX_ERR(1, 2448, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_30); __Pyx_GIVEREF(__pyx_t_24); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_30, 0, __pyx_t_24) != (0)) __PYX_ERR(1, 2448, __pyx_L41_error); __Pyx_GIVEREF(__pyx_t_29); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_30, 1, __pyx_t_29) != (0)) __PYX_ERR(1, 2448, __pyx_L41_error); __pyx_t_24 = 0; __pyx_t_29 = 0; __pyx_t_29 = __Pyx_PyObject_GetItem(__pyx_t_28, __pyx_t_30); if (unlikely(!__pyx_t_29)) __PYX_ERR(1, 2448, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_29); __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0; __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0; __pyx_t_30 = PyObject_Repr(__pyx_t_29); if (unlikely(!__pyx_t_30)) __PYX_ERR(1, 2448, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_30); __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0; /* … */ __pyx_t_25 = __Pyx_PyUnicode_ConcatInPlace(__pyx_t_29, __pyx_t_28); if (unlikely(!__pyx_t_25)) __PYX_ERR(1, 2448, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0; __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0; __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_27))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_27); assert(__pyx_t_21); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_27); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_27, __pyx__function); __pyx_t_13 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_21, __pyx_t_23, __pyx_t_25}; __pyx_t_22 = __Pyx_PyObject_FastCall(__pyx_t_27, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; if (unlikely(!__pyx_t_22)) __PYX_ERR(1, 2443, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_22); }
+2449: f'): {e} [dc={<int>col.dispatch_code}]') from e
__pyx_t_30 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_30)) __PYX_ERR(1, 2449, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_30); __pyx_t_25 = __Pyx_PyUnicode_From_int(((int)__pyx_v_col->dispatch_code), 0, ' ', 'd'); if (unlikely(!__pyx_t_25)) __PYX_ERR(1, 2449, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_31[0] = __pyx_mstate_global->__pyx_kp_u__9; __pyx_t_31[1] = __pyx_t_30; __pyx_t_31[2] = __pyx_mstate_global->__pyx_kp_u_dc; __pyx_t_31[3] = __pyx_t_25; __pyx_t_31[4] = __pyx_mstate_global->__pyx_kp_u__10; __pyx_t_28 = __Pyx_PyUnicode_Join(__pyx_t_31, 5, 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_30) + 6 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_25) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_30)); if (unlikely(!__pyx_t_28)) __PYX_ERR(1, 2449, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_28); __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; /* … */ __Pyx_Raise(__pyx_t_22, 0, 0, __pyx_v_e); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __PYX_ERR(1, 2443, __pyx_L41_error)
2450: else:
+2451: raise
/*else*/ { __Pyx_GIVEREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_8, __pyx_t_20); __pyx_t_1 = 0; __pyx_t_8 = 0; __pyx_t_20 = 0; __PYX_ERR(1, 2451, __pyx_L41_error) } }
+2452: except Exception as e:
__pyx_t_32 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_32) { __Pyx_AddTraceback("questdb.ingress._dataframe", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_20, &__pyx_t_8, &__pyx_t_1) < 0) __PYX_ERR(1, 2452, __pyx_L11_except_error) __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_8); __Pyx_XDECREF_SET(__pyx_v_e, __pyx_t_8); /*try:*/ { /* … */ /*finally:*/ { __pyx_L56_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_39 = 0; __pyx_t_38 = 0; __pyx_t_37 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0; __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_ExceptionSwap(&__pyx_t_39, &__pyx_t_38, &__pyx_t_37); if ( unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_39); __Pyx_XGOTREF(__pyx_t_38); __Pyx_XGOTREF(__pyx_t_37); __pyx_t_32 = __pyx_lineno; __pyx_t_19 = __pyx_clineno; __pyx_t_40 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_39); __Pyx_XGIVEREF(__pyx_t_38); __Pyx_XGIVEREF(__pyx_t_37); __Pyx_ExceptionReset(__pyx_t_39, __pyx_t_38, __pyx_t_37); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_ErrRestore(__pyx_t_12, __pyx_t_11, __pyx_t_10); __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_39 = 0; __pyx_t_38 = 0; __pyx_t_37 = 0; __pyx_lineno = __pyx_t_32; __pyx_clineno = __pyx_t_19; __pyx_filename = __pyx_t_40; goto __pyx_L11_except_error; } } } goto __pyx_L11_except_error;
+2453: if not isinstance(e, IngressError):
__Pyx_GetModuleGlobalName(__pyx_t_22, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_22)) __PYX_ERR(1, 2453, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_4 = PyObject_IsInstance(__pyx_v_e, __pyx_t_22); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 2453, __pyx_L56_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_3 = (!__pyx_t_4); if (unlikely(__pyx_t_3)) { /* … */ }
+2454: raise IngressError(
__pyx_t_27 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_25, __pyx_mstate_global->__pyx_n_u_IngressError); if (unlikely(!__pyx_t_25)) __PYX_ERR(1, 2454, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_25);
+2455: IngressErrorCode.InvalidApiCall,
__Pyx_GetModuleGlobalName(__pyx_t_23, __pyx_mstate_global->__pyx_n_u_IngressErrorCode); if (unlikely(!__pyx_t_23)) __PYX_ERR(1, 2455, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_23); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_23, __pyx_mstate_global->__pyx_n_u_InvalidApiCall); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 2455, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+2456: str(e)) from e
__pyx_t_23 = __Pyx_PyObject_Unicode(__pyx_v_e); if (unlikely(!__pyx_t_23)) __PYX_ERR(1, 2456, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_23); __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_25))) { __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_25); assert(__pyx_t_27); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_25); __Pyx_INCREF(__pyx_t_27); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_25, __pyx__function); __pyx_t_13 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_27, __pyx_t_21, __pyx_t_23}; __pyx_t_22 = __Pyx_PyObject_FastCall(__pyx_t_25, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; if (unlikely(!__pyx_t_22)) __PYX_ERR(1, 2454, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_22); } __Pyx_Raise(__pyx_t_22, 0, 0, __pyx_v_e); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __PYX_ERR(1, 2454, __pyx_L56_error)
2457: else:
+2458: raise
/*else*/ { __Pyx_GIVEREF(__pyx_t_20); __Pyx_GIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_1); __Pyx_ErrRestoreWithState(__pyx_t_20, __pyx_t_8, __pyx_t_1); __pyx_t_20 = 0; __pyx_t_8 = 0; __pyx_t_1 = 0; __PYX_ERR(1, 2458, __pyx_L56_error) } }
2459: finally:
+2460: _ensure_has_gil(&gs) # Note: We need the GIL for cleanup.
/*finally:*/ { /*normal exit:*/{ __pyx_f_7questdb_7ingress__ensure_has_gil((&__pyx_v_gs)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2460, __pyx_L1_error) /* … */ __pyx_f_7questdb_7ingress__ensure_has_gil((&__pyx_v_gs)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2460, __pyx_L64_error)
+2461: line_sender_buffer_clear_marker(ls_buf)
line_sender_buffer_clear_marker(__pyx_v_ls_buf); /* … */ line_sender_buffer_clear_marker(__pyx_v_ls_buf);
+2462: col_t_arr_release(&cols)
__pyx_f_7questdb_7ingress_col_t_arr_release((&__pyx_v_cols)); /* … */ __pyx_f_7questdb_7ingress_col_t_arr_release((&__pyx_v_cols));
+2463: qdb_pystr_buf_clear(b)
qdb_pystr_buf_clear(__pyx_v_b); goto __pyx_L8; } __pyx_L7_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_37 = 0; __pyx_t_38 = 0; __pyx_t_39 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0; __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_ExceptionSwap(&__pyx_t_37, &__pyx_t_38, &__pyx_t_39); if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_37); __Pyx_XGOTREF(__pyx_t_38); __Pyx_XGOTREF(__pyx_t_39); __pyx_t_19 = __pyx_lineno; __pyx_t_32 = __pyx_clineno; __pyx_t_41 = __pyx_filename; { /* … */ qdb_pystr_buf_clear(__pyx_v_b); } __Pyx_XGIVEREF(__pyx_t_37); __Pyx_XGIVEREF(__pyx_t_38); __Pyx_XGIVEREF(__pyx_t_39); __Pyx_ExceptionReset(__pyx_t_37, __pyx_t_38, __pyx_t_39); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ErrRestore(__pyx_t_7, __pyx_t_6, __pyx_t_5); __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_37 = 0; __pyx_t_38 = 0; __pyx_t_39 = 0; __pyx_lineno = __pyx_t_19; __pyx_clineno = __pyx_t_32; __pyx_filename = __pyx_t_41; goto __pyx_L1_error; __pyx_L64_error:; __Pyx_XGIVEREF(__pyx_t_37); __Pyx_XGIVEREF(__pyx_t_38); __Pyx_XGIVEREF(__pyx_t_39); __Pyx_ExceptionReset(__pyx_t_37, __pyx_t_38, __pyx_t_39); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_37 = 0; __pyx_t_38 = 0; __pyx_t_39 = 0; goto __pyx_L1_error; } __pyx_L8:; }