Hi, I am using this code on 8.4/8.5, which works on 64-bit, but segfaults on 32-bit Linux: oids[0] = TEXTOID; values[0] = lex; nulls[0] = false; ret = SPI_execute_with_args( (just_title ? "SELECT ids FROM product.t_product_inv_titleonly WHERE word = $1" : "SELECT ids FROM product.t_product_inv WHERE word = $1"), 1, oids, values, nulls, true, 1); if (ret != SPI_OK_SELECT) elog(ERROR, "SPI_execute_with_args(SELECT FROM product.t_product_inv[_titleonly]) error (%d)", ret); prod_inv = SPI_tuptable; /* If no such record, quit */ if (SPI_processed == 0) break; // ids = PointerGetDatum(PG_DETOAST_DATUM(SPI_getbinval(prod_inv->vals[0], prod_inv->tupdesc, 1, &isnull))); ids = SPI_getbinval(prod_inv->vals[0], prod_inv->tupdesc, 1, &isnull); n_ids = DatumGetInt32(DirectFunctionCall2(array_length, ids, Int32GetDatum(1))); ids_arr = DatumGetArrayTypeP(ids); ids_data = (Datum *) ARR_DATA_PTR(ids_arr); /* Set up the initial indexes for binary search */ idx_min = 0; idx_max = n_ids - 1; idx_mid = (idx_max + idx_min) / 2; elog(NOTICE, "n_ids %d idx_min %d idx_max %d idx_mid %d", n_ids, idx_min, idx_max, idx_mid); elog(NOTICE, "getting display_price of last element %" PRId64, DatumGetInt64(ids_data[idx_max])); Field "ids" in the above query is an int8[] array with SET STORAGE EXTERNAL. Executing DatumGetInt64(ids_data[idx_max]) in the last elog() call segfaults in 32-bit. It doesn't matter if the SPI_getbinval() call above is detoasted or not. How can I extract individual elements from the int8[] Datum correctly? Thanks in advance, Zoltán Böszörményi -- Bible has answers for everything. Proof: "But let your communication be, Yea, yea; Nay, nay: for whatsoever is more than these cometh of evil." (Matthew 5:37) - basics of digital technology. "May your kingdom come" - superficial description of plate tectonics ---------------------------------- Zoltán Böszörményi Cybertec Schönig & Schönig GmbH http://www.postgresql.at/ -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general