we follow Hive's type casting behavior as described in:
http://wiki.apache.org/hadoop/Hive/Tutorial
summary of Hive's type casting:
implicit conversion is done from child to an ancestor,
in the type hierarchy.
Special case for STRING -> DOUBLE
we chose not to follow MySQL's type casting behavior as described here:
http://dev.mysql.com/doc/refman/5.0/en/type-conversion.html
for the following reasons:
conservative casting in arithmetic exprs: TINYINT + TINYINT -> BIGINT
comparison of many types as double: INT < FLOAT -> comparison as DOUBLE
special cases when dealing with dates and timestamps
Added the following unittests:
- all arithmetic ops with all implicit casts
- all comparison ops with all implicit casts
- string to date casts
- error messages
- created planner test framework plus one very basic test
- added debug and explain output to plan nodes; added debug output to (some) expr nodes
- fixed some bugs related to aggregation analysis; added new test cases
1. Unmatched string literals are detected as a token and appropriately reported during parsing.
2. Enhanced error messages include the last encountered token, and a list of expected tokens.
I looked into the following issues, which I found are not really bugs:
1. Appearance of "^" in error messages seems incorrect in eclipse due to use of non fixed-width font. When displayed using a fixed-width font the error messages are fine (e.g. using System.err).
2. Tests for predicates with negation (!) pass after appropriate lines in parser generator are uncommented. The grammar looks good.
3. Tests for queries with order by pass.
1) cleanup pom, in particular:
a) remove jflex (unnecessary dependency)
b) upgrade guavac to v09
c) commented out the assembly for now
d) don't use snapshot versions of hadoop
e) specify use of java 1.6 over defaults
f) have surefure capture the test output to a file for easier review
2) added a README to help new developers
3) added a .gitignore