633 uint32_t *tags = palloc(n_keys * 2 *
sizeof(*tags));
640 POSTGIS_DEBUG(2,
"parse_values called");
644 tuple.t_len = HeapTupleHeaderGetDatumLength(ctx->
row);
645 ItemPointerSetInvalid(&(tuple.t_self));
646 tuple.t_tableOid = InvalidOid;
647 tuple.t_data = ctx->
row;
652 POSTGIS_DEBUGF(3,
"parse_values natts: %d", natts);
654 for (i = 0; i < natts; i++)
659 Datum datum = cc.
values[i];
666 POSTGIS_DEBUG(3,
"parse_values isnull detected");
670 #if POSTGIS_PGSQL_VERSION < 110
671 key = cc.
tupdesc->attrs[i]->attname.data;
673 key = cc.
tupdesc->attrs[i].attname.data;
678 #if POSTGIS_PGSQL_VERSION >= 94
680 elog(ERROR,
"parse_values: unexpectedly could not find parsed key name '%s'", key);
681 if (typoid == JSONBOID)
688 elog(ERROR,
"parse_values: unexpectedly could not find parsed key name '%s'", key);
695 bool_values_hash, bool_value,
696 DatumGetBool,
sizeof(protobuf_c_boolean));
709 float_values_hash, float_value,
710 DatumGetFloat4,
sizeof(
float));
714 double_values_hash, double_value,
715 DatumGetFloat8,
sizeof(
double));
728 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)
#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