Skip to content
Visit booth 3171 at Google Cloud Next to see how to unlock real-time decisions at scaleMore info

Manage UDFs

The following code example shows how to create, register, and execute a user-defined function (UDF) with the PHP client.

<?php
namespace Aerospike;
$namespace = "test";
$set = "test";
$socket = "/tmp/asld_grpc.sock";
$client = Client::connect($socket);
echo "* Connected to the local daemon: $client->socket \n";
// Create the UDF
$udfBody = 'function testFunc1(rec, div)
local ret = map(); -- Initialize the return value (a map)
local x = rec["bin1"]; -- Get the value from record bin named "bin1"
rec["bin2"] = math.floor(x / div); -- Set the value in record bin named "bin2"
aerospike:update(rec); -- Update the main record
ret["status"] = "OK"; -- Populate the return status
return ret; -- Return the Return value and/or status
end';
$wp = new WritePolicy();
// Register the UDF
$client->registerUdf($wp, $udfBody, "udf1.lua", UdfLanguage::lua());
$ns = "test";
$set = "udf-set";
$key = new Key($ns, $set, "key1");
$bin1 = new Bin("bin1", 20);
$bin2 = new Bin("bin2", 1);
$client->put($wp, $key, [$bin1, $bin2]);
// Execute the UDF
$res = $client->udfExecute($wp, $key, "udf1", "testFunc1", [2]);
echo "\n Execute UDF result: ";
var_dump($res);
usleep(300000);
echo "\n Get record result: ";
$rp = new ReadPolicy();
$rec = $client->get($rp, $key);
var_dump($rec->bins);
// List all UDFs
$listUdf = $client->listUdf($rp);
echo "\n Count of UDFs: ",count($listUdf);
var_dump($listUdf);
Feedback

Was this page helpful?

What type of feedback are you giving?

What would you like us to know?

+Capture screenshot

Can we reach out to you?