/*
 * Copyright 1999-2017 Alibaba Group Holding Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.alibaba.druid.bvt.sql.hive;

import com.alibaba.druid.DbType;
import com.alibaba.druid.sql.OracleTest;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.parser.SQLParserFeature;

public class HiveCreateTableTest_47_dla
        extends OracleTest {
    public void test_0() throws Exception {
        String sql = "CREATE external TABLE IF NOT EXISTS dwd_tfc_bas_rdnet_inter_info (\n" +
                "inter_id varchar(225) NOT NULL COMMENT ' 路口id ',\n" +
                "inter_name varchar(225) DEFAULT NULL COMMENT ' (当前版本可能有空值)路口名称,按相交道路名命名。规则：等级高的道路放前面；相同等级道路时，路口关联的有名路段放前面。交叉口命名如：长安街与西单北大街路口道路端点命名如：xxx路端点 ',\n" +
                "lng double DEFAULT NULL COMMENT ' 路口中心点经度 ',\n" +
                "lat double DEFAULT NULL COMMENT ' 路口中心点纬度 ',\n" +
                "geohash varchar(225) DEFAULT NULL COMMENT ' geohash 10位 ',\n" +
                "is_signlight bigint DEFAULT NULL COMMENT ' 是否信号灯路口,0：无交通信号灯,1：有交通信号灯 ',\n" +
                "inter_type_no bigint DEFAULT NULL COMMENT ' 1：十字形路口,2：t形路口,3：y形路口,4：环形交叉口,5：匝道、出入口,6：路段（只有两个方向的路口）,7：错位t形路口,8：斜交路口（x型路口）,9：多路路口,10：其他 ',\n" +
                "entrance_cnt bigint DEFAULT NULL COMMENT ' 进口道数量 ',\n" +
                "area_code bigint DEFAULT NULL COMMENT ' 区域编码 ',\n" +
                "area_name varchar(225) DEFAULT NULL COMMENT ' 区域名称 ',\n" +
                "is_corner bigint DEFAULT NULL COMMENT ' 是否综合路口,0不是综合路口，1综合路口，3环岛',\n" +
                "inter_flowtype_no bigint DEFAULT NULL COMMENT '1 交叉口（多进多出）,2 合流口,3 分流口',\n" +
                "data_version varchar(225) NOT NULL COMMENT ' 季度的最后一天，如20180331 ',\n" +
                "adcode varchar(225) NOT NULL COMMENT ' 所属城市代码，标准6位数字代码 ',\n" +
                "PRIMARY KEY (`inter_id`, `data_version`, `adcode`),\n" +
                "KEY `index_id` (`inter_id`)\n" +
                ") ENGINE = innodb CHARSET = utf8 COMMENT '路口基本信息';";
        SQLStatement stmt = SQLUtils.parseSingleStatement(sql, DbType.hive, SQLParserFeature.KeepComments);

        assertEquals("CREATE EXTERNAL TABLE IF NOT EXISTS dwd_tfc_bas_rdnet_inter_info (\n" +
                "\tinter_id varchar(225) NOT NULL COMMENT ' 路口id ',\n" +
                "\tinter_name varchar(225) DEFAULT NULL COMMENT ' (当前版本可能有空值)路口名称,按相交道路名命名。规则：等级高的道路放前面；相同等级道路时，路口关联的有名路段放前面。交叉口命名如：长安街与西单北大街路口道路端点命名如：xxx路端点 ',\n" +
                "\tlng double DEFAULT NULL COMMENT ' 路口中心点经度 ',\n" +
                "\tlat double DEFAULT NULL COMMENT ' 路口中心点纬度 ',\n" +
                "\tgeohash varchar(225) DEFAULT NULL COMMENT ' geohash 10位 ',\n" +
                "\tis_signlight bigint DEFAULT NULL COMMENT ' 是否信号灯路口,0：无交通信号灯,1：有交通信号灯 ',\n" +
                "\tinter_type_no bigint DEFAULT NULL COMMENT ' 1：十字形路口,2：t形路口,3：y形路口,4：环形交叉口,5：匝道、出入口,6：路段（只有两个方向的路口）,7：错位t形路口,8：斜交路口（x型路口）,9：多路路口,10：其他 ',\n" +
                "\tentrance_cnt bigint DEFAULT NULL COMMENT ' 进口道数量 ',\n" +
                "\tarea_code bigint DEFAULT NULL COMMENT ' 区域编码 ',\n" +
                "\tarea_name varchar(225) DEFAULT NULL COMMENT ' 区域名称 ',\n" +
                "\tis_corner bigint DEFAULT NULL COMMENT ' 是否综合路口,0不是综合路口，1综合路口，3环岛',\n" +
                "\tinter_flowtype_no bigint DEFAULT NULL COMMENT '1 交叉口（多进多出）,2 合流口,3 分流口',\n" +
                "\tdata_version varchar(225) NOT NULL COMMENT ' 季度的最后一天，如20180331 ',\n" +
                "\tadcode varchar(225) NOT NULL COMMENT ' 所属城市代码，标准6位数字代码 ',\n" +
                "\tPRIMARY KEY (`inter_id`, `data_version`, `adcode`),\n" +
                "\tKEY `index_id`(`inter_id`)\n" +
                ")\n" +
                "COMMENT '路口基本信息';", stmt.toString());

        assertEquals(stmt.toString(), SQLUtils.parseSingleStatement(stmt.toString(), DbType.hive, SQLParserFeature.KeepComments).toString());
    }

}
