Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-2207

LP:740973 - Connector/J does not return sub-second precision of fields when retrieving database metadata

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Trivial
    • Resolution: Won't Fix
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:

      Description

      The metadata returned by this.conn.getMetaData() appears to have hard-coded values for COLUMN_SIZE when it comes to temporal fields. For TIMESTAMP for example, 19 is always returned regardless of how many precision digits there are.

      This happens regardless of whether the "useInformationSchema" property is set on the connection.

      junit test case:

      public void testTableMetadata() throws SQLException {

      createTable("ms_metadata", "(ts0 TIMESTAMP(0), ts3 TIMESTAMP(3))");
      DatabaseMetaData metaData = this.conn.getMetaData();
      this.rs = metaData.getColumns(null, null, "ms_metadata", null);

      this.rs.next();
      assertEquals(java.sql.Types.TIMESTAMP, this.rs.getInt("DATA_TYPE"));
      assertEquals("TIMESTAMP", this.rs.getString("TYPE_NAME"));
      assertEquals(19, this.rs.getInt("COLUMN_SIZE"));

      this.rs.next();
      assertEquals(java.sql.Types.TIMESTAMP, this.rs.getInt("DATA_TYPE"));
      assertEquals("TIMESTAMP", this.rs.getString("TYPE_NAME"));
      assertEquals(23, this.rs.getInt("COLUMN_SIZE"));
      }

      The last assert will fail. Same applies to DATETIME and TIME types.

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            serg Sergei Golubchik added a comment -

            Re: Connector/J does not return sub-second precision of fields when retrieving database metadata
            These values are hard-coded in the Connector/J, the sever cannot influence them.

            http://bazaar.launchpad.net/~mark-mysql/connectorj/5.1/view/1053/src/com/mysql/jdbc/DatabaseMetaDataUsingInfoSchema.java#L1190

            Show
            serg Sergei Golubchik added a comment - Re: Connector/J does not return sub-second precision of fields when retrieving database metadata These values are hard-coded in the Connector/J, the sever cannot influence them. http://bazaar.launchpad.net/~mark-mysql/connectorj/5.1/view/1053/src/com/mysql/jdbc/DatabaseMetaDataUsingInfoSchema.java#L1190
            Hide
            ratzpo Rasmus Johansson added a comment -

            Launchpad bug id: 740973

            Show
            ratzpo Rasmus Johansson added a comment - Launchpad bug id: 740973

              People

              • Assignee:
                serg Sergei Golubchik
                Reporter:
                philipstoev Philip Stoev
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: