public final Table_optionContext table_option() throws RecognitionException {
		Table_optionContext _localctx = new Table_optionContext(_ctx, getState());
		enterRule(_localctx, 46, RULE_table_option);
		int _la;
		try {
			setState(379);
			switch ( getInterpreter().adaptivePredict(_input,46,_ctx) ) {
			case 1:
				enterOuterAlt(_localctx, 1);
				{
				setState(358);
				_la = _input.LA(1);
				if (_la==DEFAULT) {
					{
					setState(357); match(DEFAULT);
					}
				}

				setState(360); match(CHARACTER);
				setState(361); match(SET);
				setState(363);
				_la = _input.LA(1);
				if (_la==EQ) {
					{
					setState(362); match(EQ);
					}
				}

				setState(365); ident();
				}
				break;

			case 2:
				enterOuterAlt(_localctx, 2);
				{
				setState(367);
				_la = _input.LA(1);
				if (_la==DEFAULT) {
					{
					setState(366); match(DEFAULT);
					}
				}

				setState(369); ident();
				setState(377);
				switch ( getInterpreter().adaptivePredict(_input,45,_ctx) ) {
				case 1:
					{
					setState(371);
					_la = _input.LA(1);
					if (_la==EQ) {
						{
						setState(370); match(EQ);
						}
					}

					setState(375);
					switch (_input.LA(1)) {
					case STRING_G:
					case STRING_Q:
					case STRING_D:
					case QO:
					case DQ:
					case GR:
					case ACTION:
					case ADD:
					case ALTER:
					case ASC:
					case AUTO_INC:
					case BIGINT:
					case BINARY:
					case BIT:
					case BTREE:
					case CASCADE:
					case CHARACTER:
					case CHAR:
					case CHECK:
					case COLLATE:
					case COL_FORMAT:
					case COMMIT:
					case CREATE:
					case DATABASE:
					case DECIMAL:
					case DELETE:
					case DESC:
					case DISK:
					case DOUBLE:
					case DYNAMIC:
					case END:
					case ENUM:
					case EXISTS:
					case FIXED:
					case FOREIGN:
					case FULLTEXT:
					case FUNCTION:
					case HASH:
					case IF:
					case IGNORE:
					case INSERT:
					case INTEGER:
					case INTO:
					case IS:
					case NUMERIC:
					case REAL:
					case REFERENCES:
					case REPLACE:
					case RESTRICT:
					case SCHEMA:
					case SET:
					case SMALLINT:
					case SPATIAL:
					case STORAGE:
					case TABLE:
					case TEMPORARY:
					case UNSIGNED:
					case UPDATE:
					case USE:
					case USING:
					case VALUES:
					case VARBINARY:
					case VARCHAR:
					case YEAR:
					case ZEROFILL:
					case ID:
						{
						setState(373); ident();
						}
						break;
					case INT:
						{
						setState(374); match(INT);
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					break;
				}
				}
				break;
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}