private Column getLengthColumn( Token token ) {
        LengthColumn column = new LengthColumn();

        if ( token.equals( FieldType.LONG ) ) {
            column.setType( FieldType.LONG );
        }
        else if ( token.equals( FieldType.INTEGER ) ) {
            column.setType( FieldType.INTEGER );
        }
        else if ( token.equals( FieldType.STRING ) ) {
            column.setType( FieldType.STRING );
        }
        else if ( token.equals( FieldType.TIMESTAMP ) ) {
            column.setType( FieldType.TIMESTAMP );
        }
        else {
            throwException( "Unhandled Type. Expected DOUBLE, STRING, LONG, INTEGER, BLOB, CLOB, BOOLEAN, DATE or VSTRING.");
        }

        token = getNextToken();
        if ( !token.isOpenParen() )
            throwException( "Expecting open parenthesis" );

        token = getNextToken();
        if ( !token.isNumeric() )
            throwException( "Numeric length expected." );

        column.setColLen( token.getValue() );

        token = getNextToken();
        if ( !token.isCloseParen() )
            throwException( "Expecting close paren." );

        return column;
    }