Class MySQLTypeInfo

  • All Implemented Interfaces:
    org.datanucleus.store.schema.StoreSchemaData

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

      • MySQLTypeInfo

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

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

      • 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.