コード例 #1
0
ファイル: pgsqltypes.cpp プロジェクト: Ox0000/pgmodeler
bool PgSQLType::isNumericType(void)
{
	QString curr_type=(!isUserType() ? type_list[this->type_idx] : QString());

	return(!isUserType() &&
					(curr_type==QString("numeric") || curr_type==QString("decimal")));
}
コード例 #2
0
ファイル: pgsqltypes.cpp プロジェクト: Ox0000/pgmodeler
bool PgSQLType::isNetworkType(void)
{
	QString curr_type=(!isUserType() ? type_list[this->type_idx] : QString());

	return(!isUserType() &&
				 (curr_type==QString("cidr") ||
					curr_type==QString("inet")));
}
コード例 #3
0
ファイル: pgsqltypes.cpp プロジェクト: Ox0000/pgmodeler
bool PgSQLType::isRangeType(void)
{
	QString curr_type=(!isUserType() ? type_list[this->type_idx] : QString());

	return(!isUserType() &&
				(curr_type==QString("int4range") || curr_type==QString("int8range") ||
				curr_type==QString("numrange") ||	curr_type==QString("tsrange") ||
				curr_type==QString("tstzrange") || curr_type==QString("daterange")));
}
コード例 #4
0
ファイル: pgsqltypes.cpp プロジェクト: Ox0000/pgmodeler
bool PgSQLType::isGiSType(void)
{
	QString curr_type=(!isUserType() ? type_list[this->type_idx] : QString());

	return(!isUserType() &&
				 (curr_type==QString("geography") ||
					curr_type==QString("geometry") ||
					curr_type==QString("geometry_dump")));
}
コード例 #5
0
ファイル: pgsqltypes.cpp プロジェクト: Ox0000/pgmodeler
bool PgSQLType::isIntegerType(void)
{
	QString curr_type=(!isUserType() ? type_list[this->type_idx] : QString());

	return(!isUserType() &&
			 (curr_type==QString("smallint") || curr_type==QString("integer") ||
				curr_type==QString("bigint") || curr_type==QString("int4") ||
				curr_type==QString("int8") || curr_type==QString("int2")));
}
コード例 #6
0
ファイル: pgsqltypes.cpp プロジェクト: Ox0000/pgmodeler
bool PgSQLType::isDateTimeType(void)
{
	QString curr_type=(!isUserType() ? type_list[this->type_idx] : QString());

	return(!isUserType() &&
				(curr_type==QString("time") || curr_type==QString("timestamp") ||
				 curr_type==QString("interval") || curr_type==QString("date") ||
				 curr_type==QString("timetz") || curr_type==QString("timestamptz")));
}
コード例 #7
0
ファイル: pgsqltypes.cpp プロジェクト: Ox0000/pgmodeler
bool PgSQLType::isSerialType(void)
{
	QString curr_type=(!isUserType() ? type_list[this->type_idx] : QString());

	return(!isUserType() &&
			 (curr_type==QString("serial") ||
				curr_type==QString("smallserial") ||
				curr_type==QString("bigserial")));
}
コード例 #8
0
ファイル: pgsqltypes.cpp プロジェクト: Ox0000/pgmodeler
bool PgSQLType::hasVariableLength(void)
{
	QString curr_type=(!isUserType() ? type_list[this->type_idx] : QString());

	return(!isUserType() &&
				(curr_type==QString("numeric") || curr_type==QString("decimal") ||
				curr_type==QString("character varying") || curr_type==QString("varchar") ||
				curr_type==QString("character") || curr_type==QString("char") ||
				curr_type==QString("bit") || curr_type==QString("bit varying") ||
				curr_type==QString("varbit")));
}
コード例 #9
0
ファイル: pgsqltypes.cpp プロジェクト: InnovaMex/pgmodeler
bool PgSQLType::isRangeType(void)
{
  return(!isUserType() &&
         (type_list[this->type_idx]==QString("int4range") || type_list[this->type_idx]==QString("int8range") ||
          type_list[this->type_idx]==QString("numrange") ||	type_list[this->type_idx]==QString("tsrange") ||
          type_list[this->type_idx]==QString("tstzrange") || type_list[this->type_idx]==QString("daterange")));
}
コード例 #10
0
ファイル: pgsqltypes.cpp プロジェクト: InnovaMex/pgmodeler
bool PgSQLType::isSerialType(void)
{
  return(!isUserType() &&
         (type_list[this->type_idx]==QString("serial") ||
          type_list[this->type_idx]==QString("smallserial") ||
          type_list[this->type_idx]==QString("bigserial")));
}
コード例 #11
0
ファイル: pgsqltypes.cpp プロジェクト: InnovaMex/pgmodeler
bool PgSQLType::isGiSType(void)
{
  return(!isUserType() &&
         (type_list[this->type_idx]==QString("geography") ||
          type_list[this->type_idx]==QString("geometry") ||
          type_list[this->type_idx]==QString("geometry_dump")));
}
コード例 #12
0
ファイル: pgsqltypes.cpp プロジェクト: Ox0000/pgmodeler
bool PgSQLType::isPolymorphicType(void)
{
		QString curr_type=(!isUserType() ? type_list[this->type_idx] : QString());

	return(curr_type==QString("anyarray") || curr_type==QString("anyelement") ||
				 curr_type==QString("anyenum") || curr_type==QString("anynonarray") ||
				 curr_type==QString("anyrange") || curr_type==QString("\"any\""));
}
コード例 #13
0
ファイル: pgsqltypes.cpp プロジェクト: Ox0000/pgmodeler
bool PgSQLType::isCharacterType(void)
{
	QString curr_type=(!isUserType() ? type_list[this->type_idx] : QString());

	return(curr_type==QString("\"char\"") || curr_type==QString("char") ||
				 curr_type==QString("character") || curr_type==QString("varchar") ||
				 curr_type==QString("character varying") || curr_type==QString("text"));
}
コード例 #14
0
ファイル: pgsqltypes.cpp プロジェクト: InnovaMex/pgmodeler
bool PgSQLType::isDateTimeType(void)
{
  return(!isUserType() &&
         (type_list[this->type_idx]==QString("time") ||
          type_list[this->type_idx]==QString("timestamp") ||
          type_list[this->type_idx]==QString("interval") ||
          type_list[this->type_idx]==QString("date") ||
          type_list[this->type_idx]==QString("timetz") ||
          type_list[this->type_idx]==QString("timestamptz")));
}
コード例 #15
0
ファイル: pgsqltypes.cpp プロジェクト: InnovaMex/pgmodeler
bool PgSQLType::isIntegerType(void)
{
  return(!isUserType() &&
         (type_list[this->type_idx]==QString("smallint") ||
          type_list[this->type_idx]==QString("integer") ||
          type_list[this->type_idx]==QString("bigint") ||
          type_list[this->type_idx]==QString("int4") ||
          type_list[this->type_idx]==QString("int8") ||
          type_list[this->type_idx]==QString("int2")));
}
コード例 #16
0
ファイル: pgsqltypes.cpp プロジェクト: Ox0000/pgmodeler
PgSQLType PgSQLType::getAliasType(void)
{
	if(!isUserType())
	{
		if(type_list[this->type_idx]==QString("serial"))
			return(PgSQLType(QString("integer")));
		else if(type_list[this->type_idx]==QString("smallserial"))
			return(PgSQLType(QString("smallint")));
		else if(type_list[this->type_idx]==QString("bigserial"))
			return(PgSQLType(QString("bigint")));
		else
			return(PgSQLType(type_list[this->type_idx]));
	}
	else
		return(*this);
}
コード例 #17
0
ファイル: pgsqltypes.cpp プロジェクト: Ox0000/pgmodeler
void PgSQLType::setPrecision(int prec)
{
	if(!isUserType())
	{
		//Raises an error if the user tries to specify a precision > lenght
		if(((BaseType::type_list[type_idx]==QString("numeric") ||
			 BaseType::type_list[type_idx]==QString("decimal")) && prec > static_cast<int>(length)))
			throw Exception(ERR_ASG_INV_PRECISION,__PRETTY_FUNCTION__,__FILE__,__LINE__);
		//Raises an error if the precision is greater thant 6
		else if(((BaseType::type_list[type_idx]==QString("time") ||
				  BaseType::type_list[type_idx]==QString("timestamp") ||
				  BaseType::type_list[type_idx]==QString("interval")) && prec > 6))
			throw Exception(ERR_ASG_INV_PREC_TIMESTAMP,__PRETTY_FUNCTION__,__FILE__,__LINE__);

		this->precision=prec;
	}
}
コード例 #18
0
ファイル: pgsqltypes.cpp プロジェクト: Ox0000/pgmodeler
bool PgSQLType::acceptsPrecision(void)
{
	return(isNumericType() ||
				(!isUserType() && type_list[this->type_idx]!=QString("date") && isDateTimeType()));
}
コード例 #19
0
ファイル: pgsqltypes.cpp プロジェクト: InnovaMex/pgmodeler
bool PgSQLType::isNumericType(void)
{
  return(!isUserType() &&
         (type_list[this->type_idx]==QString("numeric") ||
          type_list[this->type_idx]==QString("decimal")));
}