Merge lp:~oontvoo/akiban-sql-parser/mediumint_parser into lp:~akiban-technologies/akiban-sql-parser/trunk

Proposed by Vy Nguyen
Status: Merged
Approved by: Thomas Jones-Low
Approved revision: 287
Merged at revision: 284
Proposed branch: lp:~oontvoo/akiban-sql-parser/mediumint_parser
Merge into: lp:~akiban-technologies/akiban-sql-parser/trunk
Diff against target: 189 lines (+54/-1)
5 files modified
src/main/java/com/akiban/sql/types/DataTypeDescriptor.java (+6/-0)
src/main/java/com/akiban/sql/types/TypeId.java (+24/-1)
src/main/javacc/SQLGrammar.jj (+10/-0)
src/test/resources/com/akiban/sql/parser/create-table-mediumint-1.expected (+13/-0)
src/test/resources/com/akiban/sql/parser/create-table-mediumint-1.sql (+1/-0)
To merge this branch: bzr merge lp:~oontvoo/akiban-sql-parser/mediumint_parser
Reviewer Review Type Date Requested Status
Thomas Jones-Low Approve
Review via email: mp+143208@code.launchpad.net

Description of the change

support simple MEDIUMINT

To post a comment you must log in.
285. By Vy Nguyen
286. By Vy Nguyen

add MEDIUMINT_UNSIGNED

287. By Vy Nguyen

more helpful error msg

Revision history for this message
Vy Nguyen (oontvoo) wrote :

ping

Revision history for this message
Thomas Jones-Low (tjoneslo) wrote :

