package com.tesora.dve.db.mysql; /* * #%L * Tesora Inc. * Database Virtualization Engine * %% * Copyright (C) 2011 - 2014 Tesora Inc. * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% */ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.sql.Types; import com.tesora.dve.db.DBNative; import org.apache.log4j.Logger; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import com.tesora.dve.common.catalog.TestCatalogHelper; import com.tesora.dve.db.NativeType; import com.tesora.dve.db.mysql.MysqlNativeType.MysqlType; import com.tesora.dve.db.mysql.libmy.TestColumnDef; import com.tesora.dve.exceptions.PEException; import com.tesora.dve.server.connectionmanager.TestHost; import com.tesora.dve.server.global.HostService; import com.tesora.dve.singleton.Singletons; import com.tesora.dve.standalone.PETest; public class MysqlNativeTest { static Logger logger = Logger.getLogger(MysqlNativeTest.class); @BeforeClass public static void setup() throws Exception { TestCatalogHelper.createMinimalCatalog(PETest.class); TestHost.startServices(PETest.class); } @AfterClass public static void teardown() throws Exception { TestHost.stopServices(); } @Test public void testNativeTypeCatalog() throws PEException { NativeType charType = Singletons.require(DBNative.class).findType("CHAR"); // look up by top level name NativeType intType = Singletons.require(DBNative.class).findType("INTEGER"); // look up by synonymn NativeType blobType = Singletons.require(DBNative.class).findType("LONGBLOB"); // look up by synonymn assertTrue(charType.getDataType() == Types.CHAR); assertTrue(charType.requiresQuotes()); assertTrue(charType.isComparable()); assertTrue(intType.getDataType() == Types.INTEGER); assertFalse(intType.requiresQuotes()); assertTrue(blobType.getDataType() == Types.LONGVARBINARY); assertFalse(blobType.isComparable()); } @Test(expected = PEException.class) public void testFindUnknownType() throws PEException { Singletons.require(DBNative.class).findType("UNKNOWN TYPE"); } /* @Test public void testCreateTable() throws PEException, SQLException { DistributionModel dm = new BroadcastDistributionModel(); PersistentGroup sg1 = new PersistentGroup("Default"); UserDatabase udb = new UserDatabase(UserDatabase.DEFAULT, sg1); UserTable ut1 = new UserTable("native_syntax_test", dm, udb, TableState.SHARED, PEConstants.DEFAULT_DB_ENGINE, PEConstants.DEFAULT_TABLE_TYPE); // We will test 5 types as there are 5 cases of CREATE TABLE syntax related to types // - type has no precision or scale (e.g. DATE) // - type has precision (e.g. INT) // - type is signed (e.g. INT SIGNED) // - type has precision and scale (e.g. DECIMAL) // - type has size (e.g. CHAR) UserColumn uc = new UserColumn("col1", 1, "CHAR"); uc.setSize(15); uc.setPrecision(15); uc.setScale(0); ut1.addUserColumn(uc); uc = new UserColumn("col2", 4, "INT"); uc.setNativeTypeModifiers(MysqlNativeType.MODIFIER_UNSIGNED); uc.setSize(10); uc.setPrecision(10); uc.setScale(0); ut1.addUserColumn(uc); uc = new UserColumn("col3", 4, "INT"); uc.setNativeTypeModifiers(MysqlNativeType.MODIFIER_SIGNED); uc.setSize(10); uc.setPrecision(10); uc.setScale(0); ut1.addUserColumn(uc); uc = new UserColumn("col4", 91, "DATE"); uc.setSize(10); uc.setPrecision(0); uc.setScale(0); ut1.addUserColumn(uc); uc = new UserColumn("col5", 3, "DECIMAL"); uc.setSize(7); uc.setPrecision(5); uc.setScale(4); ut1.addUserColumn(uc); logger.debug("Create table statement is: " + ut1.getCreateTableStmt()); DBHelper dbh = new DBHelper( TestCatalogHelper.getTestCatalogProps(PETest.class)) .connect(); dbh.executeQuery(ut1.getCreateTableStmt()); Statement stmt = dbh.getConnection().createStatement(); ResultSet rs = stmt.executeQuery("SELECT col1, col2, col3, col4, col5 FROM native_syntax_test where 0=1"); // NOPMD by doug on 30/11/12 3:13 PM ResultSetMetaData rsmd = rs.getMetaData(); UserColumn ucRSMD1 = new UserColumn(Singletons.require(DBNative.class).getResultSetColumnInfo(rsmd, null, 1)); UserColumn ucRSMD2 = new UserColumn(Singletons.require(DBNative.class).getResultSetColumnInfo(rsmd, null, 2)); UserColumn ucRSMD3 = new UserColumn(Singletons.require(DBNative.class).getResultSetColumnInfo(rsmd, null, 3)); UserColumn ucRSMD4 = new UserColumn(Singletons.require(DBNative.class).getResultSetColumnInfo(rsmd, null, 4)); UserColumn ucRSMD5 = new UserColumn(Singletons.require(DBNative.class).getResultSetColumnInfo(rsmd, null, 5)); assertTrue(ut1.getUserColumn("col1").getDataType() == ucRSMD1.getDataType()); assertTrue(ut1.getUserColumn("col2").getDataType() == ucRSMD2.getDataType()); assertTrue(ut1.getUserColumn("col3").getDataType() == ucRSMD3.getDataType()); assertTrue(ut1.getUserColumn("col4").getDataType() == ucRSMD4.getDataType()); assertTrue(ut1.getUserColumn("col5").getDataType() == ucRSMD5.getDataType()); assertTrue(ut1.getUserColumn("col1").getNativeTypeName().equals(ucRSMD1.getNativeTypeName())); assertTrue(ut1.getUserColumn("col2").getNativeTypeName().equals(ucRSMD2.getNativeTypeName())); assertTrue(ut1.getUserColumn("col3").getNativeTypeName().equals(ucRSMD3.getNativeTypeName())); assertTrue(ut1.getUserColumn("col4").getNativeTypeName().equals(ucRSMD4.getNativeTypeName())); assertTrue(ut1.getUserColumn("col5").getNativeTypeName().equals(ucRSMD5.getNativeTypeName())); assertTrue(ucRSMD1.getNativeTypeModifiers() == null); assertTrue(ut1.getUserColumn("col2").getNativeTypeModifiers().equals(ucRSMD2.getNativeTypeModifiers())); assertTrue(ucRSMD3.getNativeTypeModifiers() == null); assertTrue(ucRSMD4.getNativeTypeModifiers() == null); assertTrue(ucRSMD5.getNativeTypeModifiers() == null); assertTrue(ut1.getUserColumn("col1").getPrecision() == ucRSMD1.getPrecision()); assertTrue(ut1.getUserColumn("col2").getPrecision() == ucRSMD2.getPrecision()); assertTrue(ut1.getUserColumn("col3").getPrecision() == ucRSMD3.getPrecision()); assertTrue(ut1.getUserColumn("col4").getPrecision() == ucRSMD4.getPrecision()); assertTrue(ut1.getUserColumn("col5").getPrecision() == ucRSMD5.getPrecision()); assertTrue(ut1.getUserColumn("col1").getScale() == ucRSMD1.getScale()); assertTrue(ut1.getUserColumn("col2").getScale() == ucRSMD2.getScale()); assertTrue(ut1.getUserColumn("col3").getScale() == ucRSMD3.getScale()); assertTrue(ut1.getUserColumn("col4").getScale() == ucRSMD4.getScale()); assertTrue(ut1.getUserColumn("col5").getScale() == ucRSMD5.getScale()); stmt.close(); dbh.disconnect(); } */ @Test public void testTypeLookup() throws PEException { class TestData { TestColumnDef tcd = null; MysqlType mt = null; TestData(TestColumnDef tcd, MysqlType mt) { this.tcd = tcd; this.mt = mt; } } TestData[] testData = { new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 65535), MysqlType.TEXT), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 255), MysqlType.TINYTEXT), new TestData( new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 16777215), MysqlType.MEDIUMTEXT), new TestData( new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 16777216), MysqlType.LONGTEXT), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BIT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 1), MysqlType.BIT), // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_DECIMAL, 0, 0), MysqlType.DECIMAL), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY, MysqlNativeConstants.FLDPKT_FLAG_NUM, 4), MysqlType.TINYINT), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 3), MysqlType.TINYINT), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_SHORT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 6), MysqlType.SMALLINT), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_SHORT, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 5), MysqlType.SMALLINT), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 11), MysqlType.INT), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_FLOAT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 12), MysqlType.FLOAT), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_DOUBLE, MysqlNativeConstants.FLDPKT_FLAG_NUM, 22), MysqlType.DOUBLE), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_NULL, 0, 0), MysqlType.NULL), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TIMESTAMP, MysqlNativeConstants.FLDPKT_FLAG_NOT_NULL + MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_ZEROFILL + MysqlNativeConstants.FLDPKT_FLAG_BINARY + MysqlNativeConstants.FLDPKT_FLAG_ON_UPDATE_NOW, 19), MysqlType.TIMESTAMP), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONGLONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 20), MysqlType.BIGINT), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_INT24, MysqlNativeConstants.FLDPKT_FLAG_NUM, 9), MysqlType.MEDIUMINT), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_DATE, 0, 0), MysqlType.DATE), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TIME, 0, 0), MysqlType.TIME), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_DATETIME, 0, 0), MysqlType.DATETIME), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_YEAR, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_ZEROFILL + MysqlNativeConstants.FLDPKT_FLAG_NUM, 4), MysqlType.YEAR), // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_NEWDATE, 0, 0), MysqlType.DATE), // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_NEWDECIMAL, MysqlNativeConstants.FLDPKT_FLAGS_BINARY_FLAG, // 39), MysqlType.NUMERIC), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_ENUM, 0, 0), MysqlType.ENUM), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_SET, 0, 0), MysqlType.SET), // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY_BLOB, // MysqlNativeConstants.FLDPKT_FLAGS_BINARY_FLAG // + MysqlNativeConstants.FLDPKT_FLAGS_BLOB_FLAG, 255), MysqlType.TINYBLOB), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BINARY + MysqlNativeConstants.FLDPKT_FLAG_BLOB, 255), MysqlType.TINYBLOB), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 255), MysqlType.ALTTINYBLOB), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONG_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BINARY + MysqlNativeConstants.FLDPKT_FLAG_NOT_NULL, 16777216), MysqlType.ALTLONGBLOB), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BINARY + MysqlNativeConstants.FLDPKT_FLAG_BLOB, 65535), MysqlType.BLOB), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BINARY + MysqlNativeConstants.FLDPKT_FLAG_BLOB, 16777215), MysqlType.MEDIUMBLOB), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_MEDIUM_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 16777215), MysqlType.ALTMEDIUMBLOB), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BINARY + MysqlNativeConstants.FLDPKT_FLAG_BLOB, 16777216), MysqlType.LONGBLOB), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, 0, 255), MysqlType.VARCHAR), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, 0, 10), MysqlType.CHAR), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 10), MysqlType.BINARY), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NOT_NULL, 2048), MysqlType.VARCHAR), new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 2048), MysqlType.VARBINARY), // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_GEOMETRY, 0, 0), MysqlType.GEOMETRY), // Data generated by 'all_types' table - there may be dupes here due to aliases, transforms, etc. // Column: bigint_aka_bigint_20 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONGLONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 20), MysqlType.BIGINT), // Column: bigint_unsigned_aka_bigint_20_unsigned new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONGLONG, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 20), MysqlType.BIGINT), // Column: bigint_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONGLONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 1), MysqlType.BIGINT), // Column: bigint_1_unsigned new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONGLONG, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 1), MysqlType.BIGINT), // Column: bigint_10 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONGLONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 10), MysqlType.BIGINT), // Column: bigint_255 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONGLONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 255), MysqlType.BIGINT), // Column: bigint_64 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONGLONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 64), MysqlType.BIGINT), // Column: bigint_65 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONGLONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 65), MysqlType.BIGINT), // Column: binary_aka_binary_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 1), MysqlType.BINARY), // Column: binary_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 1), MysqlType.BINARY), // Column: binary_10 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 10), MysqlType.BINARY), // Column: binary_255 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 255), MysqlType.BINARY), // Column: binary_64 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 64), MysqlType.BINARY), // Column: binary_65 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 65), MysqlType.BINARY), // Column: bit_aka_bit_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BIT, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED, 1), MysqlType.BIT), // Column: bit_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BIT, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED, 1), MysqlType.BIT), // Column: bit_10 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BIT, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED, 10), MysqlType.BIT), // Column: bit_64 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BIT, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED, 64), MysqlType.BIT), // Column: blob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 65535), MysqlType.BLOB), // Column: blob_1_aka_tinyblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 255), MysqlType.TINYBLOB), // Column: blob_10_aka_tinyblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 255), MysqlType.TINYBLOB), // Column: blob_16777215_aka_mediumblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 16777215), MysqlType.MEDIUMBLOB), // Column: blob_16777216_aka_longblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 16777216), MysqlType.LONGBLOB), // Column: blob_4294967295L_aka_longblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 4294967295L), MysqlType.LONGBLOB), // Column: blob_21844_aka_blob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 65535), MysqlType.BLOB), // Column: blob_21845_aka_blob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 65535), MysqlType.BLOB), // Column: blob_21846_aka_blob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 65535), MysqlType.BLOB), // Column: blob_255_aka_tinyblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 255), MysqlType.TINYBLOB), // Column: blob_256_aka_blob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 65535), MysqlType.BLOB), // Column: blob_32768_aka_blob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 65535), MysqlType.BLOB), // Column: blob_64_aka_tinyblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 255), MysqlType.TINYBLOB), // Column: blob_65_aka_tinyblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 255), MysqlType.TINYBLOB), // Column: blob_65535_aka_blob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 65535), MysqlType.BLOB), // Column: blob_65536_aka_mediumblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 16777215), MysqlType.MEDIUMBLOB), // These should be TINYINTs !! // Column: bool_aka_tinyint new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY, MysqlNativeConstants.FLDPKT_FLAG_NUM, 1), MysqlType.BOOL), // Column: boolean_aka_tinyint new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY, MysqlNativeConstants.FLDPKT_FLAG_NUM, 1), MysqlType.BOOL), // Column: char_aka_char_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 3), MysqlType.CHAR), // Column: char_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 3), MysqlType.CHAR), // Column: char_10 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 30), MysqlType.CHAR), // Column: char_255 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 765), MysqlType.CHAR), // Column: char_64 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 192), MysqlType.CHAR), // Column: char_65 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 195), MysqlType.CHAR), // Column: character_aka_char new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 3), MysqlType.CHAR), // Column: date new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_DATE, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 10), MysqlType.DATE), // Column: datetime new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_DATETIME, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 19), MysqlType.DATETIME), // Column: dec_aka_decimal new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_NEWDECIMAL, MysqlNativeConstants.FLDPKT_FLAG_NUM, 11), MysqlType.DECIMAL), // Column: decimal_aka_decimal_10_0 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_NEWDECIMAL, MysqlNativeConstants.FLDPKT_FLAG_NUM, 11), MysqlType.DECIMAL), // Column: decimal_unsigned_aka_decimal_10_0_uns new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_NEWDECIMAL, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 10), MysqlType.DECIMAL), // Column: decimal_1_aka_decimal_1_0 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_NEWDECIMAL, MysqlNativeConstants.FLDPKT_FLAG_NUM, 2), MysqlType.DECIMAL), // Column: decimal_1_unsigned_aka_decimal_1_0_un new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_NEWDECIMAL, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 1), MysqlType.DECIMAL), // Column: decimal_10_aka_decimal_10_0 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_NEWDECIMAL, MysqlNativeConstants.FLDPKT_FLAG_NUM, 11), MysqlType.DECIMAL), // Column: decimal_2_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_NEWDECIMAL, MysqlNativeConstants.FLDPKT_FLAG_NUM, 4), MysqlType.DECIMAL), // Column: decimal_2_1_unsigned new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_NEWDECIMAL, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 3), MysqlType.DECIMAL), // Column: decimal_64_aka_decimal_64_0 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_NEWDECIMAL, MysqlNativeConstants.FLDPKT_FLAG_NUM, 65), MysqlType.DECIMAL), // Column: decimal_65_aka_decimal_65_0 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_NEWDECIMAL, MysqlNativeConstants.FLDPKT_FLAG_NUM, 66), MysqlType.DECIMAL), // Column: double new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_DOUBLE, MysqlNativeConstants.FLDPKT_FLAG_NUM, 22), MysqlType.DOUBLE), // Column: double_unsigned_aka_double_unsigned new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_DOUBLE, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 22), MysqlType.DOUBLE), // Column: double_2_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_DOUBLE, MysqlNativeConstants.FLDPKT_FLAG_NUM, 2), MysqlType.DOUBLE), // Column: double_2_1_unsigned new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_DOUBLE, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 2), MysqlType.DOUBLE), // Column: double_precision__aka_double new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_DOUBLE, MysqlNativeConstants.FLDPKT_FLAG_NUM, 22), MysqlType.DOUBLE), // Column: float new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_FLOAT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 12), MysqlType.FLOAT), // Column: float_unsigned_aka_float_unsigned new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_FLOAT, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 12), MysqlType.FLOAT), // Column: float_1_aka_float new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_FLOAT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 12), MysqlType.FLOAT), // Column: float_1_unsigned_aka_float_unsigned new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_FLOAT, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 12), MysqlType.FLOAT), // Column: float_10_aka_float new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_FLOAT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 12), MysqlType.FLOAT), // Column: float_2_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_FLOAT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 2), MysqlType.FLOAT), // Column: float_2_1_unsigned new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_FLOAT, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 2), MysqlType.FLOAT), // Column: float4_aka_float new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_FLOAT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 12), MysqlType.FLOAT), // Column: float8_aka_double new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_DOUBLE, MysqlNativeConstants.FLDPKT_FLAG_NUM, 22), MysqlType.DOUBLE), // Column: int_aka_int_11 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 11), MysqlType.INT), // Column: int_unsigned_aka_int_10_unsigned new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONG, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 10), MysqlType.INT), // Column: int_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 1), MysqlType.INT), // Column: int_1_unsigned new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONG, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 1), MysqlType.INT), // Column: int_10 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 10), MysqlType.INT), // Column: int_255 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 255), MysqlType.INT), // Column: int_64 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 64), MysqlType.INT), // Column: int_65 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 65), MysqlType.INT), // Column: int1_aka_tinyint new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY, MysqlNativeConstants.FLDPKT_FLAG_NUM, 4), MysqlType.TINYINT), // Column: int2_aka_smallint new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_SHORT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 6), MysqlType.SMALLINT), // Column: int3_aka_mediumint new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_INT24, MysqlNativeConstants.FLDPKT_FLAG_NUM, 9), MysqlType.MEDIUMINT), // Column: int4_aka_int new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 11), MysqlType.INT), // Column: int8_aka_bigint new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONGLONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 20), MysqlType.BIGINT), // Column: integer_aka_int new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_LONG, MysqlNativeConstants.FLDPKT_FLAG_NUM, 11), MysqlType.INT), // Column: long_aka_mediumtext new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 16777215), MysqlType.MEDIUMTEXT), // Column: long_varbinary__aka_mediumblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 16777215), MysqlType.MEDIUMBLOB), // // This is a MEDIUMTEXT with UTF_8, so the length is 3 times as long - we don't support that yet, think it's // // a LONGTEXT // // Column: long_varchar__aka_mediumtext // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 50331645), // MysqlType.MEDIUMTEXT), // Column: longblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 4294967295L), MysqlType.LONGBLOB), // Column: longtext new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 4294967295L), MysqlType.LONGTEXT), // Column: mediumblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 16777215), MysqlType.MEDIUMBLOB), // Column: mediumint_aka_mediumint_9 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_INT24, MysqlNativeConstants.FLDPKT_FLAG_NUM, 9), MysqlType.MEDIUMINT), // Column: mediumint_unsigned_aka_mediumint_8_un new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_INT24, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 8), MysqlType.MEDIUMINT), // Column: mediumint_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_INT24, MysqlNativeConstants.FLDPKT_FLAG_NUM, 1), MysqlType.MEDIUMINT), // Column: mediumint_1_unsigned new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_INT24, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 1), MysqlType.MEDIUMINT), // Column: mediumint_10 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_INT24, MysqlNativeConstants.FLDPKT_FLAG_NUM, 10), MysqlType.MEDIUMINT), // Column: mediumint_255 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_INT24, MysqlNativeConstants.FLDPKT_FLAG_NUM, 255), MysqlType.MEDIUMINT), // Column: mediumint_64 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_INT24, MysqlNativeConstants.FLDPKT_FLAG_NUM, 64), MysqlType.MEDIUMINT), // Column: mediumint_65 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_INT24, MysqlNativeConstants.FLDPKT_FLAG_NUM, 65), MysqlType.MEDIUMINT), // Column: mediumtext new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 16777215), MysqlType.MEDIUMTEXT), // Column: middleint_aka_mediumint new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_INT24, MysqlNativeConstants.FLDPKT_FLAG_NUM, 9), MysqlType.MEDIUMINT), // Column: nchar_aka_char_1_CHARACTER_SET_utf8 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 3), MysqlType.CHAR), // Column: nchar_1_aka_char_1_CHARACTER_SET_utf new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 3), MysqlType.CHAR), // Column: numeric_aka_decimal new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_NEWDECIMAL, MysqlNativeConstants.FLDPKT_FLAG_NUM, 11), MysqlType.DECIMAL), // Column: nvarchar_1_aka_varchar_1_CHARACTER_S new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 3), MysqlType.VARCHAR), // Column: nvarchar_10_aka_varchar_10_CHARACTER new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 30), MysqlType.VARCHAR), // Column: nvarchar_16777215_aka_longtext_CHARA new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 4294967295L), MysqlType.LONGTEXT), // Column: nvarchar_16777216_aka_longtext_CHARA new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 4294967295L), MysqlType.LONGTEXT), // // This is a MEDIUMTEXT with UTF_8, so the length is 3 times as long - we don't support that yet, think it's // // a LONGTEXT // // Column: nvarchar_21846_aka_mediumtext_CHARAC // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 50331645), // MysqlType.MEDIUMTEXT), // Column: nvarchar_255_aka_varchar_255_CHARACT new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 765), MysqlType.VARCHAR), // Column: nvarchar_256_aka_varchar_256_CHARACT new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 768), MysqlType.VARCHAR), // // This is a MEDIUMTEXT with UTF_8, so the length is 3 times as long - we don't support that yet, think it's // // a LONGTEXT // // Column: nvarchar_32768_aka_mediumtext_CHARAC // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 50331645), // MysqlType.MEDIUMTEXT), // Column: nvarchar_64_aka_varchar_64_CHARACTER new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 192), MysqlType.VARCHAR), // Column: nvarchar_65_aka_varchar_65_CHARACTER new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 195), MysqlType.VARCHAR), // Column: real_aka_double new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_DOUBLE, MysqlNativeConstants.FLDPKT_FLAG_NUM, 22), MysqlType.DOUBLE), // Column: smallint_aka_smallint_6 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_SHORT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 6), MysqlType.SMALLINT), // Column: smallint_unsigned_aka_smallint_5_uns new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_SHORT, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 5), MysqlType.SMALLINT), // Column: smallint_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_SHORT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 1), MysqlType.SMALLINT), // Column: smallint_1_unsigned new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_SHORT, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 1), MysqlType.SMALLINT), // Column: smallint_10 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_SHORT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 10), MysqlType.SMALLINT), // Column: smallint_255 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_SHORT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 255), MysqlType.SMALLINT), // Column: smallint_64 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_SHORT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 64), MysqlType.SMALLINT), // Column: smallint_65 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_SHORT, MysqlNativeConstants.FLDPKT_FLAG_NUM, 65), MysqlType.SMALLINT), // Column: text new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 65535), MysqlType.TEXT), // // This is a TEXT with UTF_8, so the length is 3 times as long - we don't support that yet, think it's // // a MEDIUMTEXT // // Column: text // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 196605), // MysqlType.TEXT), // Column: text_1_aka_tinytext new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 255), MysqlType.TINYTEXT), // // This is a TINYTEXT with UTF_8, so the length is 3 times as long - we don't support that yet, think it's // // a TEXT // // Column: text_10_aka_tinytext // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 765), // MysqlType.TINYTEXT), // Column: text_16777215_aka_mediumtext new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 16777215), MysqlType.MEDIUMTEXT), // Column: text_16777216_aka_longtext new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 16777216), MysqlType.LONGTEXT), // Column: text_21844_aka_text new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 21844), MysqlType.TEXT), // Column: text_21845_aka_text new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 21845), MysqlType.TEXT), // Column: text_21846_aka_text new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 21846), MysqlType.TEXT), // Column: text_255_aka_tinytext new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 255), MysqlType.TINYTEXT), // Column: text_256_aka_text new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 256), MysqlType.TEXT), // Column: text_32768_aka_text new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 32768), MysqlType.TEXT), // Column: text_64_aka_tinytext new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 64), MysqlType.TINYTEXT), // Column: text_65_aka_tinytext new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 65), MysqlType.TINYTEXT), // Column: text_65536_aka_mediumtext new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 65536), MysqlType.MEDIUMTEXT), // Column: time new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TIME, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 8), MysqlType.TIME), // Column: timestamp_aka_timestamp_NOT_NULL_DEF new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TIMESTAMP, MysqlNativeConstants.FLDPKT_FLAG_NOT_NULL + MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_ZEROFILL + MysqlNativeConstants.FLDPKT_FLAG_BINARY + MysqlNativeConstants.FLDPKT_FLAG_TIMESTAMP + MysqlNativeConstants.FLDPKT_FLAG_ON_UPDATE_NOW, 19), MysqlType.TIMESTAMP), // Column: tinyblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 255), MysqlType.TINYBLOB), // Column: tinyint_aka_tinyint_4 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY, MysqlNativeConstants.FLDPKT_FLAG_NUM, 4), MysqlType.TINYINT), // Column: tinyint_unsigned_aka_tinyint_3_unsig new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_NUM, 3), MysqlType.TINYINT), // // These come out as BOOL since we haven't fixed that yet (BOOLs are TINYINT(1) - shouldn't be actual type) // // Column: tinyint_1 // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY, MysqlNativeConstants.FLDPKT_FLAG_NUM, 1), // MysqlType.TINYINT), // // Column: tinyint_1_unsigned // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED // + MysqlNativeConstants.FLDPKT_FLAG_NUM, 1), MysqlType.TINYINT), // Column: tinyint_4 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY, MysqlNativeConstants.FLDPKT_FLAG_NUM, 4), MysqlType.TINYINT), // // These don't work, because BOOL is around, once it's gone they will // // Column: tinyint_10 // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY, MysqlNativeConstants.FLDPKT_FLAG_NUM, 10), // MysqlType.TINYINT), // // Column: tinyint_255 // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY, MysqlNativeConstants.FLDPKT_FLAG_NUM, 255), // MysqlType.TINYINT), // // Column: tinyint_64 // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY, MysqlNativeConstants.FLDPKT_FLAG_NUM, 64), // MysqlType.TINYINT), // // Column: tinyint_65 // new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_TINY, MysqlNativeConstants.FLDPKT_FLAG_NUM, 65), // MysqlType.TINYINT), // Column: tinytext new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 255), MysqlType.TINYTEXT), // Column: varbinary_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 1), MysqlType.VARBINARY), // Column: varbinary_10 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 10), MysqlType.VARBINARY), // Column: varbinary_16777215_aka_mediumblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 16777215), MysqlType.MEDIUMBLOB), // Column: varbinary_16777216_aka_longblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 4294967295L), MysqlType.LONGBLOB), // Column: varbinary_255 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 255), MysqlType.VARBINARY), // Column: varbinary_256 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 256), MysqlType.VARBINARY), // Column: varbinary_64 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 64), MysqlType.VARBINARY), // Column: varbinary_65 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_BINARY, 65), MysqlType.VARBINARY), // Column: varbinary_65536_aka_mediumblob new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB + MysqlNativeConstants.FLDPKT_FLAG_BINARY, 16777215), MysqlType.MEDIUMBLOB), // Column: varchar_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 3), MysqlType.VARCHAR), // Column: varchar_10 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 30), MysqlType.VARCHAR), // Column: varchar_16777215_aka_mediumtext new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 16777215), MysqlType.MEDIUMTEXT), // Column: varchar_16777216_aka_longtext new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 4294967295L), MysqlType.LONGTEXT), // Column: varchar_255 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 255), MysqlType.VARCHAR), // Column: varchar_256 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 256), MysqlType.VARCHAR), // Column: varchar_64 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 64), MysqlType.VARCHAR), // Column: varchar_65 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 65), MysqlType.VARCHAR), // Column: varchar_65536_aka_mediumtext new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_BLOB, MysqlNativeConstants.FLDPKT_FLAG_BLOB, 65536), MysqlType.MEDIUMTEXT), // Column: varcharacter_1_aka_varchar_1 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NONE, 1), MysqlType.VARCHAR), // Column: varcharacter_0 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_VAR_STRING, MysqlNativeConstants.FLDPKT_FLAG_NOT_NULL, 0), MysqlType.VARCHAR), // Column: year_aka_year_4 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_YEAR, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_ZEROFILL + MysqlNativeConstants.FLDPKT_FLAG_NUM, 4), MysqlType.YEAR), // Column: year_1_aka_year_4 new TestData(new TestColumnDef(MyFieldType.FIELD_TYPE_YEAR, MysqlNativeConstants.FLDPKT_FLAG_UNSIGNED + MysqlNativeConstants.FLDPKT_FLAG_ZEROFILL + MysqlNativeConstants.FLDPKT_FLAG_NUM, 4), MysqlType.YEAR), }; MysqlNative msn = (MysqlNative) Singletons.require(DBNative.class); int i = 0; MysqlNativeType mnt; for (TestData rec : testData) { MyFieldType mft = rec.tcd.getFieldType(); mnt = msn.getNativeTypeFromMyFieldType(mft, rec.tcd.getFlags(), rec.tcd.getMaxLen(1)); assertNotNull(mnt); assertEquals("Invalid map of field type - loop index is: " + i, rec.mt.name(), NativeType.fixNameForType(mnt.getTypeName())); i++; } } }