MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / optimize_cdb_decode

Function optimize_cdb_decode

modules/sql_cacher/sql_cacher.c:1589–1620  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1587}
1588
1589static void optimize_cdb_decode(pv_name_fix_t *pv_name)
1590{
1591 int i, j, prev_cols;
1592 char col_type1, col_type2;
1593
1594 for (i = 0; i < pv_name->c_entry->nr_columns; i++) {
1595 if (!str_strcmp(pv_name->c_entry->columns[i], &pv_name->col)) {
1596 pv_name->col_nr = i;
1597
1598 prev_cols = 0;
1599 col_type1 = ((pv_name->c_entry->column_types & (1LL << i)) != 0);
1600 for (j = 0; j < i; j++) {
1601 col_type2 = ((pv_name->c_entry->column_types & (1LL << j)) != 0);
1602 if (col_type1 == col_type2)
1603 prev_cols++;
1604 }
1605 if (col_type1) {
1606 pv_name->col_offset = INT_B64_ENC_LEN +
1607 pv_name->c_entry->nr_ints*INT_B64_ENC_LEN + prev_cols*INT_B64_ENC_LEN;
1608 if (prev_cols == pv_name->c_entry->nr_strs - 1)
1609 pv_name->last_str = 1;
1610 else
1611 pv_name->last_str = 0;
1612 } else
1613 pv_name->col_offset = INT_B64_ENC_LEN + prev_cols*INT_B64_ENC_LEN;
1614
1615 break;
1616 }
1617 }
1618 if (i == pv_name->c_entry->nr_columns)
1619 pv_name->col_offset = -1;
1620}
1621
1622static void unlink_from_query_list(struct queried_key *pos)
1623{

Callers 3

on_demand_loadFunction · 0.85
pv_get_sql_cached_valueFunction · 0.85
sql_cache_dumpFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected