bool PgSQLType::isNumericType(void) { QString curr_type=(!isUserType() ? type_list[this->type_idx] : QString()); return(!isUserType() && (curr_type==QString("numeric") || curr_type==QString("decimal"))); }
bool PgSQLType::isNetworkType(void) { QString curr_type=(!isUserType() ? type_list[this->type_idx] : QString()); return(!isUserType() && (curr_type==QString("cidr") || curr_type==QString("inet"))); }
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"))); }
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"))); }
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"))); }
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"))); }
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"))); }
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"))); }
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"))); }
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"))); }
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"))); }
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\"")); }
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")); }
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"))); }
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"))); }
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); }
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; } }
bool PgSQLType::acceptsPrecision(void) { return(isNumericType() || (!isUserType() && type_list[this->type_idx]!=QString("date") && isDateTimeType())); }
bool PgSQLType::isNumericType(void) { return(!isUserType() && (type_list[this->type_idx]==QString("numeric") || type_list[this->type_idx]==QString("decimal"))); }