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

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Trivial
    • Resolution: Won't Fix
    • None
    • None
    • None

    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.

      Attachments

        Activity

          People

            serg Sergei Golubchik
            philipstoev Philip Stoev (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.