comparison tests/JDBC_API_Tester.java @ 888:549225b7be85

Corrected ResultSetMetaData methods getPrecision(), getColumnDisplaySize() and ParameterMetaData method getPrecision() for the interval data types. They now return more precise information for the 13 possible interval data types.
author Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
date Thu, 04 Apr 2024 15:14:53 +0200 (13 months ago)
parents 674f9ed21308
children 07a4998898a8
comparison
equal deleted inserted replaced
887:674f9ed21308 888:549225b7be85
45 private int dbmsMajorVersion; 45 private int dbmsMajorVersion;
46 private int dbmsMinorVersion; 46 private int dbmsMinorVersion;
47 private boolean isPostDec2023; // flag to support version specific output 47 private boolean isPostDec2023; // flag to support version specific output
48 private boolean foundDifferences = false; 48 private boolean foundDifferences = false;
49 49
50 final private static int sbInitLen = 5442; 50 final private static int sbInitLen = 5468;
51 51
52 /** 52 /**
53 * constructor 53 * constructor
54 */ 54 */
55 JDBC_API_Tester() { 55 JDBC_API_Tester() {
1889 } 1889 }
1890 closeStmtResSet(stmt, rs); 1890 closeStmtResSet(stmt, rs);
1891 1891
1892 compareExpectedOutput("Test_Interval_Types", 1892 compareExpectedOutput("Test_Interval_Types",
1893 "Showing query ResultSetMetaData\n" + 1893 "Showing query ResultSetMetaData\n" +
1894 "ColumnName: c1 ColumnTypeName: interval year Precision: 10 Scale: 0 ColumnDisplaySize: 1 ColumnType: 4 ColumnClassName: java.lang.Integer\n" + 1894 "ColumnName: c1 ColumnTypeName: interval year Precision: 10 Scale: 0 ColumnDisplaySize: 4 ColumnType: 4 ColumnClassName: java.lang.Integer\n" +
1895 "ColumnName: c2 ColumnTypeName: interval month Precision: 10 Scale: 0 ColumnDisplaySize: 1 ColumnType: 4 ColumnClassName: java.lang.Integer\n" + 1895 "ColumnName: c2 ColumnTypeName: interval month Precision: 10 Scale: 0 ColumnDisplaySize: 6 ColumnType: 4 ColumnClassName: java.lang.Integer\n" +
1896 "ColumnName: c3 ColumnTypeName: interval day Precision: 4 Scale: 0 ColumnDisplaySize: 5 ColumnType: 2 ColumnClassName: java.math.BigDecimal\n" + 1896 "ColumnName: c3 ColumnTypeName: interval day Precision: 9 Scale: 0 ColumnDisplaySize: 9 ColumnType: 2 ColumnClassName: java.math.BigDecimal\n" +
1897 "ColumnName: c4 ColumnTypeName: interval hour Precision: 8 Scale: 3 ColumnDisplaySize: 5 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1897 "ColumnName: c4 ColumnTypeName: interval hour Precision: 11 Scale: 3 ColumnDisplaySize: 11 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1898 "ColumnName: c5 ColumnTypeName: interval minute Precision: 11 Scale: 3 ColumnDisplaySize: 5 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1898 "ColumnName: c5 ColumnTypeName: interval minute Precision: 13 Scale: 3 ColumnDisplaySize: 13 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1899 "ColumnName: c6 ColumnTypeName: interval second Precision: 13 Scale: 3 ColumnDisplaySize: 5 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1899 "ColumnName: c6 ColumnTypeName: interval second Precision: 15 Scale: 3 ColumnDisplaySize: 15 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1900 "ColumnName: c7 ColumnTypeName: interval year to month Precision: 10 Scale: 0 ColumnDisplaySize: 1 ColumnType: 4 ColumnClassName: java.lang.Integer\n" + 1900 "ColumnName: c7 ColumnTypeName: interval year to month Precision: 10 Scale: 0 ColumnDisplaySize: 6 ColumnType: 4 ColumnClassName: java.lang.Integer\n" +
1901 "ColumnName: c8 ColumnTypeName: interval day to hour Precision: 5 Scale: 3 ColumnDisplaySize: 5 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1901 "ColumnName: c8 ColumnTypeName: interval day to hour Precision: 11 Scale: 3 ColumnDisplaySize: 11 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1902 "ColumnName: c9 ColumnTypeName: interval day to minute Precision: 6 Scale: 3 ColumnDisplaySize: 5 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1902 "ColumnName: c9 ColumnTypeName: interval day to minute Precision: 13 Scale: 3 ColumnDisplaySize: 13 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1903 "ColumnName: c10 ColumnTypeName: interval day to second Precision: 7 Scale: 3 ColumnDisplaySize: 5 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1903 "ColumnName: c10 ColumnTypeName: interval day to second Precision: 15 Scale: 3 ColumnDisplaySize: 15 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1904 "ColumnName: c11 ColumnTypeName: interval hour to minute Precision: 9 Scale: 3 ColumnDisplaySize: 5 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1904 "ColumnName: c11 ColumnTypeName: interval hour to minute Precision: 13 Scale: 3 ColumnDisplaySize: 13 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1905 "ColumnName: c12 ColumnTypeName: interval hour to second Precision: 10 Scale: 3 ColumnDisplaySize: 5 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1905 "ColumnName: c12 ColumnTypeName: interval hour to second Precision: 15 Scale: 3 ColumnDisplaySize: 15 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1906 "ColumnName: c13 ColumnTypeName: interval minute to second Precision: 12 Scale: 3 ColumnDisplaySize: 5 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1906 "ColumnName: c13 ColumnTypeName: interval minute to second Precision: 15 Scale: 3 ColumnDisplaySize: 15 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1907 "Showing prepared query ResultSetMetaData\n" + 1907 "Showing prepared query ResultSetMetaData\n" +
1908 "ColumnName: c1 ColumnTypeName: interval year Precision: 10 Scale: 0 ColumnDisplaySize: 10 ColumnType: 4 ColumnClassName: java.lang.Integer\n" + 1908 "ColumnName: c1 ColumnTypeName: interval year Precision: 10 Scale: 0 ColumnDisplaySize: 4 ColumnType: 4 ColumnClassName: java.lang.Integer\n" +
1909 "ColumnName: c2 ColumnTypeName: interval month Precision: 10 Scale: 0 ColumnDisplaySize: 10 ColumnType: 4 ColumnClassName: java.lang.Integer\n" + 1909 "ColumnName: c2 ColumnTypeName: interval month Precision: 10 Scale: 0 ColumnDisplaySize: 6 ColumnType: 4 ColumnClassName: java.lang.Integer\n" +
1910 "ColumnName: c3 ColumnTypeName: interval day Precision: 4 Scale: 0 ColumnDisplaySize: 4 ColumnType: 2 ColumnClassName: java.math.BigDecimal\n" + 1910 "ColumnName: c3 ColumnTypeName: interval day Precision: 9 Scale: 0 ColumnDisplaySize: 9 ColumnType: 2 ColumnClassName: java.math.BigDecimal\n" +
1911 "ColumnName: c4 ColumnTypeName: interval hour Precision: 8 Scale: 3 ColumnDisplaySize: 8 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1911 "ColumnName: c4 ColumnTypeName: interval hour Precision: 11 Scale: 3 ColumnDisplaySize: 11 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1912 "ColumnName: c5 ColumnTypeName: interval minute Precision: 11 Scale: 3 ColumnDisplaySize: 11 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1912 "ColumnName: c5 ColumnTypeName: interval minute Precision: 13 Scale: 3 ColumnDisplaySize: 13 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1913 "ColumnName: c6 ColumnTypeName: interval second Precision: 13 Scale: 3 ColumnDisplaySize: 13 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1913 "ColumnName: c6 ColumnTypeName: interval second Precision: 15 Scale: 3 ColumnDisplaySize: 15 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1914 "ColumnName: c7 ColumnTypeName: interval year to month Precision: 10 Scale: 0 ColumnDisplaySize: 10 ColumnType: 4 ColumnClassName: java.lang.Integer\n" + 1914 "ColumnName: c7 ColumnTypeName: interval year to month Precision: 10 Scale: 0 ColumnDisplaySize: 6 ColumnType: 4 ColumnClassName: java.lang.Integer\n" +
1915 "ColumnName: c8 ColumnTypeName: interval day to hour Precision: 5 Scale: 3 ColumnDisplaySize: 5 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1915 "ColumnName: c8 ColumnTypeName: interval day to hour Precision: 11 Scale: 3 ColumnDisplaySize: 11 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1916 "ColumnName: c9 ColumnTypeName: interval day to minute Precision: 6 Scale: 3 ColumnDisplaySize: 6 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1916 "ColumnName: c9 ColumnTypeName: interval day to minute Precision: 13 Scale: 3 ColumnDisplaySize: 13 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1917 "ColumnName: c10 ColumnTypeName: interval day to second Precision: 7 Scale: 3 ColumnDisplaySize: 7 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1917 "ColumnName: c10 ColumnTypeName: interval day to second Precision: 15 Scale: 3 ColumnDisplaySize: 15 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1918 "ColumnName: c11 ColumnTypeName: interval hour to minute Precision: 9 Scale: 3 ColumnDisplaySize: 9 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1918 "ColumnName: c11 ColumnTypeName: interval hour to minute Precision: 13 Scale: 3 ColumnDisplaySize: 13 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1919 "ColumnName: c12 ColumnTypeName: interval hour to second Precision: 10 Scale: 3 ColumnDisplaySize: 10 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1919 "ColumnName: c12 ColumnTypeName: interval hour to second Precision: 15 Scale: 3 ColumnDisplaySize: 15 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1920 "ColumnName: c13 ColumnTypeName: interval minute to second Precision: 12 Scale: 3 ColumnDisplaySize: 12 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" + 1920 "ColumnName: c13 ColumnTypeName: interval minute to second Precision: 15 Scale: 3 ColumnDisplaySize: 15 ColumnType: 3 ColumnClassName: java.math.BigDecimal\n" +
1921 "Showing prepared query ParameterMetaData\n" + 1921 "Showing prepared query ParameterMetaData\n" +
1922 "ParameterTypeName: interval year Precision: 10 Scale: 0 ParameterType: 4 ParameterClassName: java.lang.Integer\n" + 1922 "ParameterTypeName: interval year Precision: 10 Scale: 0 ParameterType: 4 ParameterClassName: java.lang.Integer\n" +
1923 "ParameterTypeName: interval month Precision: 10 Scale: 0 ParameterType: 4 ParameterClassName: java.lang.Integer\n" + 1923 "ParameterTypeName: interval month Precision: 10 Scale: 0 ParameterType: 4 ParameterClassName: java.lang.Integer\n" +
1924 "ParameterTypeName: interval day Precision: 4 Scale: 0 ParameterType: 2 ParameterClassName: java.math.BigDecimal\n" + 1924 "ParameterTypeName: interval day Precision: 9 Scale: 0 ParameterType: 2 ParameterClassName: java.math.BigDecimal\n" +
1925 "ParameterTypeName: interval hour Precision: 8 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" + 1925 "ParameterTypeName: interval hour Precision: 11 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" +
1926 "ParameterTypeName: interval minute Precision: 11 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" + 1926 "ParameterTypeName: interval minute Precision: 13 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" +
1927 "ParameterTypeName: interval second Precision: 13 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" + 1927 "ParameterTypeName: interval second Precision: 15 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" +
1928 "ParameterTypeName: interval year to month Precision: 10 Scale: 0 ParameterType: 4 ParameterClassName: java.lang.Integer\n" + 1928 "ParameterTypeName: interval year to month Precision: 10 Scale: 0 ParameterType: 4 ParameterClassName: java.lang.Integer\n" +
1929 "ParameterTypeName: interval day to hour Precision: 5 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" + 1929 "ParameterTypeName: interval day to hour Precision: 11 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" +
1930 "ParameterTypeName: interval day to minute Precision: 6 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" + 1930 "ParameterTypeName: interval day to minute Precision: 13 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" +
1931 "ParameterTypeName: interval day to second Precision: 7 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" + 1931 "ParameterTypeName: interval day to second Precision: 15 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" +
1932 "ParameterTypeName: interval hour to minute Precision: 9 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" + 1932 "ParameterTypeName: interval hour to minute Precision: 13 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" +
1933 "ParameterTypeName: interval hour to second Precision: 10 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" + 1933 "ParameterTypeName: interval hour to second Precision: 15 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n" +
1934 "ParameterTypeName: interval minute to second Precision: 12 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n"); 1934 "ParameterTypeName: interval minute to second Precision: 15 Scale: 0 ParameterType: 3 ParameterClassName: java.math.BigDecimal\n");
1935 } 1935 }
1936 1936
1937 private void Test_PlanExplainTraceDebugCmds() { 1937 private void Test_PlanExplainTraceDebugCmds() {
1938 sb.setLength(0); // clear the output log buffer 1938 sb.setLength(0); // clear the output log buffer
1939 1939