684 uint32_t *tags = palloc(n_keys * 2 *
sizeof(*tags));
687 uint32_t natts = (uint32_t) cc.
tupdesc->natts;
691 POSTGIS_DEBUG(2,
"parse_values called");
695 tuple.t_len = HeapTupleHeaderGetDatumLength(ctx->
row);
696 ItemPointerSetInvalid(&(tuple.t_self));
697 tuple.t_tableOid = InvalidOid;
698 tuple.t_data = ctx->
row;
703 POSTGIS_DEBUGF(3,
"parse_values natts: %d", natts);
705 for (i = 0; i < natts; i++)
710 Datum datum = cc.
values[i];
723 POSTGIS_DEBUG(3,
"parse_values isnull detected");
727 key = TupleDescAttr(cc.
tupdesc, i)->attname.data;
732 elog(ERROR,
"parse_values: unexpectedly could not find parsed key name '%s'", key);
733 if (typoid == JSONBOID)
743 bool_values_hash, bool_value,
744 DatumGetBool,
sizeof(protobuf_c_boolean));
757 float_values_hash, float_value,
758 DatumGetFloat4,
sizeof(
float));
762 double_values_hash, double_value,
763 DatumGetFloat8,
sizeof(
double));
777 POSTGIS_DEBUGF(3,
"parse_values n_tags %zd", ctx->
feature->n_tags);
static void parse_datum_as_string(mvt_agg_context *ctx, Oid typoid, Datum datum, uint32_t *tags, uint32_t k)
static void set_feature_id(mvt_agg_context *ctx, Datum datum, bool isNull)
Sets the feature id.
#define MVT_PARSE_INT_DATUM(type, datumfunc)
static uint32_t * parse_jsonb(mvt_agg_context *ctx, Jsonb *jb, uint32_t *tags)
#define MVT_PARSE_DATUM(type, kvtype, hash, valuefield, datumfunc, size)
VectorTile__Tile__Feature * feature
mvt_column_cache column_cache
uint32_t * column_keys_index