PostGIS  3.2.2dev-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 460 of file mvt.c.

461 {
462  bool kept = false;
463  struct mvt_kv_value *kv;
464  unsigned hashv;
465  HASH_VALUE(value, size, hashv);
466  POSTGIS_DEBUG(2, "add_value_as_string called");
467  HASH_FIND_BYHASHVALUE(hh, ctx->string_values_hash, value, size, hashv, kv);
468  if (!kv)
469  {
470  POSTGIS_DEBUG(4, "add_value_as_string value not found");
471  kv = palloc(sizeof(*kv));
472  POSTGIS_DEBUGF(4, "add_value_as_string new hash key: %d",
473  ctx->values_hash_i);
474  kv->id = ctx->values_hash_i++;
475  vector_tile__tile__value__init(kv->value);
476  kv->value->string_value = value;
477  kv->value->test_oneof_case = VECTOR_TILE__TILE__VALUE__TEST_ONEOF_STRING_VALUE;
478  HASH_ADD_KEYPTR_BYHASHVALUE(hh, ctx->string_values_hash, kv->value->string_value, size, hashv, kv);
479  kept = true;
480  }
481  tags[ctx->row_columns * 2] = k;
482  tags[ctx->row_columns * 2 + 1] = kv->id;
483  return kept;
484 }
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:76
UT_hash_handle hh
Definition: mvt.c:78
uint32_t id
Definition: mvt.c:77

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: