PostGIS  3.7.0dev-r@@SVN_REVISION@@

◆ add_value_as_string_with_size()

static bool add_value_as_string_with_size ( mvt_agg_context ctx,
struct feature_builder feature,
char *  value,
size_t  size,
uint32_t  k 
)
static

Definition at line 507 of file mvt.c.

508 {
509  bool kept = false;
510  struct mvt_kv_value *kv;
511  unsigned hashv;
512  HASH_VALUE(value, size, hashv);
513  POSTGIS_DEBUG(2, "add_value_as_string called");
514  HASH_FIND_BYHASHVALUE(hh, ctx->string_values_hash, value, size, hashv, kv);
515  if (!kv)
516  {
517  POSTGIS_DEBUG(4, "add_value_as_string value not found");
518  kv = palloc(sizeof(*kv));
519  POSTGIS_DEBUGF(4, "add_value_as_string new hash key: %d",
520  ctx->values_hash_i);
521  kv->id = ctx->values_hash_i++;
522  vector_tile__tile__value__init(kv->value);
523  kv->value->string_value = value;
524  kv->value->test_oneof_case = VECTOR_TILE__TILE__VALUE__TEST_ONEOF_STRING_VALUE;
525  HASH_ADD_KEYPTR_BYHASHVALUE(hh, ctx->string_values_hash, kv->value->string_value, size, hashv, kv);
526  kept = true;
527  }
528 
529  feature_add_property(feature, k, kv->id);
530  return kept;
531 }
static void feature_add_property(struct feature_builder *builder, uint32_t key_id, uint32_t value_id)
Definition: mvt.c:123
int value
Definition: genraster.py:62
uint32_t values_hash_i
Definition: mvt.h:94
struct mvt_kv_value * string_values_hash
Definition: mvt.h:86
VectorTile__Tile__Value value[1]
Definition: mvt.c:70
UT_hash_handle hh
Definition: mvt.c:72
uint32_t id
Definition: mvt.c:71

References feature_add_property(), mvt_kv_value::hh, mvt_kv_value::id, 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 call graph for this function:
Here is the caller graph for this function: