PostGIS  3.1.6dev-r@@SVN_REVISION@@

◆ add_value_as_string_with_size()

static bool add_value_as_string_with_size ( mvt_agg_context ctx,
char *  value,
size_t  size,
uint32_t *  tags,
uint32_t  k 
)
static

Definition at line 458 of file mvt.c.

459 {
460  bool kept = false;
461  struct mvt_kv_value *kv;
462  unsigned hashv;
463  HASH_VALUE(value, size, hashv);
464  POSTGIS_DEBUG(2, "add_value_as_string called");
465  HASH_FIND_BYHASHVALUE(hh, ctx->string_values_hash, value, size, hashv, kv);
466  if (!kv)
467  {
468  POSTGIS_DEBUG(4, "add_value_as_string value not found");
469  kv = palloc(sizeof(*kv));
470  POSTGIS_DEBUGF(4, "add_value_as_string new hash key: %d",
471  ctx->values_hash_i);
472  kv->id = ctx->values_hash_i++;
473  vector_tile__tile__value__init(kv->value);
474  kv->value->string_value = value;
475  kv->value->test_oneof_case = VECTOR_TILE__TILE__VALUE__TEST_ONEOF_STRING_VALUE;
476  HASH_ADD_KEYPTR_BYHASHVALUE(hh, ctx->string_values_hash, kv->value->string_value, size, hashv, kv);
477  kept = true;
478  }
479  tags[ctx->row_columns * 2] = k;
480  tags[ctx->row_columns * 2 + 1] = kv->id;
481  return kept;
482 }
int value
Definition: genraster.py:62
uint32_t values_hash_i
Definition: mvt.h:92
struct mvt_kv_value * string_values_hash
Definition: mvt.h:84
uint32_t row_columns
Definition: mvt.h:96
VectorTile__Tile__Value value[1]
Definition: mvt.c:74
UT_hash_handle hh
Definition: mvt.c:76
uint32_t id
Definition: mvt.c:75

References mvt_kv_value::hh, mvt_kv_value::id, mvt_agg_context::row_columns, mvt_agg_context::string_values_hash, mvt_kv_value::value, genraster::value, and mvt_agg_context::values_hash_i.

Referenced by add_value_as_string().

Here is the caller graph for this function: