gboolean midgard_core_object_has_parameters(
		MidgardConnection *mgd, const gchar *class_name, const gchar *guid)
{
	g_assert(mgd != NULL);
	g_assert(class_name != NULL);
	g_assert(guid != NULL);

	MidgardQueryBuilder *builder =
		midgard_core_object_parameter_query_builder(mgd, class_name, guid);

	/* error is set in builder constructor */
	if(!builder)
		return FALSE;

	midgard_query_builder_set_limit(builder, 1);
	
	gboolean rv = TRUE;
	guint i = midgard_query_builder_count(builder);

	if(i == 0)
		rv = FALSE;

	g_object_unref(builder);

	return rv;
}	
示例#2
0
static PHP_METHOD(midgard_query_builder, set_limit)
{
	RETVAL_FALSE;
	MidgardConnection *mgd = mgd_handle(TSRMLS_C);
	CHECK_MGD(mgd);

	long limit;

	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &limit) != SUCCESS) {
		return;
	}

	_GET_BUILDER_OBJECT;

	/* TODO, check if limit check can be ignored */
	if (limit < 0) {
		php_error(E_WARNING, "Ignoring a negative query limit");
		RETURN_FALSE;
	}

	midgard_query_builder_set_limit(builder, limit);
	RETURN_TRUE;
}