Look good to me.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/main/java/com/akiban/sql/types/DataTypeDescriptor.java'
--- src/main/java/com/akiban/sql/types/DataTypeDescriptor.java 2012-11-07 17:49:31 +0000
+++ src/main/java/com/akiban/sql/types/DataTypeDescriptor.java 2013-01-19 23:03:21 +0000
@@ -65,6 +65,12 @@
65{65{
66 public static final int MAXIMUM_WIDTH_UNKNOWN = -1;66 public static final int MAXIMUM_WIDTH_UNKNOWN = -1;
6767
68 public static final DataTypeDescriptor MEDIUMINT =
69 new DataTypeDescriptor(TypeId.MEDIUMINT_ID, true);
70
71 public static final DataTypeDescriptor MEDIUMINT_NOT_NULL =
72 MEDIUMINT.getNullabilityType(true);
73
68 /**74 /**
69 * Runtime INTEGER type that is nullable.75 * Runtime INTEGER type that is nullable.
70 */76 */
7177
=== modified file 'src/main/java/com/akiban/sql/types/TypeId.java'
--- src/main/java/com/akiban/sql/types/TypeId.java 2012-11-07 17:49:31 +0000
+++ src/main/java/com/akiban/sql/types/TypeId.java 2013-01-19 23:03:21 +0000
@@ -160,6 +160,7 @@
160 public static final String LONGVARBIT_NAME = "LONG VARCHAR FOR BIT DATA";160 public static final String LONGVARBIT_NAME = "LONG VARCHAR FOR BIT DATA";
161 public static final String TINYINT_NAME = "TINYINT";161 public static final String TINYINT_NAME = "TINYINT";
162 public static final String SMALLINT_NAME = "SMALLINT";162 public static final String SMALLINT_NAME = "SMALLINT";
163 public static final String MEDIUMINT_NAME = "MEDIUMINT";
163 public static final String INTEGER_NAME = "INTEGER";164 public static final String INTEGER_NAME = "INTEGER";
164 public static final String INT_NAME = "INT";165 public static final String INT_NAME = "INT";
165 public static final String LONGINT_NAME = "BIGINT";166 public static final String LONGINT_NAME = "BIGINT";
@@ -219,6 +220,7 @@
219 // MySQL compatible types.220 // MySQL compatible types.
220 public static final String TINYINT_UNSIGNED_NAME = "TINYINT UNSIGNED";221 public static final String TINYINT_UNSIGNED_NAME = "TINYINT UNSIGNED";
221 public static final String SMALLINT_UNSIGNED_NAME = "SMALLINT UNSIGNED";222 public static final String SMALLINT_UNSIGNED_NAME = "SMALLINT UNSIGNED";
223 public static final String MEDIUMINT_UNSIGNED_NAME = "MEDIUMINT UNSIGNED";
222 public static final String INTEGER_UNSIGNED_NAME = "INTEGER UNSIGNED";224 public static final String INTEGER_UNSIGNED_NAME = "INTEGER UNSIGNED";
223 public static final String INT_UNSIGNED_NAME = "INT UNSIGNED";225 public static final String INT_UNSIGNED_NAME = "INT UNSIGNED";
224 public static final String LONGINT_UNSIGNED_NAME = "BIGINT UNSIGNED";226 public static final String LONGINT_UNSIGNED_NAME = "BIGINT UNSIGNED";
@@ -288,10 +290,12 @@
288 public static final int ROW_MULTISET_TYPE_ID_IMPL = 23;290 public static final int ROW_MULTISET_TYPE_ID_IMPL = 23;
289 public static final int INTERVAL_YEAR_MONTH_ID = 24;291 public static final int INTERVAL_YEAR_MONTH_ID = 24;
290 public static final int INTERVAL_DAY_SECOND_ID = 25;292 public static final int INTERVAL_DAY_SECOND_ID = 25;
293 public static final int MEDIUMINT_ID = 26;
291 }294 }
292295
293 public static final TypeId BOOLEAN_ID = new TypeId(FormatIds.BOOLEAN_TYPE_ID);296 public static final TypeId BOOLEAN_ID = new TypeId(FormatIds.BOOLEAN_TYPE_ID);
294 public static final TypeId SMALLINT_ID = new TypeId(FormatIds.SMALLINT_TYPE_ID);297 public static final TypeId SMALLINT_ID = new TypeId(FormatIds.SMALLINT_TYPE_ID);
298 public static final TypeId MEDIUMINT_ID = new TypeId(FormatIds.MEDIUMINT_ID);
295 public static final TypeId INTEGER_ID = new TypeId(FormatIds.INT_TYPE_ID);299 public static final TypeId INTEGER_ID = new TypeId(FormatIds.INT_TYPE_ID);
296 public static final TypeId CHAR_ID = new TypeId(FormatIds.CHAR_TYPE_ID);300 public static final TypeId CHAR_ID = new TypeId(FormatIds.CHAR_TYPE_ID);
297 public static final TypeId TINYINT_ID = new TypeId(FormatIds.TINYINT_TYPE_ID);301 public static final TypeId TINYINT_ID = new TypeId(FormatIds.TINYINT_TYPE_ID);
@@ -328,6 +332,7 @@
328 public static final TypeId INTERVAL_MINUTE_SECOND_ID = new TypeId(FormatIds.INTERVAL_DAY_SECOND_ID, INTERVAL_MINUTE_SECOND_NAME);332 public static final TypeId INTERVAL_MINUTE_SECOND_ID = new TypeId(FormatIds.INTERVAL_DAY_SECOND_ID, INTERVAL_MINUTE_SECOND_NAME);
329333
330 public static final TypeId SMALLINT_UNSIGNED_ID = new TypeId(FormatIds.SMALLINT_TYPE_ID, true);334 public static final TypeId SMALLINT_UNSIGNED_ID = new TypeId(FormatIds.SMALLINT_TYPE_ID, true);
335 public static final TypeId MEDIUMINT_UNSIGNED_ID = new TypeId(FormatIds.MEDIUMINT_ID, true);
331 public static final TypeId INTEGER_UNSIGNED_ID = new TypeId(FormatIds.INT_TYPE_ID, true);336 public static final TypeId INTEGER_UNSIGNED_ID = new TypeId(FormatIds.INT_TYPE_ID, true);
332 public static final TypeId TINYINT_UNSIGNED_ID = new TypeId(FormatIds.TINYINT_TYPE_ID, true);337 public static final TypeId TINYINT_UNSIGNED_ID = new TypeId(FormatIds.TINYINT_TYPE_ID, true);
333 public static final TypeId BIGINT_UNSIGNED_ID = new TypeId(FormatIds.LONGINT_TYPE_ID, true);338 public static final TypeId BIGINT_UNSIGNED_ID = new TypeId(FormatIds.LONGINT_TYPE_ID, true);
@@ -341,6 +346,7 @@
341 private static final TypeId[] ALL_BUILTIN_TYPE_IDS = {346 private static final TypeId[] ALL_BUILTIN_TYPE_IDS = {
342 BOOLEAN_ID,347 BOOLEAN_ID,
343 SMALLINT_ID,348 SMALLINT_ID,
349 MEDIUMINT_ID,
344 INTEGER_ID,350 INTEGER_ID,
345 CHAR_ID,351 CHAR_ID,
346 TINYINT_ID,352 TINYINT_ID,
@@ -624,6 +630,8 @@
624 if (SQLTypeName.equals(FLOAT_NAME)) {630 if (SQLTypeName.equals(FLOAT_NAME)) {
625 return REAL_ID;631 return REAL_ID;
626 }632 }
633 if (SQLTypeName.equals(MEDIUMINT_NAME))
634 return MEDIUMINT_ID;
627 if (SQLTypeName.equals(INTEGER_NAME) ||635 if (SQLTypeName.equals(INTEGER_NAME) ||
628 SQLTypeName.equals(INT_NAME)) {636 SQLTypeName.equals(INT_NAME)) {
629 return INTEGER_ID;637 return INTEGER_ID;
@@ -883,6 +891,18 @@
883 isFloatingPointTypeId = true;891 isFloatingPointTypeId = true;
884 break;892 break;
885893
894 case FormatIds.MEDIUMINT_ID:
895 schemaName = null;
896 unqualifiedName = TypeId.MEDIUMINT_NAME;
897 JDBCTypeId = Types.OTHER;
898 maxPrecision = TypeId.INT_PRECISION;
899 maxScale = TypeId.INT_SCALE;
900 typePrecedence = INT_PRECEDENCE;
901 javaTypeName = "java.lang.Integer";
902 maxMaxWidth = TypeId.INT_MAXWIDTH;
903 isNumericTypeId = true;
904 break;
905
886 case FormatIds.INT_TYPE_ID:906 case FormatIds.INT_TYPE_ID:
887 schemaName = null;907 schemaName = null;
888 unqualifiedName = TypeId.INTEGER_NAME;908 unqualifiedName = TypeId.INTEGER_NAME;
@@ -1136,8 +1156,11 @@
1136 case FormatIds.TINYINT_TYPE_ID:1156 case FormatIds.TINYINT_TYPE_ID:
1137 unqualifiedName = TypeId.TINYINT_UNSIGNED_NAME;1157 unqualifiedName = TypeId.TINYINT_UNSIGNED_NAME;
1138 break;1158 break;
1159 case FormatIds.MEDIUMINT_ID:
1160 unqualifiedName = TypeId.MEDIUMINT_UNSIGNED_NAME;
1161 break;
1139 default:1162 default:
1140 assert false;1163 assert false : "unknown formatId: " + formatId;
1141 }1164 }
1142 }1165 }
1143 }1166 }
11441167
=== modified file 'src/main/javacc/SQLGrammar.jj'
--- src/main/javacc/SQLGrammar.jj 2013-01-17 21:09:49 +0000
+++ src/main/javacc/SQLGrammar.jj 2013-01-19 23:03:21 +0000
@@ -497,6 +497,7 @@
497 case CHAR:497 case CHAR:
498 case VARCHAR:498 case VARCHAR:
499 case INTEGER:499 case INTEGER:
500 case MEDIUMINT:
500 case INT:501 case INT:
501 case SMALLINT:502 case SMALLINT:
502 case LONGINT:503 case LONGINT:
@@ -1049,6 +1050,7 @@
1049 case DECIMAL:1050 case DECIMAL:
1050 case DEC:1051 case DEC:
1051 case INTEGER:1052 case INTEGER:
1053 case MEDIUMINT:
1052 case INT:1054 case INT:
1053 case SMALLINT:1055 case SMALLINT:
1054 case LONGINT:1056 case LONGINT:
@@ -2147,6 +2149,7 @@
2147| <INSERT: "insert">2149| <INSERT: "insert">
2148| <INT: "int">2150| <INT: "int">
2149| <INTEGER: "integer">2151| <INTEGER: "integer">
2152| <MEDIUMINT: "mediumint">
2150| <INTERSECT: "intersect">2153| <INTERSECT: "intersect">
2151| <INTO: "into">2154| <INTO: "into">
2152| <IS: "is">2155| <IS: "is">
@@ -4135,6 +4138,8 @@
4135}4138}
4136{4139{
4137(4140(
4141 <MEDIUMINT> {typeDescriptor = DataTypeDescriptor.MEDIUMINT;}
4142|
4138 typeDescriptor = exactNumericType()4143 typeDescriptor = exactNumericType()
4139|4144|
4140 typeDescriptor = approximateNumericType()4145 typeDescriptor = approximateNumericType()
@@ -4208,6 +4213,10 @@
4208 {4213 {
4209 return DataTypeDescriptor.getBuiltInDataTypeDescriptor(Types.INTEGER);4214 return DataTypeDescriptor.getBuiltInDataTypeDescriptor(Types.INTEGER);
4210 }4215 }
4216 <MEDIUMINT>
4217 {
4218 return DataTypeDescriptor.MEDIUMINT;
4219 }
4211|4220|
4212 <SMALLINT>4221 <SMALLINT>
4213 {4222 {
@@ -14574,6 +14583,7 @@
14574| tok = <INSERT>14583| tok = <INSERT>
14575| tok = <INT>14584| tok = <INT>
14576| tok = <INTEGER>14585| tok = <INTEGER>
14586| tok = <MEDIUMINT>
14577| tok = <INTERSECT>14587| tok = <INTERSECT>
14578| tok = <INTERVAL>14588| tok = <INTERVAL>
14579| tok = <INTO>14589| tok = <INTO>
1458014590
=== added directory 'src/main/resources'
=== added file 'src/test/resources/com/akiban/sql/parser/create-table-mediumint-1.expected'
--- src/test/resources/com/akiban/sql/parser/create-table-mediumint-1.expected 1970-01-01 00:00:00 +0000
+++ src/test/resources/com/akiban/sql/parser/create-table-mediumint-1.expected 2013-01-19 23:03:21 +0000
@@ -0,0 +1,13 @@
1com.akiban.sql.parser.CreateTableNode@44ee06be
2name: t
3statementType: CREATE TABLE
4lockGranularity: R
5existenceCheck: NO_CONDITION
6tableElementList:
7 com.akiban.sql.parser.TableElementList@66fcc74c
8
9 [0]:
10 com.akiban.sql.parser.ColumnDefinitionNode@5d808366
11 type: MEDIUMINT
12 name: c
13 elementType: null
0\ No newline at end of file14\ No newline at end of file
115
=== added file 'src/test/resources/com/akiban/sql/parser/create-table-mediumint-1.sql'
--- src/test/resources/com/akiban/sql/parser/create-table-mediumint-1.sql 1970-01-01 00:00:00 +0000
+++ src/test/resources/com/akiban/sql/parser/create-table-mediumint-1.sql 2013-01-19 23:03:21 +0000
@@ -0,0 +1,1 @@
1CREATE TABLE T (c MEDIUMINT)
0\ No newline at end of file2\ No newline at end of file

Subscribers

People subscribed via source and target branches

to all changes: