public function hash($value)
{
if (!$value instanceof IQueryable) {
throw new PinqException('Cannot get hash of compiled request query: expecting type of %s, %s given', IQueryable::IQUERYABLE_TYPE, Utilities::getTypeOrClass($value));
}
$provider = $value->getProvider();
if (!$provider instanceof DSL\QueryProvider) {
throw new PinqException('Cannot get hash of compiled request query: invalid query provider, expecting type of %s, %s given', DSL\QueryProvider::getType(), Utilities::getTypeOrClass($value));
}
return $provider->getCompilerConfiguration()->getCompiledRequestQueryHash($value->getExpression(), $this->evaluationContext);
}