err(") expected");
}
next();
}
Column col = new Column(columnName);
if (columnPrecision != null)
{
columnSize = columnSize + columnPrecision;
}
col.setTypeFromString(columnType, columnSize);
tbl.addColumn(col);
if (inEnum)
{
col.setNotNull(true);
if (columnDefault != null)
{
col.setDefaultValue(columnDefault);
}
}
else
{
while (!token.getStr().equals(",") && !token.getStr().equals(")"))
{
if (token.getStr().toUpperCase().equals("NOT"))
{
next();
if (!token.getStr().toUpperCase().equals("NULL"))
{
err("NULL expected after NOT");
}
col.setNotNull(true);
next();
}
else if (token.getStr().toUpperCase().equals("PRIMARY"))
{
next();
if (!token.getStr().toUpperCase().equals("KEY"))
{
err("KEY expected after PRIMARY");
}
col.setPrimaryKey(true);
next();
}
else if (token.getStr().toUpperCase().equals("UNIQUE"))
{
col.setUnique(true);
next();
}
else if (token.getStr().toUpperCase().equals("NULL"))
{
col.setNotNull(false);
next();
}
else if (token.getStr().toUpperCase().equals("AUTO_INCREMENT"))
{
col.setAutoIncrement(true);
next();
}
else if (token.getStr().toUpperCase().equals("DEFAULT"))
{
next();
if (token.getStr().equals("'"))
{
next();
}
col.setDefaultValue(token.getStr());
next();
if (token.getStr().equals("'"))
{
next();
}