Class MySQLTypeInfo

java.lang.Object
org.datanucleus.store.rdbms.schema.SQLTypeInfo
org.datanucleus.store.rdbms.adapter.MySQLTypeInfo
All Implemented Interfaces:
org.datanucleus.store.schema.StoreSchemaData

public class MySQLTypeInfo extends SQLTypeInfo
SQL Type info for MySQL datastores.
  • Constructor Details

    • MySQLTypeInfo

      public MySQLTypeInfo(ResultSet rs)
      Constructor
      Parameters:
      rs - Result set from the database metadata
    • MySQLTypeInfo

      public MySQLTypeInfo(String typeName, short dataType, int precision, String literalPrefix, String literalSuffix, String createParams, int nullable, boolean caseSensitive, short searchable, boolean unsignedAttribute, boolean fixedPrecScale, boolean autoIncrement, String localTypeName, short minimumScale, short maximumScale, int numPrecRadix)
  • Method Details

    • fixAllowsPrecisionSpec

      private void fixAllowsPrecisionSpec()
    • isCompatibleWith

      public boolean isCompatibleWith(RDBMSColumnInfo colInfo)
      Utility to check the compatibility of this type with the supplied Column type.
      Overrides:
      isCompatibleWith in class SQLTypeInfo
      Parameters:
      colInfo - The Column type
      Returns:
      Whether they are compatible
    • isStringType

      private static boolean isStringType(int type)
      Tests whether or not the given JDBC type is a MySQL "string" type.

      MySQL likes to interchange CHAR and VARCHAR at its own discretion, and automatically upgrades types to bigger types if necessary. In addition, we use the BINARY qualifier on CHAR and VARCHAR to get case-sensitive treatment. Taken together it means we really can't distinguish one string/binary type from another so we treat them all as one big happy string family.