Esempio n. 1
0
bool PgSQLType::isRegistered(const QString &type, void *pmodel)
{
	if(getBaseTypeIndex(type)!=BaseType::null)
		return(true);
	else
		return(getUserTypeIndex(type, nullptr, pmodel)!=BaseType::null);
}
Esempio n. 2
0
void PgSQLType::setUserType(void *ptype)
{
	int idx;

	idx=getUserTypeIndex(QString(),ptype);
	if(idx <= 0)
		throw Exception(ERR_ASG_INV_TYPE_OBJECT,__PRETTY_FUNCTION__,__FILE__,__LINE__);
	else
		type_idx=idx;
}
Esempio n. 3
0
void PgSQLType::setDimension(unsigned dim)
{
	if(dim > 0 && this->isUserType())
	{
		int idx=getUserTypeIndex(~(*this), nullptr);
		if(user_types[idx].type_conf==UserTypeConfig::DOMAIN_TYPE ||
			 user_types[idx].type_conf==UserTypeConfig::SEQUENCE_TYPE)
			throw Exception(ERR_ASG_INV_DOMAIN_ARRAY,__PRETTY_FUNCTION__,__FILE__,__LINE__);
	}

	dimension=dim;
}
Esempio n. 4
0
void PgSQLType::addUserType(const QString &type_name, void *ptype, void *pmodel, unsigned type_conf)
{
	if(type_name!="" && ptype && pmodel &&
		 (type_conf==UserTypeConfig::DOMAIN_TYPE ||
			type_conf==UserTypeConfig::SEQUENCE_TYPE ||
			type_conf==UserTypeConfig::TABLE_TYPE ||
			type_conf==UserTypeConfig::BASE_TYPE) &&
		 getUserTypeIndex(type_name,ptype,pmodel)==0)
	{
		UserTypeConfig cfg;

		cfg.name=type_name;
		cfg.ptype=ptype;
		cfg.pmodel=pmodel;
		cfg.type_conf=type_conf;
		PgSQLType::user_types.push_back(cfg);
	}
}
Esempio n. 5
0
unsigned PgSQLType::operator = (const QString &type_name)
{
	unsigned type_idx, usr_type_idx;

	type_idx=getBaseTypeIndex(type_name);
	usr_type_idx=getUserTypeIndex(type_name, nullptr);

	if(type_idx==0 && usr_type_idx==0)
		throw Exception(ERR_ASG_INV_TYPE_OBJECT,__PRETTY_FUNCTION__,__FILE__,__LINE__);
	else if(type_idx!=0)
	{
		BaseType::setType(type_idx,offset,types_count);
		return(type_idx);
	}
	else
	{
		setUserType(usr_type_idx);
		return(usr_type_idx);
	}
}
Esempio n. 6
0
bool PgSQLType::operator == (void *ptype)
{
	int idx;
	idx=getUserTypeIndex(QString(),ptype);
	return(static_cast<int>(type_idx) == idx);
}