Ich erweitere die Postgresql-Funktionen mit dem C SPI. Die Funktion muss in der Lage sein, ein Postgres N-Dim Array aufzunehmen und die Daten daraus zu erhalten. Ich bin in der Lage, die Daten von einem 1D-Array zu bekommen, aber ich bekomme einen segfault, wenn ich versuche, auf ein N-Dim-Array zuzugreifen.Aufbau der Postgresql C-Funktion mit multidimensionalem Array als Eingabe
Mein erster Versuch nur ein Element zugreifen war einfach
PG_FUNCTION_INFO_V1(sum_elements);
Datum
matmul(PG_FUNCTION_ARGS)
{
ArrayType *anyArray = PG_GETARG_ARRAYTYPE_P(0);
int32 **a = (int32 **) ARR_DATA_PTR(anyArray);
PG_RETURN_INT64(a[1][1]);
}
ich auch versucht, wenn es um die Matrix in einen 1D-Array abgeflacht, aber die Werte, die kamen, waren aus nur Müll.
Danke für die Hilfe!