As mentioned in the title, calling the same function multiple times doesn't work. The function we're using is `RAND()`.

More concretely, the second call doesn't return a new value.

The execution of the following SPARQL query 

```sparql
PREFIX ex: <http://example.org/>

INSERT {
GRAPH <urn:bulkload:general> {
  ?binding1 ex:test "test1" .
  ?binding2 ex:test "test2" .
} }
WHERE {
  BIND(IRI(str(RAND())) AS ?binding1)
  BIND(IRI(str(RAND())) AS ?binding2)
}
```
leads to the following results:

**Results:**

![image](https://github.com/openlink/virtuoso-opensource/assets/135758800/69583c93-8ac3-401c-8028-d222a765fcb3)


**Select query:**

```sparql
PREFIX ex: <http://example.org/>
SELECT *
FROM <urn:bulkload:general>
WHERE {
  ?s ex:test ?o .
}
```

As far as I know, this approach shouldn't violate any recommendations. Therefore, `?binding1` and `?binding2` should have different values.

The easiest workaround may be the separation of these queries, however, in some cases that's not the best approach.

Maybe you know a different workaround or even a fix for that. Thanks in advance!
Calling `RAND()` function multiple times doesn't work
This is a GitHub Issue
repo:virtuoso-opensource
owner:openlink
Title : Calling `RAND()` function multiple times doesn't work
Issue date:

--- start body ---
As mentioned in the title, calling the same function multiple times doesn't work. The function we're using is `RAND()`.

More concretely, the second call doesn't return a new value.

The execution of the following SPARQL query 

```sparql
PREFIX ex: <http://example.org/>

INSERT {
GRAPH <urn:bulkload:general> {
  ?binding1 ex:test "test1" .
  ?binding2 ex:test "test2" .
} }
WHERE {
  BIND(IRI(str(RAND())) AS ?binding1)
  BIND(IRI(str(RAND())) AS ?binding2)
}
```
leads to the following results:

**Results:**

![image](https://github.com/openlink/virtuoso-opensource/assets/135758800/69583c93-8ac3-401c-8028-d222a765fcb3)


**Select query:**

```sparql
PREFIX ex: <http://example.org/>
SELECT *
FROM <urn:bulkload:general>
WHERE {
  ?s ex:test ?o .
}
```

As far as I know, this approach shouldn't violate any recommendations. Therefore, `?binding1` and `?binding2` should have different values.

The easiest workaround may be the separation of these queries, however, in some cases that's not the best approach.

Maybe you know a different workaround or even a fix for that. Thanks in advance!
--- end body ---
