diff --git a/src/executor/explain_physical_plan.cpp b/src/executor/explain_physical_plan.cpp index 457d942a58..d359924815 100644 --- a/src/executor/explain_physical_plan.cpp +++ b/src/executor/explain_physical_plan.cpp @@ -1159,9 +1159,9 @@ void ExplainPhysicalPlan::Explain(const PhysicalShow *show_node, SharedPtrnode_id()); @@ -1177,9 +1177,27 @@ void ExplainPhysicalPlan::Explain(const PhysicalShow *show_node, SharedPtrnode_id()); + show_str += ")"; + result->emplace_back(MakeShared(show_str)); + + String output_columns_str = String(intent_size, ' '); + output_columns_str += " - output columns: [name, value]"; + result->emplace_back(MakeShared(output_columns_str)); + break; + } + case ShowType::kShowIndexSegment: { + String show_str; + if (intent_size != 0) { + show_str = String(intent_size - 2, ' '); + show_str += "-> SHOW INDEX SEGMENT"; + } else { + show_str = "SHOW INDEX SEGMENT"; } show_str += "("; show_str += std::to_string(show_node->node_id()); @@ -1223,9 +1241,9 @@ void ExplainPhysicalPlan::Explain(const PhysicalShow *show_node, SharedPtr DESCRIBE TABLE/COLLECTION "; + show_str = String(intent_size - 2, ' ') + "-> SHOW COLUMN "; } else { - show_str = "DESCRIBE TABLE/COLLECTION "; + show_str = "SHOW COLUMN "; } show_str += "(" + std::to_string(show_node->node_id()) + ")"; result->emplace_back(MakeShared(show_str)); diff --git a/src/executor/operator/physical_show.cpp b/src/executor/operator/physical_show.cpp index 2dbd9093f3..7e4e145fb6 100644 --- a/src/executor/operator/physical_show.cpp +++ b/src/executor/operator/physical_show.cpp @@ -15,6 +15,7 @@ module; #include +#include module physical_show; @@ -101,6 +102,15 @@ void PhysicalShow::Init() { output_types_->emplace_back(varchar_type); break; } + case ShowType::kShowIndexSegment: { + output_names_->reserve(2); + output_types_->reserve(2); + output_names_->emplace_back("name"); + output_types_->emplace_back(varchar_type); + output_names_->emplace_back("value"); + output_types_->emplace_back(varchar_type); + break; + } case ShowType::kShowDatabases: { output_names_->reserve(1); output_types_->reserve(1); @@ -379,6 +389,10 @@ bool PhysicalShow::Execute(QueryContext *query_context, OperatorState *operator_ ExecuteShowIndex(query_context, show_operator_state); break; } + case ShowType::kShowIndexSegment: { + ExecuteShowIndexSegment(query_context, show_operator_state); + break; + } case ShowType::kShowDatabases: { ExecuteShowDatabases(query_context, show_operator_state); break; @@ -844,6 +858,150 @@ void PhysicalShow::ExecuteShowIndex(QueryContext *query_context, ShowOperatorSta show_operator_state->output_.emplace_back(std::move(output_block_ptr)); } +void PhysicalShow::ExecuteShowIndexSegment(QueryContext *query_context, ShowOperatorState *show_operator_state) { + // Define output table detailed info + auto varchar_type = MakeShared(LogicalType::kVarchar); + + // Get tables from catalog + Txn *txn = query_context->GetTxn(); + + auto [table_entry, status1] = txn->GetTableByName(db_name_, object_name_); + if (!status1.ok()) { + LOG_ERROR(status1.message()); + RecoverableError(status1); + return; + } + + auto [table_index_entry, status2] = txn->GetIndexByName(db_name_, object_name_, index_name_.value()); + if (!status2.ok()) { + LOG_ERROR(status2.message()); + RecoverableError(status2); + return; + } + + Map> segment_map = table_index_entry->GetIndexBySegmentSnapshot(table_entry, txn); + auto iter = segment_map.find(segment_id_.value()); + if(iter == segment_map.end()) { + show_operator_state->status_ = Status::SegmentNotExist(segment_id_.value()); + LOG_ERROR(show_operator_state->status_.message()); + RecoverableError(show_operator_state->status_); + } + + SegmentIndexEntry* segment_index_entry = iter->second.get(); + // Prepare the output data block + UniquePtr output_block_ptr = DataBlock::MakeUniquePtr(); + Vector> column_types{varchar_type, varchar_type}; + + output_block_ptr->Init(column_types); + + { + SizeT column_id = 0; + { + Value value = Value::MakeVarchar("segment id"); + ValueExpression value_expr(value); + value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]); + } + + ++column_id; + { + Value value = Value::MakeVarchar(std::to_string(segment_id_.value())); + ValueExpression value_expr(value); + value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]); + } + } + + { + SizeT column_id = 0; + { + Value value = Value::MakeVarchar("storage_path"); + ValueExpression value_expr(value); + value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]); + } + + ++column_id; + { + Value value = Value::MakeVarchar(*segment_index_entry->index_dir()); + ValueExpression value_expr(value); + value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]); + } + } + + { + SizeT column_id = 0; + { + Value value = Value::MakeVarchar("index_segment_size"); + ValueExpression value_expr(value); + value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]); + } + + ++column_id; + { + const auto &index_size = Utility::FormatByteSize(LocalFileSystem::GetFolderSizeByPath(*segment_index_entry->index_dir())); + Value value = Value::MakeVarchar(index_size); + ValueExpression value_expr(value); + value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]); + } + } + + { + SizeT column_id = 0; + { + Value value = Value::MakeVarchar("chunk_count"); + ValueExpression value_expr(value); + value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]); + } + + ++column_id; + { + IndexBase* index_base = table_index_entry->table_index_def().get(); + String index_type_name = IndexInfo::IndexTypeToString(index_base->index_type_); + switch(index_base->index_type_) { + case IndexType::kIVFFlat: { + Status status3 = Status::InvalidIndexName(index_type_name); + show_operator_state->status_ = status3; + LOG_ERROR(fmt::format("{} isn't implemented.", index_type_name)); + RecoverableError(status3); + break; + } + case IndexType::kHnsw: { + auto [chunk_index_entries, _] = segment_index_entry->GetHnswIndexSnapshot(); + + Value value = Value::MakeVarchar(std::to_string(chunk_index_entries.size())); + ValueExpression value_expr(value); + value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]); + break; + } + case IndexType::kFullText: { + auto [chunk_index_entries, _] = segment_index_entry->GetFullTextIndexSnapshot(); + + Value value = Value::MakeVarchar(std::to_string(chunk_index_entries.size())); + ValueExpression value_expr(value); + value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]); + break; + } + case IndexType::kSecondary: { + auto [chunk_index_entries, _] = segment_index_entry->GetSecondaryIndexSnapshot(); + + Value value = Value::MakeVarchar(std::to_string(chunk_index_entries.size())); + ValueExpression value_expr(value); + value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]); + break; + } + case IndexType::kInvalid: { + Status status3 = Status::InvalidIndexName(index_type_name); + LOG_ERROR(fmt::format("{} is invalid.", index_type_name)); + RecoverableError(status3); + break; + } + } + } + } + + output_block_ptr->Finalize(); + show_operator_state->output_.emplace_back(std::move(output_block_ptr)); +} + + /** * @brief Execute show table * @param query_context @@ -3630,174 +3788,4 @@ void PhysicalShow::ExecuteShowConfig(QueryContext *query_context, ShowOperatorSt operator_state->output_.emplace_back(std::move(output_block_ptr)); } -// void PhysicalShow::ExecuteShowVar(QueryContext *query_context, ShowOperatorState *show_operator_state) { -// SharedPtr varchar_type = MakeShared(LogicalType::kVarchar); -// Vector> output_column_defs = { -// MakeShared(0, varchar_type, "value", std::set()), -// }; -// -// SharedPtr table_def = TableDef::Make(MakeShared("default_db"), MakeShared("variables"), output_column_defs); -// output_ = MakeShared(table_def, TableType::kResult); -// -// UniquePtr output_block_ptr = DataBlock::MakeUniquePtr(); -// Vector> output_column_types{ -// varchar_type, -// }; -// -// output_block_ptr->Init(output_column_types); -// -//// kQueryCount, // global and session -//// kSessionCount, // global -//// kBufferPoolUsage, // global -//// kSchedulePolicy, // global -//// kDeltaLogCount, // global -//// kNextTxnID, // global -//// kBufferedObjectCount, // global -//// kGCListSizeOfBufferManager, // global -//// kActiveTxnCount, // global -//// kCurrentTs, // global -//// kTotalCommitCount, // global and session -//// kConnectedTime, // session -//// kCatalogVersion, // global -//// kActiveWALFilename, // global -//// kEnableProfile, // session -//// kProfileRecordCapacity, // session -// -// SysVariable system_var = SystemVariables::GetSysVarEnumByName(object_name_); -// switch (system_var) { -//// case SysVariable::kQueryCount: { -//// SizeT query_count = query_context->current_session()->query_count(); -//// Value value = Value::MakeVarchar(std::to_string(query_count)); -//// ValueExpression value_expr(value); -//// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); -//// break; -//// } -//// case SysVar::kSessionCount: { -//// SessionManager *session_manager = query_context->session_manager(); -//// u64 session_count = session_manager->GetSessionCount(); -//// Value value = Value::MakeVarchar(std::to_string(session_count)); -//// ValueExpression value_expr(value); -//// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); -//// break; -//// } -//// case SysVar::kBufferPoolUsage: { -//// BufferManager *buffer_manager = query_context->storage()->buffer_manager(); -//// u64 memory_limit = buffer_manager->memory_limit(); -//// u64 memory_usage = buffer_manager->memory_usage(); -//// Value value = Value::MakeVarchar(fmt::format("{}/{}", Utility::FormatByteSize(memory_usage), Utility::FormatByteSize(memory_limit))); -//// ValueExpression value_expr(value); -//// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); -//// break; -//// } -//// case SysVar::kVersion: { -//// Value value = Value::MakeVarchar(fmt::format("{}-{}", query_context->global_config()->version(), git_commit_id())); -//// ValueExpression value_expr(value); -//// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); -//// break; -//// } -//// case SysVar::kQueryMemoryLimit: { -//// u64 query_memory_limit = query_context->global_config()->query_memory_limit(); -//// Value value = Value::MakeVarchar(std::to_string(query_memory_limit)); -//// ValueExpression value_expr(value); -//// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); -//// break; -//// } -//// case SysVar::kQueryCpuLimit: { -//// u64 query_cpu_limit = query_context->global_config()->query_cpu_limit(); -//// Value value = Value::MakeVarchar(std::to_string(query_cpu_limit)); -//// ValueExpression value_expr(value); -//// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); -//// break; -//// } -//// case SysVar::kLogLevel: { -//// String log_level_str = LogLevel2Str(query_context->global_config()->log_level()); -//// Value value = Value::MakeVarchar(log_level_str); -//// ValueExpression value_expr(value); -//// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); -//// break; -//// } -//// case SysVar::kSchedulePolicy: { -//// String scheduler_policy = "Round Robin"; -//// Value value = Value::MakeVarchar(scheduler_policy); -//// ValueExpression value_expr(value); -//// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); -//// break; -//// } -//// case SysVar::kListenAddress: { -//// Value value = Value::MakeVarchar(query_context->global_config()->listen_address()); -//// ValueExpression value_expr(value); -//// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); -//// break; -//// } -//// case SysVar::kSQLPort: { -//// Value value = Value::MakeVarchar(std::to_string(query_context->global_config()->pg_port())); -//// ValueExpression value_expr(value); -//// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); -//// break; -//// } -//// case SysVar::kSDKPort: { -//// Value value = Value::MakeVarchar(std::to_string(query_context->global_config()->sdk_port())); -//// ValueExpression value_expr(value); -//// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); -//// break; -//// } -//// case SysVar::kHttpAPIPort: { -//// Value value = Value::MakeVarchar(std::to_string(query_context->global_config()->http_port())); -//// ValueExpression value_expr(value); -//// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); -//// break; -//// } -//// case SysVar::kDataURL: { -//// Value value = Value::MakeVarchar(query_context->global_config()->data_dir()->c_str()); -//// ValueExpression value_expr(value); -//// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); -//// break; -//// } -//// case SysVar::kTimezone: { -//// String time_zone = fmt::format("{}-{}", query_context->global_config()->time_zone(), -/// query_context->global_config()->time_zone_bias()); / Value value = Value::MakeVarchar(time_zone); / ValueExpression -/// value_expr(value); / value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); / break; / } / case -/// SysVar::kLogFlushPolicy: { / switch (query_context->global_config()->flush_at_commit()) { / case -/// FlushOption::kFlushAtOnce: { / Value value = Value::MakeVarchar("Write and flush log at each commit"); / ValueExpression -/// value_expr(value); / value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); / break; / } / case -/// FlushOption::kOnlyWrite: { / Value value = Value::MakeVarchar("Only write log at each commit"); / ValueExpression -/// value_expr(value); / value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); / break; / } / case -/// FlushOption::kFlushPerSecond: { / Value value = Value::MakeVarchar("Write log at each commit and commit log per second"); / -/// ValueExpression value_expr(value); / value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); / break; -//// } -//// default: { -//// UnrecoverableError("Invalid log flush policy: {}"); -//// } -//// } -//// } -//// case SysVar::kWALLogSize: { -//// SizeT wal_log_size = query_context->storage()->wal_manager()->WalSize() - -/// query_context->storage()->wal_manager()->GetLastCkpWalSize(); / Value value = Value::MakeVarchar(std::to_string(wal_log_size)); / -/// ValueExpression value_expr(value); / value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); / break; / } / -/// case SysVar::kDeltaLogCount: { / SizeT delta_log_count = query_context->storage()->catalog()->GetDeltaLogCount(); / Value -/// value = Value::MakeVarchar(std::to_string(delta_log_count)); / ValueExpression value_expr(value); / -/// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); / break; / } / case SysVar::kNextTxnID: { / TransactionID -/// next_transaction_id = query_context->storage()->catalog()->next_txn_id(); / Value value = -/// Value::MakeVarchar(std::to_string(next_transaction_id)); / ValueExpression value_expr(value); / -/// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); / break; / } / case SysVar::kBufferedObjectCount: { / -/// SizeT wal_log_size = query_context->storage()->buffer_manager()->BufferedObjectCount(); / Value value = -/// Value::MakeVarchar(std::to_string(wal_log_size)); / ValueExpression value_expr(value); / -/// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); / break; / } / case SysVar::kGCListSizeOfBufferPool: { / -/// SizeT waiting_gc_object_count = query_context->storage()->buffer_manager()->WaitingGCObjectCount(); / Value value = -/// Value::MakeVarchar(std::to_string(waiting_gc_object_count)); / ValueExpression value_expr(value); / -/// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); / break; / } / case SysVar::kActiveTxnCount: { / SizeT -/// active_txn_count = query_context->storage()->txn_manager()->ActiveTxnCount(); / Value value = -/// Value::MakeVarchar(std::to_string(active_txn_count)); / ValueExpression value_expr(value); / -/// value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); / break; / } / case SysVar::kCurrentTs: { / SizeT -/// current_ts = query_context->storage()->txn_manager()->CurrentTS(); / Value value = Value::MakeVarchar(std::to_string(current_ts)); / -/// ValueExpression value_expr(value); / value_expr.AppendToChunk(output_block_ptr->column_vectors[0]); / break; / } -// default: { -// RecoverableError(Status::NoSysVar(object_name_)); -// } -// } -// -// output_block_ptr->Finalize(); -// show_operator_state->output_.emplace_back(std::move(output_block_ptr)); -//} - } // namespace infinity diff --git a/src/executor/operator/physical_show.cppm b/src/executor/operator/physical_show.cppm index 1d119b4c8a..838abdea18 100644 --- a/src/executor/operator/physical_show.cppm +++ b/src/executor/operator/physical_show.cppm @@ -85,6 +85,8 @@ private: void ExecuteShowIndex(QueryContext *query_context, ShowOperatorState *operator_state); + void ExecuteShowIndexSegment(QueryContext *query_context, ShowOperatorState *operator_state); + void ExecuteShowDatabases(QueryContext *query_context, ShowOperatorState *operator_state); void ExecuteShowTables(QueryContext *query_context, ShowOperatorState *operator_state); diff --git a/src/main/infinity.cpp b/src/main/infinity.cpp index b5f13b7939..9f7b3c0e5c 100644 --- a/src/main/infinity.cpp +++ b/src/main/infinity.cpp @@ -538,6 +538,23 @@ QueryResult Infinity::ShowIndex(const String &db_name, const String &table_name, return result; } +QueryResult Infinity::ShowIndexSegment(const String &db_name, const String &table_name, const String &index_name, SegmentID segment_id) { + UniquePtr query_context_ptr = MakeUnique(session_.get()); + query_context_ptr->Init(InfinityContext::instance().config(), + InfinityContext::instance().task_scheduler(), + InfinityContext::instance().storage(), + InfinityContext::instance().resource_manager(), + InfinityContext::instance().session_manager()); + UniquePtr show_statement = MakeUnique(); + show_statement->schema_name_ = db_name; + show_statement->table_name_ = table_name; + show_statement->index_name_ = index_name; + show_statement->segment_id_ = segment_id; + show_statement->show_type_ = ShowStmtType::kIndexSegment; + QueryResult result = query_context_ptr->QueryStatement(show_statement.get()); + return result; +} + QueryResult Infinity::ShowSegment(const String &db_name, const String &table_name, const SegmentID &segment_id) { UniquePtr query_context_ptr = MakeUnique(session_.get()); query_context_ptr->Init(InfinityContext::instance().config(), diff --git a/src/main/infinity.cppm b/src/main/infinity.cppm index 1aa5fb4879..7879ed99a7 100644 --- a/src/main/infinity.cppm +++ b/src/main/infinity.cppm @@ -120,6 +120,8 @@ public: QueryResult ShowIndex(const String &db_name, const String &table_name, const String &index_name); + QueryResult ShowIndexSegment(const String &db_name, const String &table_name, const String &index_name, SegmentID segment_id); + QueryResult ShowSegment(const String &db_name, const String &table_name, const SegmentID &segment_id); QueryResult ShowSegments(const String &db_name, const String &table_name); diff --git a/src/parser/parser.cpp b/src/parser/parser.cpp index 870947cf72..ec4da7f73e 100644 --- a/src/parser/parser.cpp +++ b/src/parser/parser.cpp @@ -749,16 +749,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 84 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1041 +#define YYLAST 1096 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 189 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 110 /* YYNRULES -- Number of rules. */ -#define YYNRULES 412 +#define YYNRULES 413 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 855 +#define YYNSTATES 857 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 427 @@ -846,26 +846,26 @@ static const yytype_int16 yyrline[] = 1473, 1478, 1483, 1489, 1496, 1499, 1503, 1506, 1511, 1523, 1530, 1544, 1547, 1550, 1553, 1556, 1559, 1562, 1568, 1572, 1576, 1580, 1584, 1591, 1595, 1599, 1603, 1609, 1615, 1621, - 1632, 1643, 1654, 1666, 1678, 1691, 1705, 1716, 1734, 1738, - 1742, 1750, 1764, 1770, 1775, 1781, 1787, 1795, 1801, 1807, - 1813, 1819, 1827, 1833, 1839, 1845, 1851, 1859, 1865, 1872, - 1889, 1893, 1898, 1902, 1929, 1935, 1939, 1940, 1941, 1942, - 1943, 1945, 1948, 1954, 1957, 1958, 1959, 1960, 1961, 1962, - 1963, 1964, 1965, 1967, 1970, 1976, 1995, 2037, 2045, 2056, - 2062, 2071, 2077, 2090, 2094, 2098, 2102, 2106, 2110, 2114, - 2118, 2122, 2126, 2131, 2139, 2147, 2156, 2163, 2170, 2177, - 2184, 2191, 2199, 2207, 2215, 2223, 2231, 2239, 2247, 2255, - 2263, 2271, 2279, 2287, 2317, 2325, 2334, 2342, 2351, 2359, - 2365, 2372, 2378, 2385, 2390, 2397, 2404, 2412, 2436, 2442, - 2448, 2455, 2463, 2470, 2477, 2482, 2492, 2497, 2502, 2507, - 2512, 2517, 2522, 2527, 2532, 2537, 2540, 2543, 2547, 2550, - 2553, 2556, 2560, 2564, 2569, 2574, 2577, 2581, 2585, 2592, - 2599, 2603, 2610, 2617, 2621, 2625, 2629, 2632, 2636, 2640, - 2645, 2650, 2654, 2659, 2664, 2670, 2676, 2682, 2688, 2694, - 2700, 2706, 2712, 2718, 2724, 2730, 2741, 2745, 2750, 2775, - 2785, 2791, 2795, 2796, 2798, 2799, 2801, 2802, 2814, 2822, - 2826, 2829, 2833, 2836, 2840, 2844, 2849, 2854, 2862, 2869, - 2880, 2928, 2977 + 1632, 1643, 1654, 1666, 1678, 1691, 1705, 1716, 1730, 1750, + 1754, 1758, 1766, 1780, 1786, 1791, 1797, 1803, 1811, 1817, + 1823, 1829, 1835, 1843, 1849, 1855, 1861, 1867, 1875, 1881, + 1888, 1905, 1909, 1914, 1918, 1945, 1951, 1955, 1956, 1957, + 1958, 1959, 1961, 1964, 1970, 1973, 1974, 1975, 1976, 1977, + 1978, 1979, 1980, 1981, 1983, 1986, 1992, 2011, 2053, 2061, + 2072, 2078, 2087, 2093, 2106, 2110, 2114, 2118, 2122, 2126, + 2130, 2134, 2138, 2142, 2147, 2155, 2163, 2172, 2179, 2186, + 2193, 2200, 2207, 2215, 2223, 2231, 2239, 2247, 2255, 2263, + 2271, 2279, 2287, 2295, 2303, 2333, 2341, 2350, 2358, 2367, + 2375, 2381, 2388, 2394, 2401, 2406, 2413, 2420, 2428, 2452, + 2458, 2464, 2471, 2479, 2486, 2493, 2498, 2508, 2513, 2518, + 2523, 2528, 2533, 2538, 2543, 2548, 2553, 2556, 2559, 2563, + 2566, 2569, 2572, 2576, 2580, 2585, 2590, 2593, 2597, 2601, + 2608, 2615, 2619, 2626, 2633, 2637, 2641, 2645, 2648, 2652, + 2656, 2661, 2666, 2670, 2675, 2680, 2686, 2692, 2698, 2704, + 2710, 2716, 2722, 2728, 2734, 2740, 2746, 2757, 2761, 2766, + 2791, 2801, 2807, 2811, 2812, 2814, 2815, 2817, 2818, 2830, + 2838, 2842, 2845, 2849, 2852, 2856, 2860, 2865, 2870, 2878, + 2885, 2896, 2944, 2993 }; #endif @@ -950,12 +950,12 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-758) +#define YYPACT_NINF (-756) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-400) +#define YYTABLE_NINF (-401) #define yytable_value_is_error(Yyn) \ ((Yyn) == YYTABLE_NINF) @@ -964,92 +964,92 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - 660, 284, 8, 369, 50, -20, 50, -80, 514, 80, - 55, 61, 68, 50, 88, -64, -61, 126, -53, -758, - -758, -758, -758, -758, -758, -758, -758, 235, -758, -758, - 196, -758, -758, -758, -758, -758, 163, 163, 163, 163, - -4, 50, 168, 168, 168, 168, 168, 77, 268, 50, - 241, 292, 297, 305, -758, -758, -758, -758, -758, -758, - -758, 686, 325, 50, -758, -758, -758, 189, 224, -758, - 335, -758, 50, -758, -758, -758, -758, -758, 212, 160, - -758, 343, 192, 194, -758, 35, -758, 362, -758, -758, - 13, 352, -758, 366, 370, 433, 50, 50, 50, 450, - 410, 302, 416, 489, 50, 50, 50, 490, 495, 499, - 436, 504, 504, 17, 60, 76, -758, -758, -758, -758, - -758, -758, -758, 235, -758, -758, -758, -758, -758, -758, - 251, -758, 507, -758, 513, -758, -758, 334, 88, 504, - -758, -758, -758, -758, 13, -758, -758, -758, 459, 466, - 452, 448, -758, -42, -758, 302, -758, 50, 524, 22, - -758, -758, -758, -758, -758, 465, -758, 356, -24, -758, - 459, -758, -758, 457, 460, -758, -758, -758, -758, -758, - -758, -758, -758, -758, -758, -758, -758, -758, -758, -758, - 537, 535, -758, -758, -758, -758, -758, 196, -758, -758, - 359, 371, 363, -758, -758, 479, 473, 376, 383, 318, - 564, 565, 566, 567, -758, -758, 572, 389, 211, 390, - 396, 578, 578, -758, 19, 354, -51, -758, 20, 627, - -758, -758, -758, -758, -758, -758, -758, -758, -758, -758, - -758, -758, 395, -758, -758, -758, -45, -758, -758, 29, - -758, 41, -758, -758, -758, 44, -758, 52, -758, 459, - 459, 515, -758, -61, 16, 530, 408, -758, -100, 409, - -758, 50, 459, 499, -758, 218, 417, 422, -758, 347, - 406, -758, -758, 203, -758, -758, -758, -758, -758, -758, - -758, -758, -758, -758, -758, -758, 578, 423, 709, 525, - 459, 459, -55, 195, -758, -758, -758, -758, 479, -758, - 603, 439, 441, 442, 604, 622, 281, 281, -758, 440, - -758, -758, -758, -758, 447, -81, 4, 459, 467, 629, - 459, 459, -36, 455, 37, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 25, - -758, 458, -758, 639, -758, 640, -758, 641, -758, 628, - 461, -758, 33, 218, 459, -758, 235, 811, 532, 470, - -1, -758, -758, -758, -61, 524, 474, -758, 655, 459, - 472, -758, 218, -758, 425, 425, 654, -758, -758, 459, - -758, 67, 525, 511, 480, 36, -49, 201, -758, 459, - 459, 588, 459, 662, 34, 74, 112, 402, -758, -758, - -61, 481, 657, -758, 51, -758, -758, 234, 436, -758, - -758, 529, 501, 578, 354, 553, -758, 719, 719, 419, - 419, 636, 719, 719, 419, 419, 281, 281, -758, -758, - -758, -758, -758, -758, 500, -758, 502, -758, -758, -758, - 459, -758, -758, -758, 218, -758, -758, -758, -758, -758, - -758, -758, -758, -758, -758, -758, 506, -758, -758, -758, - -758, -758, -758, -758, -758, -758, -758, 508, 509, 521, - 522, 540, 100, 541, 524, 666, 16, 235, 164, 524, - -758, 188, 542, 716, 723, -758, 198, -758, 207, 677, - 248, -758, 545, -758, 811, 459, -758, 459, -32, 72, - 578, 30, 543, -758, 149, -758, 727, -758, 728, -758, - -758, -7, 4, 675, -758, -758, -758, -758, -758, -758, - 676, -758, 732, -758, -758, -758, -758, -758, -758, 549, - 684, 354, 719, 554, 254, -758, 578, 734, 736, -758, - 737, 155, 173, 271, 333, 421, 617, 621, -758, -758, - 69, 100, -758, -758, 524, 256, 562, -758, -758, 591, - 258, -758, 459, -758, -758, -758, 425, -758, 744, -758, - -758, 568, 218, -14, -758, 459, 166, 570, 753, 458, - 574, 576, 51, 657, 4, 4, 580, 234, 710, 711, - 583, 265, -758, -758, 709, 267, 581, 582, 589, 590, - 598, 599, 601, 602, 605, 606, 607, 608, 609, 610, - 611, 612, 630, 631, 632, 634, 635, 637, 638, 642, - 643, 644, 645, 646, 647, 649, 650, 651, 652, 653, - 661, 663, 664, 669, 670, 671, -758, -758, -758, -758, - -758, 282, -758, 772, 787, 667, 283, -758, -758, -758, - -758, 218, -758, 407, 672, 287, 674, -758, -758, -758, - -758, 745, 524, -758, -758, -758, -758, -758, 459, 459, - -758, -758, -758, -758, 785, 820, 821, 822, 835, 836, - 838, 841, 843, 860, 861, 862, 865, 866, 867, 868, - 869, 870, 871, 872, 873, 874, 875, 884, 885, 915, - 916, 918, 919, 922, 923, 927, 928, 929, 930, 931, - 932, 933, 934, 935, 936, -758, 770, 288, -758, 876, - 941, -758, -758, 942, -758, 943, 944, 459, 303, 758, - 218, 765, 766, 767, 768, 769, 773, 774, 775, 776, - 777, 778, 779, 780, 781, 782, 783, 784, 786, 788, - 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, - 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, - 809, 810, 411, -758, 772, 771, -758, 876, 812, 813, - 814, 218, -758, -758, -758, -758, -758, -758, -758, -758, - -758, -758, -758, -758, -758, -758, -758, -758, -758, -758, - -758, -758, -758, -758, -758, -758, -758, -758, -758, -758, - -758, -758, -758, -758, -758, -758, -758, -758, -758, -758, - -758, -758, -758, -758, -758, -758, -758, -758, 772, -758, - 952, -758, 965, 313, 815, 816, -758, 989, 967, 823, - 824, -758, -758, 876, -758 + 337, 220, 19, 270, 55, -10, 55, 66, 450, 224, + 71, 62, 77, 55, 85, -47, -58, 127, -23, -756, + -756, -756, -756, -756, -756, -756, -756, 180, -756, -756, + 189, -756, -756, -756, -756, -756, 128, 128, 128, 128, + 23, 55, 154, 154, 154, 154, 154, 52, 228, 55, + 99, 261, 268, 282, -756, -756, -756, -756, -756, -756, + -756, 263, 299, 55, -756, -756, -756, 93, 144, -756, + 330, -756, 55, -756, -756, -756, -756, -756, 269, 151, + -756, 339, 159, 177, -756, 15, -756, 353, -756, -756, + 35, 319, -756, 329, 316, 398, 55, 55, 55, 403, + 345, 241, 368, 442, 55, 55, 55, 444, 456, 469, + 409, 480, 480, 54, 58, 69, -756, -756, -756, -756, + -756, -756, -756, 180, -756, -756, -756, -756, -756, -756, + 289, -756, 488, -756, 505, -756, -756, 313, 85, 480, + -756, -756, -756, -756, 35, -756, -756, -756, 429, 461, + 455, 446, -756, -21, -756, 241, -756, 55, 526, 92, + -756, -756, -756, -756, -756, 471, -756, 365, -22, -756, + 429, -756, -756, 473, 487, -756, -756, -756, -756, -756, + -756, -756, -756, -756, -756, -756, -756, -756, -756, -756, + 565, 572, -756, -756, -756, -756, -756, 189, -756, -756, + 400, 402, 406, -756, -756, 710, 452, 407, 408, 292, + 579, 588, 589, 590, -756, -756, 595, 412, 164, 420, + 421, 513, 513, -756, 44, 324, -54, -756, 20, 571, + -756, -756, -756, -756, -756, -756, -756, -756, -756, -756, + -756, -756, 423, -756, -756, -756, -109, -756, -756, -100, + -756, -48, -756, -756, -756, -3, -756, 5, -756, 429, + 429, 539, -756, -58, 48, 555, 430, -756, -118, 435, + -756, 55, 429, 469, -756, 235, 438, 441, 580, 382, + 443, -756, -756, 137, -756, -756, -756, -756, -756, -756, + -756, -756, -756, -756, -756, -756, 513, 448, 560, 546, + 429, 429, -11, 148, -756, -756, -756, -756, 710, -756, + 628, 457, 463, 470, 650, 670, 113, 113, -756, 490, + -756, -756, -756, -756, 492, -56, 16, 429, 512, 677, + 429, 429, -29, 499, -9, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 41, + -756, 504, -756, 681, -756, 682, -756, 686, -756, 688, + 508, -756, 37, 235, 429, -756, 180, 673, 575, 516, + 60, -756, -756, -756, -58, 526, 517, -756, 698, 429, + 515, -756, 235, -756, 385, 385, 702, 703, -756, -756, + 429, -756, 68, 546, 559, 528, 25, -51, 238, -756, + 429, 429, 636, 429, 715, 43, 119, 132, 445, -756, + -756, -58, 533, 600, -756, 50, -756, -756, 221, 409, + -756, -756, 573, 540, 513, 324, 603, -756, 581, 581, + 303, 303, 397, 581, 581, 303, 303, 113, 113, -756, + -756, -756, -756, -756, -756, 541, -756, 542, -756, -756, + -756, 429, -756, -756, -756, 235, -756, -756, -756, -756, + -756, -756, -756, -756, -756, -756, -756, 548, -756, -756, + -756, -756, -756, -756, -756, -756, -756, -756, 569, 570, + 601, 604, 607, 121, 608, 526, 713, 48, 180, 181, + 526, -756, 192, 617, 738, 740, -756, 252, -756, 253, + -756, 733, 257, -756, 602, -756, 673, 429, -756, 429, + -30, -25, 513, 18, 614, -756, 147, -756, 805, -756, + 806, -756, -756, -6, 16, 760, -756, -756, -756, -756, + -756, -756, 761, -756, 820, -756, -756, -756, -756, -756, + -756, 637, 772, 324, 581, 642, 277, -756, 513, 821, + 823, -756, 824, 321, 558, 705, 714, 723, 704, 709, + -756, -756, 79, 121, -756, -756, 526, 322, 651, -756, + -756, 679, 326, -756, 429, -756, -756, -756, 385, -756, + 827, -756, -756, 652, 235, -13, -756, 429, 493, 656, + 834, 504, 655, 669, 50, 600, 16, 16, 671, 221, + 801, 802, 672, 338, -756, -756, 560, 352, 674, 675, + 676, 678, 680, 683, 684, 685, 687, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 699, 700, 701, 706, + 707, 708, 711, 712, 716, 717, 718, 719, 720, 721, + 722, 724, 725, 726, 727, 728, 729, 730, -756, -756, + -756, -756, -756, 360, -756, 855, 856, 734, 362, -756, + -756, -756, -756, 235, -756, 545, 731, 376, 732, -756, + -756, -756, -756, 797, 526, -756, -756, -756, -756, -756, + 429, 429, -756, -756, -756, -756, 858, 860, 862, 863, + 867, 869, 879, 883, 885, 886, 890, 891, 894, 895, + 896, 904, 914, 915, 916, 917, 918, 919, 920, 921, + 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, + 932, 933, 934, 935, 936, 937, 938, -756, 773, 377, + -756, 866, 944, -756, -756, 945, -756, 946, 947, 429, + 378, 765, 235, 764, 769, 770, 771, 774, 775, 776, + 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, + 798, 799, 800, 803, 804, 807, 808, 809, 810, 811, + 812, 813, 814, 815, 399, -756, 855, 817, -756, 866, + 816, 818, 819, 235, -756, -756, -756, -756, -756, -756, + -756, -756, -756, -756, -756, -756, -756, -756, -756, -756, + -756, -756, -756, -756, -756, -756, -756, -756, -756, -756, + -756, -756, -756, -756, -756, -756, -756, -756, -756, -756, + -756, -756, -756, -756, -756, -756, -756, -756, -756, -756, + 855, -756, 952, -756, 953, 401, 822, 825, -756, 975, + 981, 826, 829, -756, -756, 866, -756 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1058,123 +1058,123 @@ static const yytype_int16 yypact[] = static const yytype_int16 yydefact[] = { 195, 0, 0, 0, 0, 0, 0, 0, 131, 0, - 0, 0, 0, 0, 0, 0, 195, 0, 397, 3, + 0, 0, 0, 0, 0, 0, 195, 0, 398, 3, 5, 10, 12, 13, 11, 6, 7, 9, 144, 143, - 0, 8, 14, 15, 16, 17, 395, 395, 395, 395, - 395, 0, 393, 393, 393, 393, 393, 188, 0, 0, + 0, 8, 14, 15, 16, 17, 396, 396, 396, 396, + 396, 0, 394, 394, 394, 394, 394, 188, 0, 0, 0, 0, 0, 0, 125, 129, 126, 127, 128, 130, 124, 195, 0, 0, 209, 210, 208, 0, 0, 211, - 0, 213, 0, 228, 229, 230, 232, 231, 0, 194, + 0, 213, 0, 229, 230, 231, 233, 232, 0, 194, 196, 0, 0, 0, 1, 195, 2, 178, 180, 181, 0, 167, 149, 155, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 123, 18, 23, 25, 24, 19, 20, 22, 21, 26, 27, 28, 29, 218, - 219, 214, 0, 215, 0, 212, 249, 0, 0, 0, + 219, 214, 0, 215, 0, 212, 250, 0, 0, 0, 148, 147, 4, 179, 0, 145, 146, 166, 0, 0, - 163, 0, 30, 0, 31, 122, 398, 0, 0, 195, - 392, 136, 138, 137, 139, 0, 189, 0, 173, 133, - 0, 118, 391, 0, 0, 236, 238, 237, 234, 235, - 241, 243, 242, 239, 240, 246, 248, 247, 244, 245, - 0, 0, 221, 220, 226, 216, 217, 0, 197, 233, - 0, 0, 332, 336, 339, 340, 0, 0, 0, 0, - 0, 0, 0, 0, 337, 338, 0, 0, 0, 0, - 0, 0, 0, 334, 0, 195, 169, 250, 255, 256, - 270, 268, 269, 271, 272, 265, 260, 259, 258, 266, - 267, 257, 264, 263, 347, 349, 0, 350, 355, 0, - 356, 0, 351, 348, 366, 0, 367, 0, 346, 0, - 0, 165, 394, 195, 0, 0, 0, 116, 0, 0, + 163, 0, 30, 0, 31, 122, 399, 0, 0, 195, + 393, 136, 138, 137, 139, 0, 189, 0, 173, 133, + 0, 118, 392, 0, 0, 237, 239, 238, 235, 236, + 242, 244, 243, 240, 241, 247, 249, 248, 245, 246, + 0, 0, 221, 220, 226, 216, 217, 0, 197, 234, + 0, 0, 333, 337, 340, 341, 0, 0, 0, 0, + 0, 0, 0, 0, 338, 339, 0, 0, 0, 0, + 0, 0, 0, 335, 0, 195, 169, 251, 256, 257, + 271, 269, 270, 272, 273, 266, 261, 260, 259, 267, + 268, 258, 265, 264, 348, 350, 0, 351, 356, 0, + 357, 0, 352, 349, 367, 0, 368, 0, 347, 0, + 0, 165, 395, 195, 0, 0, 0, 116, 0, 0, 120, 0, 0, 0, 132, 172, 0, 0, 227, 222, - 0, 152, 151, 0, 375, 374, 377, 376, 379, 378, - 381, 380, 383, 382, 385, 384, 0, 0, 298, 195, - 0, 0, 0, 0, 341, 342, 343, 344, 0, 345, - 0, 0, 0, 0, 0, 0, 300, 299, 372, 369, - 363, 353, 358, 361, 0, 0, 0, 0, 171, 0, + 0, 152, 151, 0, 376, 375, 378, 377, 380, 379, + 382, 381, 384, 383, 386, 385, 0, 0, 299, 195, + 0, 0, 0, 0, 342, 343, 344, 345, 0, 346, + 0, 0, 0, 0, 0, 0, 301, 300, 373, 370, + 364, 354, 359, 362, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 352, 0, 357, 0, 360, 0, 368, 0, 371, 0, + 353, 0, 358, 0, 361, 0, 369, 0, 372, 0, 154, 156, 161, 162, 0, 150, 33, 0, 0, 0, 0, 36, 38, 39, 195, 0, 35, 121, 0, 0, - 119, 140, 135, 134, 0, 0, 0, 223, 198, 0, - 293, 0, 195, 0, 0, 0, 0, 0, 323, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 262, 261, - 195, 168, 182, 184, 193, 185, 251, 0, 173, 254, - 316, 317, 0, 0, 195, 0, 297, 307, 308, 311, - 312, 0, 314, 306, 309, 310, 302, 301, 303, 304, - 305, 333, 335, 354, 0, 359, 0, 362, 370, 373, - 0, 159, 160, 158, 164, 42, 45, 46, 43, 44, - 47, 48, 62, 49, 51, 50, 65, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, - 0, 0, 113, 0, 0, 403, 0, 34, 0, 0, - 117, 0, 0, 0, 0, 390, 0, 386, 0, 224, - 0, 294, 0, 328, 0, 0, 321, 0, 0, 0, - 0, 0, 0, 332, 0, 279, 0, 281, 0, 365, - 364, 0, 0, 0, 202, 203, 204, 205, 201, 206, - 0, 191, 0, 186, 285, 283, 284, 286, 287, 170, - 177, 195, 315, 0, 0, 296, 0, 0, 0, 157, - 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, - 0, 113, 106, 40, 0, 0, 0, 32, 37, 412, - 0, 252, 0, 389, 388, 142, 0, 141, 0, 295, - 329, 0, 325, 0, 324, 0, 0, 0, 0, 0, - 0, 0, 193, 183, 0, 0, 190, 0, 0, 175, - 0, 0, 330, 319, 318, 0, 0, 0, 0, 0, + 119, 140, 135, 134, 0, 0, 0, 0, 223, 198, + 0, 294, 0, 195, 0, 0, 0, 0, 0, 324, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, + 262, 195, 168, 182, 184, 193, 185, 252, 0, 173, + 255, 317, 318, 0, 0, 195, 0, 298, 308, 309, + 312, 313, 0, 315, 307, 310, 311, 303, 302, 304, + 305, 306, 334, 336, 355, 0, 360, 0, 363, 371, + 374, 0, 159, 160, 158, 164, 42, 45, 46, 43, + 44, 47, 48, 62, 49, 51, 50, 65, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, + 0, 0, 0, 113, 0, 0, 404, 0, 34, 0, + 0, 117, 0, 0, 0, 0, 391, 0, 387, 0, + 228, 224, 0, 295, 0, 329, 0, 0, 322, 0, + 0, 0, 0, 0, 0, 333, 0, 280, 0, 282, + 0, 366, 365, 0, 0, 0, 202, 203, 204, 205, + 201, 206, 0, 191, 0, 186, 286, 284, 285, 287, + 288, 170, 177, 195, 316, 0, 0, 297, 0, 0, + 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, + 109, 110, 0, 113, 106, 40, 0, 0, 0, 32, + 37, 413, 0, 253, 0, 390, 389, 142, 0, 141, + 0, 296, 330, 0, 326, 0, 325, 0, 0, 0, + 0, 0, 0, 0, 193, 183, 0, 0, 190, 0, + 0, 175, 0, 0, 331, 320, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 111, 108, 112, 107, - 41, 0, 115, 0, 0, 0, 0, 387, 225, 327, - 322, 326, 313, 0, 0, 0, 0, 280, 282, 187, - 199, 0, 0, 290, 288, 289, 291, 292, 0, 0, - 153, 331, 320, 64, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 111, 108, + 112, 107, 41, 0, 115, 0, 0, 0, 0, 388, + 225, 328, 323, 327, 314, 0, 0, 0, 0, 281, + 283, 187, 199, 0, 0, 291, 289, 290, 292, 293, + 0, 0, 153, 332, 321, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 114, 406, 0, 404, 401, - 0, 253, 369, 0, 277, 0, 0, 0, 0, 176, - 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 114, 407, 0, + 405, 402, 0, 254, 370, 0, 278, 0, 0, 0, + 0, 176, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 402, 0, 0, 410, 401, 0, 0, - 0, 200, 192, 63, 69, 70, 67, 68, 71, 72, - 73, 66, 93, 94, 91, 92, 95, 96, 97, 90, - 77, 78, 75, 76, 79, 80, 81, 74, 101, 102, - 99, 100, 103, 104, 105, 98, 85, 86, 83, 84, - 87, 88, 89, 82, 407, 409, 408, 405, 0, 411, - 0, 278, 0, 0, 0, 274, 400, 0, 0, 0, - 0, 273, 275, 401, 276 + 0, 0, 0, 0, 0, 403, 0, 0, 411, 402, + 0, 0, 0, 200, 192, 63, 69, 70, 67, 68, + 71, 72, 73, 66, 93, 94, 91, 92, 95, 96, + 97, 90, 77, 78, 75, 76, 79, 80, 81, 74, + 101, 102, 99, 100, 103, 104, 105, 98, 85, 86, + 83, 84, 87, 88, 89, 82, 408, 410, 409, 406, + 0, 412, 0, 279, 0, 0, 0, 275, 401, 0, + 0, 0, 0, 274, 276, 402, 277 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -758, -758, -758, 911, -758, 937, -758, 518, -758, 496, - -758, 444, 445, -758, -371, 948, 949, 856, -758, -758, - 951, -758, 740, 953, 954, -58, 1000, -15, 825, 877, - -56, -758, -758, 569, -758, -758, -758, -758, -758, -758, - -162, -758, -758, -758, -758, 498, -114, 23, 426, -758, - -758, 879, -758, -758, 962, 963, 964, 966, 968, -281, - -758, 699, -170, -190, -758, -409, -408, -407, -406, -405, - -758, -758, -758, -758, -758, -758, 726, -758, -758, 626, - 471, -219, -758, -758, -758, -758, -758, -758, -758, -758, - 679, 678, 449, -758, -758, -758, -758, 818, 656, 462, - 63, 121, 236, -758, -758, -757, -758, 197, 253, -758 + -756, -756, -756, 901, -756, 940, -756, 502, -756, 484, + -756, 451, 453, -756, -370, 943, 950, 850, -756, -756, + 954, -756, 735, 956, 957, -57, 991, -15, 828, 875, + -53, -756, -756, 576, -756, -756, -756, -756, -756, -756, + -162, -756, -756, -756, -756, 496, -98, 7, 427, -756, + -756, 884, -756, -756, 962, 963, 965, 967, 968, -280, + -756, 736, -170, -189, -756, -411, -410, -409, -408, -406, + -756, -756, -756, -756, -756, -756, 737, -756, -756, 625, + 472, -222, -756, -756, -756, -756, -756, -756, -756, -756, + 739, 741, 447, -756, -756, -756, -756, 830, 646, 454, + -44, 312, 333, -756, -756, -755, -756, 193, 249, -756 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - 0, 17, 18, 19, 116, 20, 370, 371, 372, 482, - 561, 562, 563, 373, 268, 21, 22, 159, 23, 61, + 0, 17, 18, 19, 116, 20, 370, 371, 372, 483, + 563, 564, 565, 373, 268, 21, 22, 159, 23, 61, 24, 168, 169, 25, 26, 27, 28, 29, 92, 145, - 93, 150, 360, 361, 453, 261, 365, 148, 328, 418, - 171, 680, 599, 90, 411, 412, 413, 414, 533, 30, - 79, 80, 415, 530, 31, 32, 33, 34, 35, 226, - 380, 227, 228, 229, 849, 230, 231, 232, 233, 234, - 539, 235, 236, 237, 238, 239, 303, 240, 241, 242, + 93, 150, 360, 361, 454, 261, 365, 148, 328, 419, + 171, 682, 601, 90, 412, 413, 414, 415, 535, 30, + 79, 80, 416, 532, 31, 32, 33, 34, 35, 226, + 380, 227, 228, 229, 851, 230, 231, 232, 233, 234, + 541, 235, 236, 237, 238, 239, 303, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 322, 323, 253, 254, 255, 256, 257, 258, 496, 497, - 173, 103, 95, 86, 100, 786, 567, 727, 728, 376 + 322, 323, 253, 254, 255, 256, 257, 258, 497, 498, + 173, 103, 95, 86, 100, 788, 569, 729, 730, 376 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1182,220 +1182,230 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 275, 83, 391, 123, 488, 321, 274, 47, 534, 535, - 536, 537, 538, 87, 263, 88, 298, 89, 14, 367, - 175, 91, 176, 177, 318, 319, 326, 48, 441, 50, - 839, 316, 317, 301, 146, -396, 77, 513, 505, 302, - 422, 41, 1, 170, 2, 3, 4, 5, 6, 7, - 8, 9, 584, 47, 531, 325, 269, 49, 10, -399, - 11, 12, 13, 180, 101, 181, 182, 330, 331, 94, - 660, 76, 110, 203, 204, 205, 329, 51, 52, 185, - 178, 186, 187, 53, 377, 72, 130, 378, 201, 362, - 363, 78, 504, 330, 331, 136, 854, 81, 491, 330, - 331, 14, 382, 409, 451, 452, 298, 532, 500, 62, - 63, 425, 64, 565, 14, 423, 330, 331, 570, 153, - 154, 155, 16, 183, 65, 66, 84, 162, 163, 164, - 395, 396, 443, 85, 330, 331, 327, 350, 368, 188, - 369, 264, 351, 544, 270, 427, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 585, - 420, 421, 426, 273, 104, 105, 106, 107, 330, 331, - 210, 211, 212, 213, 556, 174, 179, 592, 330, 331, - 266, 330, 331, 485, 330, 331, 486, 410, 673, 674, - 675, 676, 677, 651, 454, 15, 144, 214, 215, 216, - 224, 320, 199, 442, 91, 366, 202, 203, 204, 205, - 324, 352, 223, 73, 74, 75, 353, 587, 16, 184, - 330, 331, 557, 354, 558, 559, 356, 560, 355, 508, - 509, 357, 511, 542, 358, 189, 94, 67, 68, 359, - 393, 102, 69, 70, 71, 606, 607, 608, 609, 610, - 224, 501, 611, 612, 327, 87, 540, 88, 515, 89, - 601, 516, 108, 614, 615, 616, 617, 618, 137, 389, - 619, 620, 613, 96, 97, 98, 99, 206, 207, 398, - 362, 399, 109, 400, 394, 506, 208, 507, 209, 400, - 621, 656, 334, 190, 381, 113, 517, 191, 192, 518, - 114, 738, 193, 194, 210, 211, 212, 213, 115, 335, - 336, 337, 338, 36, 37, 38, 487, 340, 111, 112, - 586, 202, 203, 204, 205, 39, 40, 311, 129, 312, - 313, 214, 215, 216, 349, 582, 589, 583, 135, 341, - 342, 343, 344, 345, 346, 347, 348, 138, 569, 139, - 662, 378, 521, 217, 131, 132, 604, 202, 203, 204, - 205, 622, 623, 624, 625, 626, 330, 331, 627, 628, - 666, 218, 571, 219, 220, 327, 140, 502, 141, 221, - 222, 223, 575, 143, 224, 576, 225, 390, 629, 133, - 134, 577, 206, 207, 576, 386, 387, 739, 42, 43, - 44, 208, 218, 209, 219, 220, 301, 519, 520, 543, - 45, 46, 318, 732, 834, 661, 835, 836, 147, 210, - 211, 212, 213, 630, 631, 632, 633, 634, 206, 207, - 635, 636, 579, 14, 149, 327, 152, 208, 603, 209, - 652, 327, 655, 378, 151, 378, 214, 215, 216, 682, - 637, 683, 327, 156, 684, 210, 211, 212, 213, 346, - 347, 348, 202, 203, 204, 205, 725, 731, 217, 378, - 327, 734, 783, 157, 735, 784, 202, 203, 204, 205, - 670, 671, 214, 215, 216, 158, 218, 792, 219, 220, - 378, 160, 161, 165, 221, 222, 223, 846, 166, 224, - 784, 225, 167, 170, 217, 493, 494, 495, 172, 740, - 195, 638, 639, 640, 641, 642, 196, 197, 643, 644, - 259, 260, 218, 262, 219, 220, 600, 267, 271, 272, - 221, 222, 223, 206, 207, 224, 276, 225, 645, 277, - 278, 279, 208, 281, 209, 334, 283, 296, 297, 54, - 55, 56, 57, 58, 59, 282, 208, 60, 209, 299, - 210, 211, 212, 213, -400, -400, 300, 791, 304, 305, - 306, 307, 310, 314, 210, 211, 212, 213, 308, 315, - 349, 202, 203, 204, 205, 364, 374, 214, 215, 216, - 388, 375, 379, -400, -400, 344, 345, 346, 347, 348, - 384, 214, 215, 216, 14, 385, 392, 401, 405, 217, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 402, 217, 403, 404, 406, 218, 407, 219, - 220, 408, 419, 449, 417, 221, 222, 223, 424, 224, - 224, 218, 225, 219, 220, 444, 446, 448, 450, 221, - 222, 223, 296, 484, 224, 483, 225, 489, 490, 492, - 499, 208, 423, 209, 503, 510, 512, 1, 522, 2, - 3, 4, 5, 6, 7, 8, 9, 330, 545, 210, - 211, 212, 213, 10, 541, 11, 12, 13, 547, 550, - 548, 551, 552, 1, 566, 2, 3, 4, 5, 6, - 7, 332, 9, 333, 553, 554, 214, 215, 216, 10, - 393, 11, 12, 13, 523, -207, 524, 525, 526, 527, - 573, 528, 529, 555, 564, 572, 574, 578, 217, 580, - 588, 590, 591, 594, 595, 596, 597, 598, 602, 14, - 520, 519, 646, 605, 647, 653, 218, 654, 219, 220, - 658, 663, 659, 334, 221, 222, 223, 665, 667, 224, - 668, 225, 334, 672, 678, 14, 679, 681, 685, 686, - 335, 336, 337, 338, 339, 726, 687, 688, 340, 335, - 336, 337, 338, 393, 546, 689, 690, 340, 691, 692, - 729, 741, 693, 694, 695, 696, 697, 698, 699, 700, - 341, 342, 343, 344, 345, 346, 347, 348, 737, 341, - 342, 343, 344, 345, 346, 347, 348, 701, 702, 703, - 15, 704, 705, 730, 706, 707, 742, 743, 744, 708, - 709, 710, 711, 712, 713, 334, 714, 715, 716, 717, - 718, 745, 746, 16, 747, 334, 15, 748, 719, 749, - 720, 721, 335, 336, 337, 338, 722, 723, 724, 733, - 340, 736, -400, -400, 337, 338, 750, 751, 752, 16, - -400, 753, 754, 755, 756, 757, 758, 759, 760, 761, - 762, 763, 341, 342, 343, 344, 345, 346, 347, 348, - 764, 765, -400, 342, 343, 344, 345, 346, 347, 348, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 766, 767, 476, 768, 769, 477, 478, 770, 771, - 479, 480, 481, 772, 773, 774, 775, 776, 777, 778, - 779, 780, 781, 782, 787, 327, 788, 789, 790, 793, - 794, 795, 796, 797, 838, 785, 844, 798, 799, 800, - 801, 802, 803, 804, 805, 806, 807, 808, 809, 845, - 810, 851, 811, 812, 813, 814, 815, 816, 817, 818, - 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, - 829, 830, 831, 832, 833, 850, 142, 841, 117, 840, - 581, 842, 847, 848, 568, 649, 650, 852, 853, 118, - 119, 265, 120, 383, 121, 122, 82, 198, 669, 549, - 593, 200, 280, 124, 125, 126, 416, 127, 397, 128, - 514, 648, 445, 447, 309, 843, 664, 837, 657, 0, - 0, 498 + 275, 83, 321, 392, 123, 489, 274, 536, 537, 538, + 539, 48, 540, 50, 87, -397, 88, 298, 89, 47, + 77, 14, 1, 326, 2, 3, 4, 5, 6, 7, + 8, 9, 316, 317, 841, 263, 507, 146, 10, 302, + 11, 12, 13, 91, 442, 170, 515, 423, 101, 318, + 319, 367, 41, 533, 586, 325, 110, 175, 47, 176, + 177, 180, 587, 181, 182, 426, 377, 49, 174, 378, + 130, 662, 185, 350, 186, 187, 329, 301, 351, 136, + 76, 506, 352, 203, 204, 205, -400, 353, 78, 362, + 363, 201, 330, 331, 14, 199, 94, 330, 331, 492, + 856, 72, 382, 153, 154, 155, 534, 298, 452, 453, + 502, 162, 163, 164, 81, 567, 427, 178, 330, 331, + 572, 183, 424, 330, 331, 16, 269, 84, 410, 444, + 396, 397, 188, 327, 354, 330, 331, 330, 331, 355, + 202, 203, 204, 205, 270, 546, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 421, 422, 264, 85, 266, 273, 330, 331, 330, 331, + 368, 14, 369, 330, 331, 15, 111, 112, 594, 356, + 210, 211, 212, 213, 357, 330, 331, 358, 675, 676, + 677, 678, 359, 679, 455, 558, 653, 91, 16, 411, + 87, 94, 88, 390, 89, 589, 366, 214, 215, 216, + 324, 206, 207, 179, 73, 74, 75, 184, 144, 443, + 208, 223, 209, 51, 52, 224, 320, 102, 189, 53, + 510, 511, 399, 513, 400, 544, 401, 108, 210, 211, + 212, 213, 109, 559, 486, 560, 561, 487, 562, 36, + 37, 38, 503, 62, 63, 327, 64, 542, 131, 132, + 224, 39, 40, 603, 113, 214, 215, 216, 65, 66, + 1, 114, 2, 3, 4, 5, 6, 7, 381, 9, + 311, 362, 312, 313, 395, 115, 10, 217, 11, 12, + 13, 346, 347, 348, 658, 202, 203, 204, 205, 42, + 43, 44, 129, 517, 740, 218, 518, 219, 220, 133, + 134, 45, 46, 221, 222, 223, 519, 488, 224, 520, + 225, 391, 508, 588, 509, 137, 401, 202, 203, 204, + 205, 190, 349, 135, 591, 191, 192, 584, 138, 585, + 193, 194, 14, 140, 1, 139, 2, 3, 4, 5, + 6, 7, 8, 9, 523, 104, 105, 106, 107, 606, + 10, 141, 11, 12, 13, 571, 206, 207, 378, 668, + 96, 97, 98, 99, 143, 208, 573, 209, 504, 327, + 301, 67, 68, 330, 331, 147, 69, 70, 71, 218, + 151, 219, 220, 210, 211, 212, 213, 149, 206, 207, + 741, 152, 836, 14, 837, 838, 156, 208, 157, 209, + 545, 608, 609, 610, 611, 612, 14, 663, 613, 614, + 214, 215, 216, 15, 158, 210, 211, 212, 213, 334, + 387, 388, 202, 203, 204, 205, 577, 579, 615, 578, + 578, 581, 217, 160, 327, 161, 16, 165, -401, -401, + 521, 522, 214, 215, 216, 202, 203, 204, 205, 166, + 218, 605, 219, 220, 327, 494, 495, 496, 221, 222, + 223, 394, 167, 224, 217, 225, 170, -401, -401, 344, + 345, 346, 347, 348, 172, 54, 55, 56, 57, 58, + 59, 195, 218, 60, 219, 220, 197, 15, 672, 673, + 221, 222, 223, 206, 207, 224, 654, 225, 196, 378, + 657, 742, 208, 378, 209, 259, 202, 203, 204, 205, + 16, 262, 684, 334, 260, 327, 296, 297, 602, 267, + 210, 211, 212, 213, 271, 208, 685, 209, 272, 686, + 335, 336, 337, 338, 727, 548, 733, 378, 340, 327, + 318, 734, 276, 210, 211, 212, 213, 214, 215, 216, + 736, 785, 794, 737, 786, 378, 277, 394, 278, 793, + 341, 342, 343, 344, 345, 346, 347, 348, 279, 217, + 214, 215, 216, 304, 281, 848, 282, 296, 786, 283, + 299, 300, 305, 306, 307, 310, 208, 218, 209, 219, + 220, 308, 217, 314, 315, 221, 222, 223, 349, 364, + 224, 374, 225, 375, 210, 211, 212, 213, 379, 334, + 218, 384, 219, 220, 385, 14, 386, 389, 221, 222, + 223, 393, 402, 224, 394, 225, 335, 336, 337, 338, + 403, 214, 215, 216, 340, 332, 404, 333, 616, 617, + 618, 619, 620, 405, 406, 621, 622, 525, -207, 526, + 527, 528, 529, 217, 530, 531, 341, 342, 343, 344, + 345, 346, 347, 348, 407, 623, 409, 664, 408, 418, + 420, 218, 425, 219, 220, 224, 334, 445, 447, 221, + 222, 223, 449, 450, 224, 451, 225, 334, 484, 485, + 490, 491, 493, 335, 336, 337, 338, 334, 500, 501, + 424, 340, 505, 512, 335, 336, 337, 338, 339, 514, + 524, 330, 340, 543, -401, -401, 337, 338, 547, 549, + 550, 552, -401, 341, 342, 343, 344, 345, 346, 347, + 348, 568, 575, 576, 341, 342, 343, 344, 345, 346, + 347, 348, 553, 554, -401, 342, 343, 344, 345, 346, + 347, 348, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 580, 555, 477, 582, 556, 478, 479, + 557, 566, 480, 481, 482, 624, 625, 626, 627, 628, + 574, 590, 629, 630, 632, 633, 634, 635, 636, 592, + 593, 637, 638, 640, 641, 642, 643, 644, 596, 597, + 645, 646, 631, 598, 599, 600, 604, 522, 521, 648, + 607, 639, 649, 660, 655, 656, 661, 665, 667, 669, + 647, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 670, 674, 680, 683, 681, 728, 731, + 739, 687, 688, 689, 743, 690, 744, 691, 745, 746, + 692, 693, 694, 747, 695, 748, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 749, 705, 706, 707, 750, + 732, 751, 752, 708, 709, 710, 753, 754, 711, 712, + 755, 756, 757, 713, 714, 715, 716, 717, 718, 719, + 758, 720, 721, 722, 723, 724, 725, 726, 735, 738, + 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, + 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, + 779, 780, 781, 782, 783, 787, 784, 789, 795, 790, + 791, 792, 327, 796, 797, 798, 846, 847, 799, 800, + 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, + 821, 852, 822, 823, 824, 853, 142, 825, 826, 570, + 583, 827, 828, 829, 830, 831, 832, 833, 834, 835, + 840, 117, 843, 842, 118, 265, 844, 82, 383, 849, + 854, 119, 850, 855, 651, 120, 652, 121, 122, 200, + 595, 671, 198, 124, 125, 280, 126, 551, 127, 128, + 516, 499, 659, 845, 650, 839, 666, 0, 0, 398, + 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 446, 0, 0, 0, 448 }; static const yytype_int16 yycheck[] = { - 170, 16, 283, 61, 375, 224, 168, 3, 417, 417, - 417, 417, 417, 20, 56, 22, 206, 24, 79, 3, - 3, 8, 5, 6, 5, 6, 77, 4, 3, 6, - 787, 221, 222, 88, 90, 0, 13, 3, 87, 209, - 76, 33, 7, 67, 9, 10, 11, 12, 13, 14, - 15, 16, 84, 3, 3, 225, 34, 77, 23, 63, - 25, 26, 27, 3, 41, 5, 6, 148, 149, 73, - 84, 3, 49, 4, 5, 6, 56, 157, 158, 3, - 63, 5, 6, 163, 184, 30, 63, 187, 144, 259, - 260, 3, 56, 148, 149, 72, 853, 161, 379, 148, - 149, 79, 272, 184, 71, 72, 296, 56, 389, 29, - 30, 74, 32, 484, 79, 151, 148, 149, 489, 96, - 97, 98, 183, 63, 44, 45, 0, 104, 105, 106, - 300, 301, 351, 186, 148, 149, 187, 182, 122, 63, - 124, 183, 187, 424, 159, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 87, - 330, 331, 125, 187, 43, 44, 45, 46, 148, 149, - 101, 102, 103, 104, 74, 112, 159, 184, 148, 149, - 157, 148, 149, 184, 148, 149, 187, 183, 597, 597, - 597, 597, 597, 564, 364, 160, 183, 128, 129, 130, - 181, 182, 139, 178, 8, 263, 3, 4, 5, 6, - 225, 182, 178, 152, 153, 154, 187, 187, 183, 159, - 148, 149, 122, 182, 124, 125, 182, 127, 187, 399, - 400, 187, 402, 423, 182, 159, 73, 157, 158, 187, - 74, 73, 162, 163, 164, 90, 91, 92, 93, 94, - 181, 184, 97, 98, 187, 20, 418, 22, 184, 24, - 541, 187, 185, 90, 91, 92, 93, 94, 56, 66, - 97, 98, 117, 37, 38, 39, 40, 74, 75, 84, - 450, 86, 14, 88, 299, 84, 83, 86, 85, 88, - 117, 572, 126, 42, 271, 3, 184, 46, 47, 187, - 3, 672, 51, 52, 101, 102, 103, 104, 3, 143, - 144, 145, 146, 29, 30, 31, 374, 151, 77, 78, - 510, 3, 4, 5, 6, 41, 42, 116, 3, 118, - 119, 128, 129, 130, 185, 505, 187, 507, 3, 173, - 174, 175, 176, 177, 178, 179, 180, 187, 184, 6, - 184, 187, 410, 150, 165, 166, 546, 3, 4, 5, - 6, 90, 91, 92, 93, 94, 148, 149, 97, 98, - 589, 168, 184, 170, 171, 187, 184, 392, 184, 176, - 177, 178, 184, 21, 181, 187, 183, 184, 117, 165, - 166, 184, 74, 75, 187, 48, 49, 678, 29, 30, - 31, 83, 168, 85, 170, 171, 88, 5, 6, 424, - 41, 42, 5, 6, 3, 585, 5, 6, 66, 101, - 102, 103, 104, 90, 91, 92, 93, 94, 74, 75, - 97, 98, 184, 79, 68, 187, 3, 83, 184, 85, - 184, 187, 184, 187, 74, 187, 128, 129, 130, 184, - 117, 184, 187, 3, 187, 101, 102, 103, 104, 178, - 179, 180, 3, 4, 5, 6, 184, 184, 150, 187, - 187, 184, 184, 63, 187, 187, 3, 4, 5, 6, - 594, 595, 128, 129, 130, 183, 168, 184, 170, 171, - 187, 75, 3, 3, 176, 177, 178, 184, 3, 181, - 187, 183, 3, 67, 150, 80, 81, 82, 4, 679, - 3, 90, 91, 92, 93, 94, 3, 183, 97, 98, - 54, 69, 168, 75, 170, 171, 541, 3, 63, 173, - 176, 177, 178, 74, 75, 181, 79, 183, 117, 79, - 3, 6, 83, 184, 85, 126, 183, 74, 75, 35, - 36, 37, 38, 39, 40, 184, 83, 43, 85, 183, - 101, 102, 103, 104, 145, 146, 183, 737, 4, 4, - 4, 4, 183, 183, 101, 102, 103, 104, 6, 183, - 185, 3, 4, 5, 6, 70, 56, 128, 129, 130, - 184, 183, 183, 174, 175, 176, 177, 178, 179, 180, - 183, 128, 129, 130, 79, 183, 183, 4, 4, 150, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 183, 150, 183, 183, 4, 168, 188, 170, - 171, 184, 3, 5, 167, 176, 177, 178, 183, 181, - 181, 168, 183, 170, 171, 6, 6, 6, 187, 176, - 177, 178, 74, 183, 181, 123, 183, 183, 3, 187, - 6, 83, 151, 85, 184, 77, 4, 7, 187, 9, - 10, 11, 12, 13, 14, 15, 16, 148, 125, 101, - 102, 103, 104, 23, 183, 25, 26, 27, 188, 183, - 188, 183, 183, 7, 28, 9, 10, 11, 12, 13, - 14, 74, 16, 76, 183, 183, 128, 129, 130, 23, - 74, 25, 26, 27, 57, 58, 59, 60, 61, 62, - 4, 64, 65, 183, 183, 183, 3, 50, 150, 184, - 187, 4, 4, 58, 58, 3, 187, 53, 184, 79, - 6, 5, 125, 6, 123, 183, 168, 156, 170, 171, - 6, 181, 184, 126, 176, 177, 178, 4, 184, 181, - 184, 183, 126, 183, 54, 79, 55, 184, 187, 187, - 143, 144, 145, 146, 147, 3, 187, 187, 151, 143, - 144, 145, 146, 74, 148, 187, 187, 151, 187, 187, - 3, 6, 187, 187, 187, 187, 187, 187, 187, 187, - 173, 174, 175, 176, 177, 178, 179, 180, 63, 173, - 174, 175, 176, 177, 178, 179, 180, 187, 187, 187, - 160, 187, 187, 156, 187, 187, 6, 6, 6, 187, - 187, 187, 187, 187, 187, 126, 187, 187, 187, 187, - 187, 6, 6, 183, 6, 126, 160, 6, 187, 6, - 187, 187, 143, 144, 145, 146, 187, 187, 187, 187, - 151, 187, 143, 144, 145, 146, 6, 6, 6, 183, - 151, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 173, 174, 175, 176, 177, 178, 179, 180, - 6, 6, 173, 174, 175, 176, 177, 178, 179, 180, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 6, 6, 112, 6, 6, 115, 116, 6, 6, - 119, 120, 121, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 173, 3, 187, 4, 4, 4, 184, - 184, 184, 184, 184, 183, 79, 4, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 4, - 184, 4, 184, 184, 184, 184, 184, 184, 184, 184, + 170, 16, 224, 283, 61, 375, 168, 418, 418, 418, + 418, 4, 418, 6, 20, 0, 22, 206, 24, 3, + 13, 79, 7, 77, 9, 10, 11, 12, 13, 14, + 15, 16, 221, 222, 789, 56, 87, 90, 23, 209, + 25, 26, 27, 8, 3, 67, 3, 76, 41, 5, + 6, 3, 33, 3, 84, 225, 49, 3, 3, 5, + 6, 3, 87, 5, 6, 74, 184, 77, 112, 187, + 63, 84, 3, 182, 5, 6, 56, 88, 187, 72, + 3, 56, 182, 4, 5, 6, 63, 187, 3, 259, + 260, 144, 148, 149, 79, 139, 73, 148, 149, 379, + 855, 30, 272, 96, 97, 98, 56, 296, 71, 72, + 390, 104, 105, 106, 161, 485, 125, 63, 148, 149, + 490, 63, 151, 148, 149, 183, 34, 0, 184, 351, + 300, 301, 63, 187, 182, 148, 149, 148, 149, 187, + 3, 4, 5, 6, 159, 425, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 330, 331, 183, 186, 157, 187, 148, 149, 148, 149, + 122, 79, 124, 148, 149, 160, 77, 78, 184, 182, + 101, 102, 103, 104, 187, 148, 149, 182, 599, 599, + 599, 599, 187, 599, 364, 74, 566, 8, 183, 183, + 20, 73, 22, 66, 24, 187, 263, 128, 129, 130, + 225, 74, 75, 159, 152, 153, 154, 159, 183, 178, + 83, 178, 85, 157, 158, 181, 182, 73, 159, 163, + 400, 401, 84, 403, 86, 424, 88, 185, 101, 102, + 103, 104, 14, 122, 184, 124, 125, 187, 127, 29, + 30, 31, 184, 29, 30, 187, 32, 419, 165, 166, + 181, 41, 42, 543, 3, 128, 129, 130, 44, 45, + 7, 3, 9, 10, 11, 12, 13, 14, 271, 16, + 116, 451, 118, 119, 299, 3, 23, 150, 25, 26, + 27, 178, 179, 180, 574, 3, 4, 5, 6, 29, + 30, 31, 3, 184, 674, 168, 187, 170, 171, 165, + 166, 41, 42, 176, 177, 178, 184, 374, 181, 187, + 183, 184, 84, 512, 86, 56, 88, 3, 4, 5, + 6, 42, 185, 3, 187, 46, 47, 507, 187, 509, + 51, 52, 79, 184, 7, 6, 9, 10, 11, 12, + 13, 14, 15, 16, 411, 43, 44, 45, 46, 548, + 23, 184, 25, 26, 27, 184, 74, 75, 187, 591, + 37, 38, 39, 40, 21, 83, 184, 85, 393, 187, + 88, 157, 158, 148, 149, 66, 162, 163, 164, 168, + 74, 170, 171, 101, 102, 103, 104, 68, 74, 75, + 680, 3, 3, 79, 5, 6, 3, 83, 63, 85, + 425, 90, 91, 92, 93, 94, 79, 587, 97, 98, + 128, 129, 130, 160, 183, 101, 102, 103, 104, 126, + 48, 49, 3, 4, 5, 6, 184, 184, 117, 187, + 187, 184, 150, 75, 187, 3, 183, 3, 145, 146, + 5, 6, 128, 129, 130, 3, 4, 5, 6, 3, + 168, 184, 170, 171, 187, 80, 81, 82, 176, 177, + 178, 74, 3, 181, 150, 183, 67, 174, 175, 176, + 177, 178, 179, 180, 4, 35, 36, 37, 38, 39, + 40, 3, 168, 43, 170, 171, 183, 160, 596, 597, + 176, 177, 178, 74, 75, 181, 184, 183, 3, 187, + 184, 681, 83, 187, 85, 54, 3, 4, 5, 6, + 183, 75, 184, 126, 69, 187, 74, 75, 543, 3, + 101, 102, 103, 104, 63, 83, 184, 85, 173, 187, + 143, 144, 145, 146, 184, 148, 184, 187, 151, 187, + 5, 6, 79, 101, 102, 103, 104, 128, 129, 130, + 184, 184, 184, 187, 187, 187, 79, 74, 3, 739, + 173, 174, 175, 176, 177, 178, 179, 180, 6, 150, + 128, 129, 130, 4, 184, 184, 184, 74, 187, 183, + 183, 183, 4, 4, 4, 183, 83, 168, 85, 170, + 171, 6, 150, 183, 183, 176, 177, 178, 185, 70, + 181, 56, 183, 183, 101, 102, 103, 104, 183, 126, + 168, 183, 170, 171, 183, 79, 46, 184, 176, 177, + 178, 183, 4, 181, 74, 183, 143, 144, 145, 146, + 183, 128, 129, 130, 151, 74, 183, 76, 90, 91, + 92, 93, 94, 183, 4, 97, 98, 57, 58, 59, + 60, 61, 62, 150, 64, 65, 173, 174, 175, 176, + 177, 178, 179, 180, 4, 117, 184, 184, 188, 167, + 3, 168, 183, 170, 171, 181, 126, 6, 6, 176, + 177, 178, 6, 5, 181, 187, 183, 126, 123, 183, + 183, 3, 187, 143, 144, 145, 146, 126, 6, 6, + 151, 151, 184, 77, 143, 144, 145, 146, 147, 4, + 187, 148, 151, 183, 143, 144, 145, 146, 125, 188, + 188, 183, 151, 173, 174, 175, 176, 177, 178, 179, + 180, 28, 4, 3, 173, 174, 175, 176, 177, 178, + 179, 180, 183, 183, 173, 174, 175, 176, 177, 178, + 179, 180, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 50, 183, 112, 184, 183, 115, 116, + 183, 183, 119, 120, 121, 90, 91, 92, 93, 94, + 183, 187, 97, 98, 90, 91, 92, 93, 94, 4, + 4, 97, 98, 90, 91, 92, 93, 94, 58, 58, + 97, 98, 117, 3, 187, 53, 184, 6, 5, 125, + 6, 117, 123, 6, 183, 156, 184, 181, 4, 184, + 117, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 184, 183, 54, 184, 55, 3, 3, + 63, 187, 187, 187, 6, 187, 6, 187, 6, 6, + 187, 187, 187, 6, 187, 6, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 6, 187, 187, 187, 6, + 156, 6, 6, 187, 187, 187, 6, 6, 187, 187, + 6, 6, 6, 187, 187, 187, 187, 187, 187, 187, + 6, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 79, 173, 3, 184, 4, + 4, 4, 187, 184, 184, 184, 4, 4, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 6, 85, 184, 61, 187, - 504, 187, 187, 187, 486, 561, 561, 184, 184, 61, - 61, 155, 61, 273, 61, 61, 16, 138, 592, 450, - 522, 144, 197, 61, 61, 61, 327, 61, 302, 61, - 404, 560, 353, 355, 216, 838, 587, 784, 576, -1, - -1, 385 + 184, 6, 184, 184, 184, 4, 85, 184, 184, 487, + 506, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 183, 61, 184, 187, 61, 155, 187, 16, 273, 187, + 184, 61, 187, 184, 563, 61, 563, 61, 61, 144, + 524, 594, 138, 61, 61, 197, 61, 451, 61, 61, + 405, 385, 578, 840, 562, 786, 589, -1, -1, 302, + -1, -1, -1, -1, -1, -1, 216, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 327, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 353, -1, -1, -1, 355 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of @@ -1440,54 +1450,54 @@ static const yytype_int16 yystos[] = 182, 187, 182, 187, 182, 187, 182, 187, 182, 187, 221, 222, 251, 251, 70, 225, 214, 3, 122, 124, 195, 196, 197, 202, 56, 183, 298, 184, 187, 183, - 249, 236, 251, 211, 183, 183, 48, 49, 184, 66, - 184, 248, 183, 74, 216, 251, 251, 265, 84, 86, - 88, 4, 183, 183, 183, 4, 4, 188, 184, 184, - 183, 233, 234, 235, 236, 241, 250, 167, 228, 3, - 251, 251, 76, 151, 183, 74, 125, 252, 252, 252, + 249, 236, 251, 211, 183, 183, 46, 48, 49, 184, + 66, 184, 248, 183, 74, 216, 251, 251, 265, 84, + 86, 88, 4, 183, 183, 183, 4, 4, 188, 184, + 184, 183, 233, 234, 235, 236, 241, 250, 167, 228, + 3, 251, 251, 76, 151, 183, 74, 125, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - 252, 3, 178, 270, 6, 279, 6, 280, 6, 5, - 187, 71, 72, 223, 251, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 112, 115, 116, 119, - 120, 121, 198, 123, 183, 184, 187, 214, 203, 183, - 3, 248, 187, 80, 81, 82, 287, 288, 287, 6, - 248, 184, 216, 184, 56, 87, 84, 86, 251, 251, - 77, 251, 4, 3, 268, 184, 187, 184, 187, 5, - 6, 214, 187, 57, 59, 60, 61, 62, 64, 65, - 242, 3, 56, 237, 254, 255, 256, 257, 258, 259, - 229, 183, 252, 216, 248, 125, 148, 188, 188, 222, - 183, 183, 183, 183, 183, 183, 74, 122, 124, 125, - 127, 199, 200, 201, 183, 203, 28, 295, 196, 184, - 203, 184, 183, 4, 3, 184, 187, 184, 50, 184, - 184, 198, 251, 251, 84, 87, 252, 187, 187, 187, - 4, 4, 184, 234, 58, 58, 3, 187, 53, 231, - 216, 248, 184, 184, 252, 6, 90, 91, 92, 93, + 252, 252, 3, 178, 270, 6, 279, 6, 280, 6, + 5, 187, 71, 72, 223, 251, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 112, 115, 116, + 119, 120, 121, 198, 123, 183, 184, 187, 214, 203, + 183, 3, 248, 187, 80, 81, 82, 287, 288, 287, + 6, 6, 248, 184, 216, 184, 56, 87, 84, 86, + 251, 251, 77, 251, 4, 3, 268, 184, 187, 184, + 187, 5, 6, 214, 187, 57, 59, 60, 61, 62, + 64, 65, 242, 3, 56, 237, 254, 255, 256, 257, + 258, 259, 229, 183, 252, 216, 248, 125, 148, 188, + 188, 222, 183, 183, 183, 183, 183, 183, 74, 122, + 124, 125, 127, 199, 200, 201, 183, 203, 28, 295, + 196, 184, 203, 184, 183, 4, 3, 184, 187, 184, + 50, 184, 184, 198, 251, 251, 84, 87, 252, 187, + 187, 187, 4, 4, 184, 234, 58, 58, 3, 187, + 53, 231, 216, 248, 184, 184, 252, 6, 90, 91, + 92, 93, 94, 97, 98, 117, 90, 91, 92, 93, 94, 97, 98, 117, 90, 91, 92, 93, 94, 97, 98, 117, 90, 91, 92, 93, 94, 97, 98, 117, - 90, 91, 92, 93, 94, 97, 98, 117, 90, 91, - 92, 93, 94, 97, 98, 117, 125, 123, 269, 200, - 201, 203, 184, 183, 156, 184, 248, 288, 6, 184, - 84, 251, 184, 181, 281, 4, 270, 184, 184, 237, - 235, 235, 183, 254, 255, 256, 257, 258, 54, 55, - 230, 184, 184, 184, 187, 187, 187, 187, 187, 187, + 90, 91, 92, 93, 94, 97, 98, 117, 125, 123, + 269, 200, 201, 203, 184, 183, 156, 184, 248, 288, + 6, 184, 84, 251, 184, 181, 281, 4, 270, 184, + 184, 237, 235, 235, 183, 254, 255, 256, 257, 258, + 54, 55, 230, 184, 184, 184, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 184, 3, 296, 297, 3, - 156, 184, 6, 187, 184, 187, 187, 63, 203, 248, - 251, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 187, 187, 187, 187, 187, 187, 187, 184, 3, 296, + 297, 3, 156, 184, 6, 187, 184, 187, 187, 63, + 203, 248, 251, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 173, 184, 187, 79, 294, 3, 4, 4, - 4, 251, 184, 184, 184, 184, 184, 184, 184, 184, + 6, 6, 6, 6, 173, 184, 187, 79, 294, 3, + 4, 4, 4, 251, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 3, 5, 6, 297, 183, 294, - 187, 184, 187, 296, 4, 4, 184, 187, 187, 253, - 6, 4, 184, 184, 294 + 184, 184, 184, 184, 184, 184, 3, 5, 6, 297, + 183, 294, 187, 184, 187, 296, 4, 4, 184, 187, + 187, 253, 6, 4, 184, 184, 294 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ @@ -1515,26 +1525,26 @@ static const yytype_int16 yyr1[] = 237, 237, 237, 237, 238, 238, 239, 239, 240, 241, 241, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, - 244, 245, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, - 248, 248, 249, 249, 250, 250, 251, 251, 251, 251, - 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 253, 253, 254, 255, 256, 256, 257, - 257, 258, 258, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 260, 260, 260, 260, 260, 260, 260, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, + 244, 244, 245, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 247, 248, 248, 249, 249, 250, 250, 251, 251, 251, + 251, 251, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 253, 253, 254, 255, 256, 256, + 257, 257, 258, 258, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 261, 261, 262, 263, - 263, 264, 264, 264, 264, 265, 265, 266, 267, 267, - 267, 267, 268, 268, 268, 268, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, 270, 270, - 270, 270, 271, 272, 272, 273, 273, 274, 275, 275, - 276, 277, 277, 278, 279, 280, 281, 281, 282, 283, - 283, 284, 285, 285, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 287, 287, 288, 288, - 288, 289, 290, 290, 291, 291, 292, 292, 293, 293, - 294, 294, 295, 295, 296, 296, 297, 297, 297, 297, - 298, 298, 298 + 260, 260, 260, 260, 260, 260, 260, 261, 261, 262, + 263, 263, 264, 264, 264, 264, 265, 265, 266, 267, + 267, 267, 267, 268, 268, 268, 268, 269, 269, 269, + 269, 269, 269, 269, 269, 269, 269, 269, 269, 270, + 270, 270, 270, 271, 272, 272, 273, 273, 274, 275, + 275, 276, 277, 277, 278, 279, 280, 281, 281, 282, + 283, 283, 284, 285, 285, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 287, 287, 288, + 288, 288, 289, 290, 290, 291, 291, 292, 292, 293, + 293, 294, 294, 295, 295, 296, 296, 297, 297, 297, + 297, 298, 298, 298 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ @@ -1562,26 +1572,26 @@ static const yytype_int8 yyr2[] = 2, 1, 5, 0, 2, 0, 1, 3, 5, 4, 6, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 2, 3, 2, 3, 3, 4, 4, 3, 3, - 4, 4, 5, 6, 7, 9, 4, 5, 2, 2, - 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, - 1, 3, 3, 5, 3, 1, 1, 1, 1, 1, - 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 0, 12, 14, 7, 9, 4, - 6, 4, 6, 1, 1, 1, 1, 1, 3, 3, - 3, 3, 3, 3, 4, 5, 4, 3, 2, 2, - 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 6, 3, 4, 3, 3, 5, 5, - 6, 4, 6, 3, 5, 4, 5, 6, 4, 5, - 5, 6, 1, 3, 1, 3, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, - 1, 1, 2, 2, 3, 1, 1, 2, 2, 3, - 2, 2, 3, 2, 3, 3, 1, 1, 2, 2, - 3, 2, 2, 3, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 3, 2, 2, - 1, 1, 2, 0, 3, 0, 1, 0, 2, 0, - 4, 0, 4, 0, 1, 3, 1, 3, 3, 3, - 6, 7, 3 + 4, 4, 5, 6, 7, 9, 4, 5, 7, 2, + 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 3, 1, 3, 3, 5, 3, 1, 1, 1, 1, + 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 0, 12, 14, 7, 9, + 4, 6, 4, 6, 1, 1, 1, 1, 1, 3, + 3, 3, 3, 3, 3, 4, 5, 4, 3, 2, + 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 6, 3, 4, 3, 3, 5, + 5, 6, 4, 6, 3, 5, 4, 5, 6, 4, + 5, 5, 6, 1, 3, 1, 3, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, + 1, 1, 1, 2, 2, 3, 1, 1, 2, 2, + 3, 2, 2, 3, 2, 3, 3, 1, 1, 2, + 2, 3, 2, 2, 3, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 1, 3, 2, + 2, 1, 1, 2, 0, 3, 0, 1, 0, 2, + 0, 4, 0, 4, 0, 1, 3, 1, 3, 3, + 3, 6, 7, 3 }; @@ -2149,7 +2159,7 @@ yydestruct (const char *yymsg, { free(((*yyvaluep).str_value)); } -#line 2153 "parser.cpp" +#line 2163 "parser.cpp" break; case YYSYMBOL_STRING: /* STRING */ @@ -2157,7 +2167,7 @@ yydestruct (const char *yymsg, { free(((*yyvaluep).str_value)); } -#line 2161 "parser.cpp" +#line 2171 "parser.cpp" break; case YYSYMBOL_statement_list: /* statement_list */ @@ -2171,7 +2181,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).stmt_array)); } } -#line 2175 "parser.cpp" +#line 2185 "parser.cpp" break; case YYSYMBOL_table_element_array: /* table_element_array */ @@ -2185,7 +2195,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).table_element_array_t)); } } -#line 2189 "parser.cpp" +#line 2199 "parser.cpp" break; case YYSYMBOL_column_constraints: /* column_constraints */ @@ -2196,7 +2206,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).column_constraints_t)); } } -#line 2200 "parser.cpp" +#line 2210 "parser.cpp" break; case YYSYMBOL_default_expr: /* default_expr */ @@ -2204,7 +2214,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2208 "parser.cpp" +#line 2218 "parser.cpp" break; case YYSYMBOL_identifier_array: /* identifier_array */ @@ -2213,7 +2223,7 @@ yydestruct (const char *yymsg, fprintf(stderr, "destroy identifier array\n"); delete (((*yyvaluep).identifier_array_t)); } -#line 2217 "parser.cpp" +#line 2227 "parser.cpp" break; case YYSYMBOL_optional_identifier_array: /* optional_identifier_array */ @@ -2222,7 +2232,7 @@ yydestruct (const char *yymsg, fprintf(stderr, "destroy identifier array\n"); delete (((*yyvaluep).identifier_array_t)); } -#line 2226 "parser.cpp" +#line 2236 "parser.cpp" break; case YYSYMBOL_update_expr_array: /* update_expr_array */ @@ -2236,7 +2246,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).update_expr_array_t)); } } -#line 2240 "parser.cpp" +#line 2250 "parser.cpp" break; case YYSYMBOL_update_expr: /* update_expr */ @@ -2247,7 +2257,7 @@ yydestruct (const char *yymsg, delete ((*yyvaluep).update_expr_t); } } -#line 2251 "parser.cpp" +#line 2261 "parser.cpp" break; case YYSYMBOL_select_statement: /* select_statement */ @@ -2257,7 +2267,7 @@ yydestruct (const char *yymsg, delete ((*yyvaluep).select_stmt); } } -#line 2261 "parser.cpp" +#line 2271 "parser.cpp" break; case YYSYMBOL_select_with_paren: /* select_with_paren */ @@ -2267,7 +2277,7 @@ yydestruct (const char *yymsg, delete ((*yyvaluep).select_stmt); } } -#line 2271 "parser.cpp" +#line 2281 "parser.cpp" break; case YYSYMBOL_select_without_paren: /* select_without_paren */ @@ -2277,7 +2287,7 @@ yydestruct (const char *yymsg, delete ((*yyvaluep).select_stmt); } } -#line 2281 "parser.cpp" +#line 2291 "parser.cpp" break; case YYSYMBOL_select_clause_with_modifier: /* select_clause_with_modifier */ @@ -2287,7 +2297,7 @@ yydestruct (const char *yymsg, delete ((*yyvaluep).select_stmt); } } -#line 2291 "parser.cpp" +#line 2301 "parser.cpp" break; case YYSYMBOL_select_clause_without_modifier_paren: /* select_clause_without_modifier_paren */ @@ -2297,7 +2307,7 @@ yydestruct (const char *yymsg, delete ((*yyvaluep).select_stmt); } } -#line 2301 "parser.cpp" +#line 2311 "parser.cpp" break; case YYSYMBOL_select_clause_without_modifier: /* select_clause_without_modifier */ @@ -2307,7 +2317,7 @@ yydestruct (const char *yymsg, delete ((*yyvaluep).select_stmt); } } -#line 2311 "parser.cpp" +#line 2321 "parser.cpp" break; case YYSYMBOL_order_by_clause: /* order_by_clause */ @@ -2321,7 +2331,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).order_by_expr_list_t)); } } -#line 2325 "parser.cpp" +#line 2335 "parser.cpp" break; case YYSYMBOL_order_by_expr_list: /* order_by_expr_list */ @@ -2335,7 +2345,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).order_by_expr_list_t)); } } -#line 2339 "parser.cpp" +#line 2349 "parser.cpp" break; case YYSYMBOL_order_by_expr: /* order_by_expr */ @@ -2345,7 +2355,7 @@ yydestruct (const char *yymsg, delete ((*yyvaluep).order_by_expr_t)->expr_; delete ((*yyvaluep).order_by_expr_t); } -#line 2349 "parser.cpp" +#line 2359 "parser.cpp" break; case YYSYMBOL_limit_expr: /* limit_expr */ @@ -2353,7 +2363,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2357 "parser.cpp" +#line 2367 "parser.cpp" break; case YYSYMBOL_offset_expr: /* offset_expr */ @@ -2361,7 +2371,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2365 "parser.cpp" +#line 2375 "parser.cpp" break; case YYSYMBOL_from_clause: /* from_clause */ @@ -2370,7 +2380,7 @@ yydestruct (const char *yymsg, fprintf(stderr, "destroy table reference\n"); delete (((*yyvaluep).table_reference_t)); } -#line 2374 "parser.cpp" +#line 2384 "parser.cpp" break; case YYSYMBOL_search_clause: /* search_clause */ @@ -2378,7 +2388,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2382 "parser.cpp" +#line 2392 "parser.cpp" break; case YYSYMBOL_where_clause: /* where_clause */ @@ -2386,7 +2396,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2390 "parser.cpp" +#line 2400 "parser.cpp" break; case YYSYMBOL_having_clause: /* having_clause */ @@ -2394,7 +2404,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2398 "parser.cpp" +#line 2408 "parser.cpp" break; case YYSYMBOL_group_by_clause: /* group_by_clause */ @@ -2408,7 +2418,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).expr_array_t)); } } -#line 2412 "parser.cpp" +#line 2422 "parser.cpp" break; case YYSYMBOL_table_reference: /* table_reference */ @@ -2417,7 +2427,7 @@ yydestruct (const char *yymsg, fprintf(stderr, "destroy table reference\n"); delete (((*yyvaluep).table_reference_t)); } -#line 2421 "parser.cpp" +#line 2431 "parser.cpp" break; case YYSYMBOL_table_reference_unit: /* table_reference_unit */ @@ -2426,7 +2436,7 @@ yydestruct (const char *yymsg, fprintf(stderr, "destroy table reference\n"); delete (((*yyvaluep).table_reference_t)); } -#line 2430 "parser.cpp" +#line 2440 "parser.cpp" break; case YYSYMBOL_table_reference_name: /* table_reference_name */ @@ -2435,7 +2445,7 @@ yydestruct (const char *yymsg, fprintf(stderr, "destroy table reference\n"); delete (((*yyvaluep).table_reference_t)); } -#line 2439 "parser.cpp" +#line 2449 "parser.cpp" break; case YYSYMBOL_table_name: /* table_name */ @@ -2448,7 +2458,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).table_name_t)); } } -#line 2452 "parser.cpp" +#line 2462 "parser.cpp" break; case YYSYMBOL_table_alias: /* table_alias */ @@ -2457,7 +2467,7 @@ yydestruct (const char *yymsg, fprintf(stderr, "destroy table alias\n"); delete (((*yyvaluep).table_alias_t)); } -#line 2461 "parser.cpp" +#line 2471 "parser.cpp" break; case YYSYMBOL_with_clause: /* with_clause */ @@ -2471,7 +2481,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).with_expr_list_t)); } } -#line 2475 "parser.cpp" +#line 2485 "parser.cpp" break; case YYSYMBOL_with_expr_list: /* with_expr_list */ @@ -2485,7 +2495,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).with_expr_list_t)); } } -#line 2489 "parser.cpp" +#line 2499 "parser.cpp" break; case YYSYMBOL_with_expr: /* with_expr */ @@ -2495,7 +2505,7 @@ yydestruct (const char *yymsg, delete ((*yyvaluep).with_expr_t)->select_; delete ((*yyvaluep).with_expr_t); } -#line 2499 "parser.cpp" +#line 2509 "parser.cpp" break; case YYSYMBOL_join_clause: /* join_clause */ @@ -2504,7 +2514,7 @@ yydestruct (const char *yymsg, fprintf(stderr, "destroy table reference\n"); delete (((*yyvaluep).table_reference_t)); } -#line 2508 "parser.cpp" +#line 2518 "parser.cpp" break; case YYSYMBOL_expr_array: /* expr_array */ @@ -2518,7 +2528,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).expr_array_t)); } } -#line 2522 "parser.cpp" +#line 2532 "parser.cpp" break; case YYSYMBOL_expr_array_list: /* expr_array_list */ @@ -2535,7 +2545,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).expr_array_list_t)); } } -#line 2539 "parser.cpp" +#line 2549 "parser.cpp" break; case YYSYMBOL_expr_alias: /* expr_alias */ @@ -2543,7 +2553,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2547 "parser.cpp" +#line 2557 "parser.cpp" break; case YYSYMBOL_expr: /* expr */ @@ -2551,7 +2561,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2555 "parser.cpp" +#line 2565 "parser.cpp" break; case YYSYMBOL_operand: /* operand */ @@ -2559,7 +2569,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2563 "parser.cpp" +#line 2573 "parser.cpp" break; case YYSYMBOL_extra_match_tensor_option: /* extra_match_tensor_option */ @@ -2567,7 +2577,7 @@ yydestruct (const char *yymsg, { free(((*yyvaluep).str_value)); } -#line 2571 "parser.cpp" +#line 2581 "parser.cpp" break; case YYSYMBOL_match_tensor_expr: /* match_tensor_expr */ @@ -2575,7 +2585,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2579 "parser.cpp" +#line 2589 "parser.cpp" break; case YYSYMBOL_match_vector_expr: /* match_vector_expr */ @@ -2583,7 +2593,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2587 "parser.cpp" +#line 2597 "parser.cpp" break; case YYSYMBOL_match_text_expr: /* match_text_expr */ @@ -2591,7 +2601,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2595 "parser.cpp" +#line 2605 "parser.cpp" break; case YYSYMBOL_query_expr: /* query_expr */ @@ -2599,7 +2609,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2603 "parser.cpp" +#line 2613 "parser.cpp" break; case YYSYMBOL_fusion_expr: /* fusion_expr */ @@ -2607,7 +2617,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2611 "parser.cpp" +#line 2621 "parser.cpp" break; case YYSYMBOL_sub_search_array: /* sub_search_array */ @@ -2621,7 +2631,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).expr_array_t)); } } -#line 2625 "parser.cpp" +#line 2635 "parser.cpp" break; case YYSYMBOL_function_expr: /* function_expr */ @@ -2629,7 +2639,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2633 "parser.cpp" +#line 2643 "parser.cpp" break; case YYSYMBOL_conjunction_expr: /* conjunction_expr */ @@ -2637,7 +2647,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2641 "parser.cpp" +#line 2651 "parser.cpp" break; case YYSYMBOL_between_expr: /* between_expr */ @@ -2645,7 +2655,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2649 "parser.cpp" +#line 2659 "parser.cpp" break; case YYSYMBOL_in_expr: /* in_expr */ @@ -2653,7 +2663,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2657 "parser.cpp" +#line 2667 "parser.cpp" break; case YYSYMBOL_case_expr: /* case_expr */ @@ -2661,7 +2671,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2665 "parser.cpp" +#line 2675 "parser.cpp" break; case YYSYMBOL_case_check_array: /* case_check_array */ @@ -2674,7 +2684,7 @@ yydestruct (const char *yymsg, } } } -#line 2678 "parser.cpp" +#line 2688 "parser.cpp" break; case YYSYMBOL_cast_expr: /* cast_expr */ @@ -2682,7 +2692,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2686 "parser.cpp" +#line 2696 "parser.cpp" break; case YYSYMBOL_subquery_expr: /* subquery_expr */ @@ -2690,7 +2700,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2694 "parser.cpp" +#line 2704 "parser.cpp" break; case YYSYMBOL_column_expr: /* column_expr */ @@ -2698,7 +2708,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).expr_t)); } -#line 2702 "parser.cpp" +#line 2712 "parser.cpp" break; case YYSYMBOL_constant_expr: /* constant_expr */ @@ -2706,7 +2716,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2710 "parser.cpp" +#line 2720 "parser.cpp" break; case YYSYMBOL_common_array_expr: /* common_array_expr */ @@ -2714,7 +2724,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2718 "parser.cpp" +#line 2728 "parser.cpp" break; case YYSYMBOL_subarray_array_expr: /* subarray_array_expr */ @@ -2722,7 +2732,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2726 "parser.cpp" +#line 2736 "parser.cpp" break; case YYSYMBOL_unclosed_subarray_array_expr: /* unclosed_subarray_array_expr */ @@ -2730,7 +2740,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2734 "parser.cpp" +#line 2744 "parser.cpp" break; case YYSYMBOL_sparse_array_expr: /* sparse_array_expr */ @@ -2738,7 +2748,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2742 "parser.cpp" +#line 2752 "parser.cpp" break; case YYSYMBOL_long_sparse_array_expr: /* long_sparse_array_expr */ @@ -2746,7 +2756,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2750 "parser.cpp" +#line 2760 "parser.cpp" break; case YYSYMBOL_unclosed_long_sparse_array_expr: /* unclosed_long_sparse_array_expr */ @@ -2754,7 +2764,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2758 "parser.cpp" +#line 2768 "parser.cpp" break; case YYSYMBOL_double_sparse_array_expr: /* double_sparse_array_expr */ @@ -2762,7 +2772,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2766 "parser.cpp" +#line 2776 "parser.cpp" break; case YYSYMBOL_unclosed_double_sparse_array_expr: /* unclosed_double_sparse_array_expr */ @@ -2770,7 +2780,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2774 "parser.cpp" +#line 2784 "parser.cpp" break; case YYSYMBOL_empty_array_expr: /* empty_array_expr */ @@ -2778,7 +2788,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2782 "parser.cpp" +#line 2792 "parser.cpp" break; case YYSYMBOL_int_sparse_ele: /* int_sparse_ele */ @@ -2786,7 +2796,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).int_sparse_ele_t)); } -#line 2790 "parser.cpp" +#line 2800 "parser.cpp" break; case YYSYMBOL_float_sparse_ele: /* float_sparse_ele */ @@ -2794,7 +2804,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).float_sparse_ele_t)); } -#line 2798 "parser.cpp" +#line 2808 "parser.cpp" break; case YYSYMBOL_array_expr: /* array_expr */ @@ -2802,7 +2812,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2806 "parser.cpp" +#line 2816 "parser.cpp" break; case YYSYMBOL_long_array_expr: /* long_array_expr */ @@ -2810,7 +2820,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2814 "parser.cpp" +#line 2824 "parser.cpp" break; case YYSYMBOL_unclosed_long_array_expr: /* unclosed_long_array_expr */ @@ -2818,7 +2828,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2822 "parser.cpp" +#line 2832 "parser.cpp" break; case YYSYMBOL_double_array_expr: /* double_array_expr */ @@ -2826,7 +2836,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2830 "parser.cpp" +#line 2840 "parser.cpp" break; case YYSYMBOL_unclosed_double_array_expr: /* unclosed_double_array_expr */ @@ -2834,7 +2844,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2838 "parser.cpp" +#line 2848 "parser.cpp" break; case YYSYMBOL_interval_expr: /* interval_expr */ @@ -2842,7 +2852,7 @@ yydestruct (const char *yymsg, { delete (((*yyvaluep).const_expr_t)); } -#line 2846 "parser.cpp" +#line 2856 "parser.cpp" break; case YYSYMBOL_file_path: /* file_path */ @@ -2850,7 +2860,7 @@ yydestruct (const char *yymsg, { free(((*yyvaluep).str_value)); } -#line 2854 "parser.cpp" +#line 2864 "parser.cpp" break; case YYSYMBOL_if_not_exists_info: /* if_not_exists_info */ @@ -2861,7 +2871,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).if_not_exists_info_t)); } } -#line 2865 "parser.cpp" +#line 2875 "parser.cpp" break; case YYSYMBOL_with_index_param_list: /* with_index_param_list */ @@ -2875,7 +2885,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).with_index_param_list_t)); } } -#line 2879 "parser.cpp" +#line 2889 "parser.cpp" break; case YYSYMBOL_optional_table_properties_list: /* optional_table_properties_list */ @@ -2889,7 +2899,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).with_index_param_list_t)); } } -#line 2893 "parser.cpp" +#line 2903 "parser.cpp" break; case YYSYMBOL_index_info_list: /* index_info_list */ @@ -2903,7 +2913,7 @@ yydestruct (const char *yymsg, delete (((*yyvaluep).index_info_list_t)); } } -#line 2907 "parser.cpp" +#line 2917 "parser.cpp" break; default: @@ -3011,7 +3021,7 @@ YYLTYPE yylloc = yyloc_default; yylloc.string_length = 0; } -#line 3015 "parser.cpp" +#line 3025 "parser.cpp" yylsp[0] = yylloc; goto yysetstate; @@ -3226,7 +3236,7 @@ YYLTYPE yylloc = yyloc_default; { result->statements_ptr_ = (yyvsp[-1].stmt_array); } -#line 3230 "parser.cpp" +#line 3240 "parser.cpp" break; case 3: /* statement_list: statement */ @@ -3237,7 +3247,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.stmt_array) = new std::vector(); (yyval.stmt_array)->push_back((yyvsp[0].base_stmt)); } -#line 3241 "parser.cpp" +#line 3251 "parser.cpp" break; case 4: /* statement_list: statement_list ';' statement */ @@ -3248,157 +3258,157 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-2].stmt_array)->push_back((yyvsp[0].base_stmt)); (yyval.stmt_array) = (yyvsp[-2].stmt_array); } -#line 3252 "parser.cpp" +#line 3262 "parser.cpp" break; case 5: /* statement: create_statement */ #line 509 "parser.y" { (yyval.base_stmt) = (yyvsp[0].create_stmt); } -#line 3258 "parser.cpp" +#line 3268 "parser.cpp" break; case 6: /* statement: drop_statement */ #line 510 "parser.y" { (yyval.base_stmt) = (yyvsp[0].drop_stmt); } -#line 3264 "parser.cpp" +#line 3274 "parser.cpp" break; case 7: /* statement: copy_statement */ #line 511 "parser.y" { (yyval.base_stmt) = (yyvsp[0].copy_stmt); } -#line 3270 "parser.cpp" +#line 3280 "parser.cpp" break; case 8: /* statement: show_statement */ #line 512 "parser.y" { (yyval.base_stmt) = (yyvsp[0].show_stmt); } -#line 3276 "parser.cpp" +#line 3286 "parser.cpp" break; case 9: /* statement: select_statement */ #line 513 "parser.y" { (yyval.base_stmt) = (yyvsp[0].select_stmt); } -#line 3282 "parser.cpp" +#line 3292 "parser.cpp" break; case 10: /* statement: delete_statement */ #line 514 "parser.y" { (yyval.base_stmt) = (yyvsp[0].delete_stmt); } -#line 3288 "parser.cpp" +#line 3298 "parser.cpp" break; case 11: /* statement: update_statement */ #line 515 "parser.y" { (yyval.base_stmt) = (yyvsp[0].update_stmt); } -#line 3294 "parser.cpp" +#line 3304 "parser.cpp" break; case 12: /* statement: insert_statement */ #line 516 "parser.y" { (yyval.base_stmt) = (yyvsp[0].insert_stmt); } -#line 3300 "parser.cpp" +#line 3310 "parser.cpp" break; case 13: /* statement: explain_statement */ #line 517 "parser.y" { (yyval.base_stmt) = (yyvsp[0].explain_stmt); } -#line 3306 "parser.cpp" +#line 3316 "parser.cpp" break; case 14: /* statement: flush_statement */ #line 518 "parser.y" { (yyval.base_stmt) = (yyvsp[0].flush_stmt); } -#line 3312 "parser.cpp" +#line 3322 "parser.cpp" break; case 15: /* statement: optimize_statement */ #line 519 "parser.y" { (yyval.base_stmt) = (yyvsp[0].optimize_stmt); } -#line 3318 "parser.cpp" +#line 3328 "parser.cpp" break; case 16: /* statement: command_statement */ #line 520 "parser.y" { (yyval.base_stmt) = (yyvsp[0].command_stmt); } -#line 3324 "parser.cpp" +#line 3334 "parser.cpp" break; case 17: /* statement: compact_statement */ #line 521 "parser.y" { (yyval.base_stmt) = (yyvsp[0].compact_stmt); } -#line 3330 "parser.cpp" +#line 3340 "parser.cpp" break; case 18: /* explainable_statement: create_statement */ #line 523 "parser.y" { (yyval.base_stmt) = (yyvsp[0].create_stmt); } -#line 3336 "parser.cpp" +#line 3346 "parser.cpp" break; case 19: /* explainable_statement: drop_statement */ #line 524 "parser.y" { (yyval.base_stmt) = (yyvsp[0].drop_stmt); } -#line 3342 "parser.cpp" +#line 3352 "parser.cpp" break; case 20: /* explainable_statement: copy_statement */ #line 525 "parser.y" { (yyval.base_stmt) = (yyvsp[0].copy_stmt); } -#line 3348 "parser.cpp" +#line 3358 "parser.cpp" break; case 21: /* explainable_statement: show_statement */ #line 526 "parser.y" { (yyval.base_stmt) = (yyvsp[0].show_stmt); } -#line 3354 "parser.cpp" +#line 3364 "parser.cpp" break; case 22: /* explainable_statement: select_statement */ #line 527 "parser.y" { (yyval.base_stmt) = (yyvsp[0].select_stmt); } -#line 3360 "parser.cpp" +#line 3370 "parser.cpp" break; case 23: /* explainable_statement: delete_statement */ #line 528 "parser.y" { (yyval.base_stmt) = (yyvsp[0].delete_stmt); } -#line 3366 "parser.cpp" +#line 3376 "parser.cpp" break; case 24: /* explainable_statement: update_statement */ #line 529 "parser.y" { (yyval.base_stmt) = (yyvsp[0].update_stmt); } -#line 3372 "parser.cpp" +#line 3382 "parser.cpp" break; case 25: /* explainable_statement: insert_statement */ #line 530 "parser.y" { (yyval.base_stmt) = (yyvsp[0].insert_stmt); } -#line 3378 "parser.cpp" +#line 3388 "parser.cpp" break; case 26: /* explainable_statement: flush_statement */ #line 531 "parser.y" { (yyval.base_stmt) = (yyvsp[0].flush_stmt); } -#line 3384 "parser.cpp" +#line 3394 "parser.cpp" break; case 27: /* explainable_statement: optimize_statement */ #line 532 "parser.y" { (yyval.base_stmt) = (yyvsp[0].optimize_stmt); } -#line 3390 "parser.cpp" +#line 3400 "parser.cpp" break; case 28: /* explainable_statement: command_statement */ #line 533 "parser.y" { (yyval.base_stmt) = (yyvsp[0].command_stmt); } -#line 3396 "parser.cpp" +#line 3406 "parser.cpp" break; case 29: /* explainable_statement: compact_statement */ #line 534 "parser.y" { (yyval.base_stmt) = (yyvsp[0].compact_stmt); } -#line 3402 "parser.cpp" +#line 3412 "parser.cpp" break; case 30: /* create_statement: CREATE DATABASE if_not_exists IDENTIFIER */ @@ -3418,7 +3428,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.create_stmt)->create_info_ = create_schema_info; (yyval.create_stmt)->create_info_->conflict_type_ = (yyvsp[-1].bool_value) ? infinity::ConflictType::kIgnore : infinity::ConflictType::kError; } -#line 3422 "parser.cpp" +#line 3432 "parser.cpp" break; case 31: /* create_statement: CREATE COLLECTION if_not_exists table_name */ @@ -3436,7 +3446,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.create_stmt)->create_info_->conflict_type_ = (yyvsp[-1].bool_value) ? infinity::ConflictType::kIgnore : infinity::ConflictType::kError; delete (yyvsp[0].table_name_t); } -#line 3440 "parser.cpp" +#line 3450 "parser.cpp" break; case 32: /* create_statement: CREATE TABLE if_not_exists table_name '(' table_element_array ')' optional_table_properties_list */ @@ -3469,7 +3479,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.create_stmt)->create_info_ = create_table_info; (yyval.create_stmt)->create_info_->conflict_type_ = (yyvsp[-5].bool_value) ? infinity::ConflictType::kIgnore : infinity::ConflictType::kError; } -#line 3473 "parser.cpp" +#line 3483 "parser.cpp" break; case 33: /* create_statement: CREATE TABLE if_not_exists table_name AS select_statement */ @@ -3489,7 +3499,7 @@ YYLTYPE yylloc = yyloc_default; create_table_info->select_ = (yyvsp[0].select_stmt); (yyval.create_stmt)->create_info_ = create_table_info; } -#line 3493 "parser.cpp" +#line 3503 "parser.cpp" break; case 34: /* create_statement: CREATE VIEW if_not_exists table_name optional_identifier_array AS select_statement */ @@ -3510,7 +3520,7 @@ YYLTYPE yylloc = yyloc_default; create_view_info->conflict_type_ = (yyvsp[-4].bool_value) ? infinity::ConflictType::kIgnore : infinity::ConflictType::kError; (yyval.create_stmt)->create_info_ = create_view_info; } -#line 3514 "parser.cpp" +#line 3524 "parser.cpp" break; case 35: /* create_statement: CREATE INDEX if_not_exists_info ON table_name index_info_list */ @@ -3543,7 +3553,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.create_stmt) = new infinity::CreateStatement(); (yyval.create_stmt)->create_info_ = create_index_info; } -#line 3547 "parser.cpp" +#line 3557 "parser.cpp" break; case 36: /* table_element_array: table_element */ @@ -3552,7 +3562,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.table_element_array_t) = new std::vector(); (yyval.table_element_array_t)->push_back((yyvsp[0].table_element_t)); } -#line 3556 "parser.cpp" +#line 3566 "parser.cpp" break; case 37: /* table_element_array: table_element_array ',' table_element */ @@ -3561,7 +3571,7 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-2].table_element_array_t)->push_back((yyvsp[0].table_element_t)); (yyval.table_element_array_t) = (yyvsp[-2].table_element_array_t); } -#line 3565 "parser.cpp" +#line 3575 "parser.cpp" break; case 38: /* table_element: table_column */ @@ -3569,7 +3579,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.table_element_t) = (yyvsp[0].table_column_t); } -#line 3573 "parser.cpp" +#line 3583 "parser.cpp" break; case 39: /* table_element: table_constraint */ @@ -3577,7 +3587,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.table_element_t) = (yyvsp[0].table_constraint_t); } -#line 3581 "parser.cpp" +#line 3591 "parser.cpp" break; case 40: /* table_column: IDENTIFIER column_type default_expr */ @@ -3630,7 +3640,7 @@ YYLTYPE yylloc = yyloc_default; } */ } -#line 3634 "parser.cpp" +#line 3644 "parser.cpp" break; case 41: /* table_column: IDENTIFIER column_type column_constraints default_expr */ @@ -3669,391 +3679,391 @@ YYLTYPE yylloc = yyloc_default; } */ } -#line 3673 "parser.cpp" +#line 3683 "parser.cpp" break; case 42: /* column_type: BOOLEAN */ #line 769 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kBoolean, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3679 "parser.cpp" +#line 3689 "parser.cpp" break; case 43: /* column_type: TINYINT */ #line 770 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTinyInt, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3685 "parser.cpp" +#line 3695 "parser.cpp" break; case 44: /* column_type: SMALLINT */ #line 771 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kSmallInt, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3691 "parser.cpp" +#line 3701 "parser.cpp" break; case 45: /* column_type: INTEGER */ #line 772 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kInteger, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3697 "parser.cpp" +#line 3707 "parser.cpp" break; case 46: /* column_type: INT */ #line 773 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kInteger, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3703 "parser.cpp" +#line 3713 "parser.cpp" break; case 47: /* column_type: BIGINT */ #line 774 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kBigInt, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3709 "parser.cpp" +#line 3719 "parser.cpp" break; case 48: /* column_type: HUGEINT */ #line 775 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kHugeInt, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3715 "parser.cpp" +#line 3725 "parser.cpp" break; case 49: /* column_type: FLOAT */ #line 776 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kFloat, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3721 "parser.cpp" +#line 3731 "parser.cpp" break; case 50: /* column_type: REAL */ #line 777 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kFloat, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3727 "parser.cpp" +#line 3737 "parser.cpp" break; case 51: /* column_type: DOUBLE */ #line 778 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kDouble, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3733 "parser.cpp" +#line 3743 "parser.cpp" break; case 52: /* column_type: DATE */ #line 779 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kDate, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3739 "parser.cpp" +#line 3749 "parser.cpp" break; case 53: /* column_type: TIME */ #line 780 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTime, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3745 "parser.cpp" +#line 3755 "parser.cpp" break; case 54: /* column_type: DATETIME */ #line 781 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kDateTime, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3751 "parser.cpp" +#line 3761 "parser.cpp" break; case 55: /* column_type: TIMESTAMP */ #line 782 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTimestamp, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3757 "parser.cpp" +#line 3767 "parser.cpp" break; case 56: /* column_type: UUID */ #line 783 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kUuid, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3763 "parser.cpp" +#line 3773 "parser.cpp" break; case 57: /* column_type: POINT */ #line 784 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kPoint, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3769 "parser.cpp" +#line 3779 "parser.cpp" break; case 58: /* column_type: LINE */ #line 785 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kLine, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3775 "parser.cpp" +#line 3785 "parser.cpp" break; case 59: /* column_type: LSEG */ #line 786 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kLineSeg, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3781 "parser.cpp" +#line 3791 "parser.cpp" break; case 60: /* column_type: BOX */ #line 787 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kBox, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3787 "parser.cpp" +#line 3797 "parser.cpp" break; case 61: /* column_type: CIRCLE */ #line 790 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kCircle, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3793 "parser.cpp" +#line 3803 "parser.cpp" break; case 62: /* column_type: VARCHAR */ #line 792 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kVarchar, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3799 "parser.cpp" +#line 3809 "parser.cpp" break; case 63: /* column_type: DECIMAL '(' LONG_VALUE ',' LONG_VALUE ')' */ #line 793 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kDecimal, 0, (yyvsp[-3].long_value), (yyvsp[-1].long_value), infinity::EmbeddingDataType::kElemInvalid}; } -#line 3805 "parser.cpp" +#line 3815 "parser.cpp" break; case 64: /* column_type: DECIMAL '(' LONG_VALUE ')' */ #line 794 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kDecimal, 0, (yyvsp[-1].long_value), 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3811 "parser.cpp" +#line 3821 "parser.cpp" break; case 65: /* column_type: DECIMAL */ #line 795 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kDecimal, 0, 0, 0, infinity::EmbeddingDataType::kElemInvalid}; } -#line 3817 "parser.cpp" +#line 3827 "parser.cpp" break; case 66: /* column_type: EMBEDDING '(' BIT ',' LONG_VALUE ')' */ #line 798 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemBit}; } -#line 3823 "parser.cpp" +#line 3833 "parser.cpp" break; case 67: /* column_type: EMBEDDING '(' TINYINT ',' LONG_VALUE ')' */ #line 799 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt8}; } -#line 3829 "parser.cpp" +#line 3839 "parser.cpp" break; case 68: /* column_type: EMBEDDING '(' SMALLINT ',' LONG_VALUE ')' */ #line 800 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt16}; } -#line 3835 "parser.cpp" +#line 3845 "parser.cpp" break; case 69: /* column_type: EMBEDDING '(' INTEGER ',' LONG_VALUE ')' */ #line 801 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt32}; } -#line 3841 "parser.cpp" +#line 3851 "parser.cpp" break; case 70: /* column_type: EMBEDDING '(' INT ',' LONG_VALUE ')' */ #line 802 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt32}; } -#line 3847 "parser.cpp" +#line 3857 "parser.cpp" break; case 71: /* column_type: EMBEDDING '(' BIGINT ',' LONG_VALUE ')' */ #line 803 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt64}; } -#line 3853 "parser.cpp" +#line 3863 "parser.cpp" break; case 72: /* column_type: EMBEDDING '(' FLOAT ',' LONG_VALUE ')' */ #line 804 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemFloat}; } -#line 3859 "parser.cpp" +#line 3869 "parser.cpp" break; case 73: /* column_type: EMBEDDING '(' DOUBLE ',' LONG_VALUE ')' */ #line 805 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemDouble}; } -#line 3865 "parser.cpp" +#line 3875 "parser.cpp" break; case 74: /* column_type: TENSOR '(' BIT ',' LONG_VALUE ')' */ #line 806 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensor, (yyvsp[-1].long_value), 0, 0, infinity::kElemBit}; } -#line 3871 "parser.cpp" +#line 3881 "parser.cpp" break; case 75: /* column_type: TENSOR '(' TINYINT ',' LONG_VALUE ')' */ #line 807 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensor, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt8}; } -#line 3877 "parser.cpp" +#line 3887 "parser.cpp" break; case 76: /* column_type: TENSOR '(' SMALLINT ',' LONG_VALUE ')' */ #line 808 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensor, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt16}; } -#line 3883 "parser.cpp" +#line 3893 "parser.cpp" break; case 77: /* column_type: TENSOR '(' INTEGER ',' LONG_VALUE ')' */ #line 809 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensor, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt32}; } -#line 3889 "parser.cpp" +#line 3899 "parser.cpp" break; case 78: /* column_type: TENSOR '(' INT ',' LONG_VALUE ')' */ #line 810 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensor, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt32}; } -#line 3895 "parser.cpp" +#line 3905 "parser.cpp" break; case 79: /* column_type: TENSOR '(' BIGINT ',' LONG_VALUE ')' */ #line 811 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensor, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt64}; } -#line 3901 "parser.cpp" +#line 3911 "parser.cpp" break; case 80: /* column_type: TENSOR '(' FLOAT ',' LONG_VALUE ')' */ #line 812 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensor, (yyvsp[-1].long_value), 0, 0, infinity::kElemFloat}; } -#line 3907 "parser.cpp" +#line 3917 "parser.cpp" break; case 81: /* column_type: TENSOR '(' DOUBLE ',' LONG_VALUE ')' */ #line 813 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensor, (yyvsp[-1].long_value), 0, 0, infinity::kElemDouble}; } -#line 3913 "parser.cpp" +#line 3923 "parser.cpp" break; case 82: /* column_type: TENSORARRAY '(' BIT ',' LONG_VALUE ')' */ #line 814 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensorArray, (yyvsp[-1].long_value), 0, 0, infinity::kElemBit}; } -#line 3919 "parser.cpp" +#line 3929 "parser.cpp" break; case 83: /* column_type: TENSORARRAY '(' TINYINT ',' LONG_VALUE ')' */ #line 815 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensorArray, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt8}; } -#line 3925 "parser.cpp" +#line 3935 "parser.cpp" break; case 84: /* column_type: TENSORARRAY '(' SMALLINT ',' LONG_VALUE ')' */ #line 816 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensorArray, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt16}; } -#line 3931 "parser.cpp" +#line 3941 "parser.cpp" break; case 85: /* column_type: TENSORARRAY '(' INTEGER ',' LONG_VALUE ')' */ #line 817 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensorArray, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt32}; } -#line 3937 "parser.cpp" +#line 3947 "parser.cpp" break; case 86: /* column_type: TENSORARRAY '(' INT ',' LONG_VALUE ')' */ #line 818 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensorArray, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt32}; } -#line 3943 "parser.cpp" +#line 3953 "parser.cpp" break; case 87: /* column_type: TENSORARRAY '(' BIGINT ',' LONG_VALUE ')' */ #line 819 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensorArray, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt64}; } -#line 3949 "parser.cpp" +#line 3959 "parser.cpp" break; case 88: /* column_type: TENSORARRAY '(' FLOAT ',' LONG_VALUE ')' */ #line 820 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensorArray, (yyvsp[-1].long_value), 0, 0, infinity::kElemFloat}; } -#line 3955 "parser.cpp" +#line 3965 "parser.cpp" break; case 89: /* column_type: TENSORARRAY '(' DOUBLE ',' LONG_VALUE ')' */ #line 821 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kTensorArray, (yyvsp[-1].long_value), 0, 0, infinity::kElemDouble}; } -#line 3961 "parser.cpp" +#line 3971 "parser.cpp" break; case 90: /* column_type: VECTOR '(' BIT ',' LONG_VALUE ')' */ #line 822 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemBit}; } -#line 3967 "parser.cpp" +#line 3977 "parser.cpp" break; case 91: /* column_type: VECTOR '(' TINYINT ',' LONG_VALUE ')' */ #line 823 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt8}; } -#line 3973 "parser.cpp" +#line 3983 "parser.cpp" break; case 92: /* column_type: VECTOR '(' SMALLINT ',' LONG_VALUE ')' */ #line 824 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt16}; } -#line 3979 "parser.cpp" +#line 3989 "parser.cpp" break; case 93: /* column_type: VECTOR '(' INTEGER ',' LONG_VALUE ')' */ #line 825 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt32}; } -#line 3985 "parser.cpp" +#line 3995 "parser.cpp" break; case 94: /* column_type: VECTOR '(' INT ',' LONG_VALUE ')' */ #line 826 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt32}; } -#line 3991 "parser.cpp" +#line 4001 "parser.cpp" break; case 95: /* column_type: VECTOR '(' BIGINT ',' LONG_VALUE ')' */ #line 827 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt64}; } -#line 3997 "parser.cpp" +#line 4007 "parser.cpp" break; case 96: /* column_type: VECTOR '(' FLOAT ',' LONG_VALUE ')' */ #line 828 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemFloat}; } -#line 4003 "parser.cpp" +#line 4013 "parser.cpp" break; case 97: /* column_type: VECTOR '(' DOUBLE ',' LONG_VALUE ')' */ #line 829 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kEmbedding, (yyvsp[-1].long_value), 0, 0, infinity::kElemDouble}; } -#line 4009 "parser.cpp" +#line 4019 "parser.cpp" break; case 98: /* column_type: SPARSE '(' BIT ',' LONG_VALUE ')' */ #line 830 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kSparse, (yyvsp[-1].long_value), 0, 0, infinity::kElemBit}; } -#line 4015 "parser.cpp" +#line 4025 "parser.cpp" break; case 99: /* column_type: SPARSE '(' TINYINT ',' LONG_VALUE ')' */ #line 831 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kSparse, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt8}; } -#line 4021 "parser.cpp" +#line 4031 "parser.cpp" break; case 100: /* column_type: SPARSE '(' SMALLINT ',' LONG_VALUE ')' */ #line 832 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kSparse, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt16}; } -#line 4027 "parser.cpp" +#line 4037 "parser.cpp" break; case 101: /* column_type: SPARSE '(' INTEGER ',' LONG_VALUE ')' */ #line 833 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kSparse, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt32}; } -#line 4033 "parser.cpp" +#line 4043 "parser.cpp" break; case 102: /* column_type: SPARSE '(' INT ',' LONG_VALUE ')' */ #line 834 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kSparse, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt32}; } -#line 4039 "parser.cpp" +#line 4049 "parser.cpp" break; case 103: /* column_type: SPARSE '(' BIGINT ',' LONG_VALUE ')' */ #line 835 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kSparse, (yyvsp[-1].long_value), 0, 0, infinity::kElemInt64}; } -#line 4045 "parser.cpp" +#line 4055 "parser.cpp" break; case 104: /* column_type: SPARSE '(' FLOAT ',' LONG_VALUE ')' */ #line 836 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kSparse, (yyvsp[-1].long_value), 0, 0, infinity::kElemFloat}; } -#line 4051 "parser.cpp" +#line 4061 "parser.cpp" break; case 105: /* column_type: SPARSE '(' DOUBLE ',' LONG_VALUE ')' */ #line 837 "parser.y" { (yyval.column_type_t) = infinity::ColumnType{infinity::LogicalType::kSparse, (yyvsp[-1].long_value), 0, 0, infinity::kElemDouble}; } -#line 4057 "parser.cpp" +#line 4067 "parser.cpp" break; case 106: /* column_constraints: column_constraint */ @@ -4062,7 +4072,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.column_constraints_t) = new std::set(); (yyval.column_constraints_t)->insert((yyvsp[0].column_constraint_t)); } -#line 4066 "parser.cpp" +#line 4076 "parser.cpp" break; case 107: /* column_constraints: column_constraints column_constraint */ @@ -4076,7 +4086,7 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-1].column_constraints_t)->insert((yyvsp[0].column_constraint_t)); (yyval.column_constraints_t) = (yyvsp[-1].column_constraints_t); } -#line 4080 "parser.cpp" +#line 4090 "parser.cpp" break; case 108: /* column_constraint: PRIMARY KEY */ @@ -4084,7 +4094,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.column_constraint_t) = infinity::ConstraintType::kPrimaryKey; } -#line 4088 "parser.cpp" +#line 4098 "parser.cpp" break; case 109: /* column_constraint: UNIQUE */ @@ -4092,7 +4102,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.column_constraint_t) = infinity::ConstraintType::kUnique; } -#line 4096 "parser.cpp" +#line 4106 "parser.cpp" break; case 110: /* column_constraint: NULLABLE */ @@ -4100,7 +4110,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.column_constraint_t) = infinity::ConstraintType::kNull; } -#line 4104 "parser.cpp" +#line 4114 "parser.cpp" break; case 111: /* column_constraint: NOT NULLABLE */ @@ -4108,7 +4118,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.column_constraint_t) = infinity::ConstraintType::kNotNull; } -#line 4112 "parser.cpp" +#line 4122 "parser.cpp" break; case 112: /* default_expr: DEFAULT constant_expr */ @@ -4116,7 +4126,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.const_expr_t) = (yyvsp[0].const_expr_t); } -#line 4120 "parser.cpp" +#line 4130 "parser.cpp" break; case 113: /* default_expr: %empty */ @@ -4124,7 +4134,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.const_expr_t) = nullptr; } -#line 4128 "parser.cpp" +#line 4138 "parser.cpp" break; case 114: /* table_constraint: PRIMARY KEY '(' identifier_array ')' */ @@ -4134,7 +4144,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.table_constraint_t)->names_ptr_ = (yyvsp[-1].identifier_array_t); (yyval.table_constraint_t)->constraint_ = infinity::ConstraintType::kPrimaryKey; } -#line 4138 "parser.cpp" +#line 4148 "parser.cpp" break; case 115: /* table_constraint: UNIQUE '(' identifier_array ')' */ @@ -4144,7 +4154,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.table_constraint_t)->names_ptr_ = (yyvsp[-1].identifier_array_t); (yyval.table_constraint_t)->constraint_ = infinity::ConstraintType::kUnique; } -#line 4148 "parser.cpp" +#line 4158 "parser.cpp" break; case 116: /* identifier_array: IDENTIFIER */ @@ -4155,7 +4165,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.identifier_array_t)->emplace_back((yyvsp[0].str_value)); free((yyvsp[0].str_value)); } -#line 4159 "parser.cpp" +#line 4169 "parser.cpp" break; case 117: /* identifier_array: identifier_array ',' IDENTIFIER */ @@ -4166,7 +4176,7 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[0].str_value)); (yyval.identifier_array_t) = (yyvsp[-2].identifier_array_t); } -#line 4170 "parser.cpp" +#line 4180 "parser.cpp" break; case 118: /* delete_statement: DELETE FROM table_name where_clause */ @@ -4183,7 +4193,7 @@ YYLTYPE yylloc = yyloc_default; delete (yyvsp[-1].table_name_t); (yyval.delete_stmt)->where_expr_ = (yyvsp[0].expr_t); } -#line 4187 "parser.cpp" +#line 4197 "parser.cpp" break; case 119: /* insert_statement: INSERT INTO table_name optional_identifier_array VALUES expr_array_list */ @@ -4222,7 +4232,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.insert_stmt)->columns_ = (yyvsp[-2].identifier_array_t); (yyval.insert_stmt)->values_ = (yyvsp[0].expr_array_list_t); } -#line 4226 "parser.cpp" +#line 4236 "parser.cpp" break; case 120: /* insert_statement: INSERT INTO table_name optional_identifier_array select_without_paren */ @@ -4239,7 +4249,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.insert_stmt)->columns_ = (yyvsp[-1].identifier_array_t); (yyval.insert_stmt)->select_ = (yyvsp[0].select_stmt); } -#line 4243 "parser.cpp" +#line 4253 "parser.cpp" break; case 121: /* optional_identifier_array: '(' identifier_array ')' */ @@ -4247,7 +4257,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.identifier_array_t) = (yyvsp[-1].identifier_array_t); } -#line 4251 "parser.cpp" +#line 4261 "parser.cpp" break; case 122: /* optional_identifier_array: %empty */ @@ -4255,7 +4265,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.identifier_array_t) = nullptr; } -#line 4259 "parser.cpp" +#line 4269 "parser.cpp" break; case 123: /* explain_statement: EXPLAIN explain_type explainable_statement */ @@ -4265,7 +4275,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.explain_stmt)->type_ = (yyvsp[-1].explain_type_t); (yyval.explain_stmt)->statement_ = (yyvsp[0].base_stmt); } -#line 4269 "parser.cpp" +#line 4279 "parser.cpp" break; case 124: /* explain_type: ANALYZE */ @@ -4273,7 +4283,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.explain_type_t) = infinity::ExplainType::kAnalyze; } -#line 4277 "parser.cpp" +#line 4287 "parser.cpp" break; case 125: /* explain_type: AST */ @@ -4281,7 +4291,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.explain_type_t) = infinity::ExplainType::kAst; } -#line 4285 "parser.cpp" +#line 4295 "parser.cpp" break; case 126: /* explain_type: RAW */ @@ -4289,7 +4299,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.explain_type_t) = infinity::ExplainType::kUnOpt; } -#line 4293 "parser.cpp" +#line 4303 "parser.cpp" break; case 127: /* explain_type: LOGICAL */ @@ -4297,7 +4307,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.explain_type_t) = infinity::ExplainType::kOpt; } -#line 4301 "parser.cpp" +#line 4311 "parser.cpp" break; case 128: /* explain_type: PHYSICAL */ @@ -4305,7 +4315,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.explain_type_t) = infinity::ExplainType::kPhysical; } -#line 4309 "parser.cpp" +#line 4319 "parser.cpp" break; case 129: /* explain_type: PIPELINE */ @@ -4313,7 +4323,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.explain_type_t) = infinity::ExplainType::kPipeline; } -#line 4317 "parser.cpp" +#line 4327 "parser.cpp" break; case 130: /* explain_type: FRAGMENT */ @@ -4321,7 +4331,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.explain_type_t) = infinity::ExplainType::kFragment; } -#line 4325 "parser.cpp" +#line 4335 "parser.cpp" break; case 131: /* explain_type: %empty */ @@ -4329,7 +4339,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.explain_type_t) = infinity::ExplainType::kPhysical; } -#line 4333 "parser.cpp" +#line 4343 "parser.cpp" break; case 132: /* update_statement: UPDATE table_name SET update_expr_array where_clause */ @@ -4346,7 +4356,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.update_stmt)->where_expr_ = (yyvsp[0].expr_t); (yyval.update_stmt)->update_expr_array_ = (yyvsp[-1].update_expr_array_t); } -#line 4350 "parser.cpp" +#line 4360 "parser.cpp" break; case 133: /* update_expr_array: update_expr */ @@ -4355,7 +4365,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.update_expr_array_t) = new std::vector(); (yyval.update_expr_array_t)->emplace_back((yyvsp[0].update_expr_t)); } -#line 4359 "parser.cpp" +#line 4369 "parser.cpp" break; case 134: /* update_expr_array: update_expr_array ',' update_expr */ @@ -4364,7 +4374,7 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-2].update_expr_array_t)->emplace_back((yyvsp[0].update_expr_t)); (yyval.update_expr_array_t) = (yyvsp[-2].update_expr_array_t); } -#line 4368 "parser.cpp" +#line 4378 "parser.cpp" break; case 135: /* update_expr: IDENTIFIER '=' expr */ @@ -4376,7 +4386,7 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[-2].str_value)); (yyval.update_expr_t)->value = (yyvsp[0].expr_t); } -#line 4380 "parser.cpp" +#line 4390 "parser.cpp" break; case 136: /* drop_statement: DROP DATABASE if_exists IDENTIFIER */ @@ -4392,7 +4402,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.drop_stmt)->drop_info_ = drop_schema_info; (yyval.drop_stmt)->drop_info_->conflict_type_ = (yyvsp[-1].bool_value) ? infinity::ConflictType::kIgnore : infinity::ConflictType::kError; } -#line 4396 "parser.cpp" +#line 4406 "parser.cpp" break; case 137: /* drop_statement: DROP COLLECTION if_exists table_name */ @@ -4410,7 +4420,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.drop_stmt)->drop_info_->conflict_type_ = (yyvsp[-1].bool_value) ? infinity::ConflictType::kIgnore : infinity::ConflictType::kError; delete (yyvsp[0].table_name_t); } -#line 4414 "parser.cpp" +#line 4424 "parser.cpp" break; case 138: /* drop_statement: DROP TABLE if_exists table_name */ @@ -4428,7 +4438,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.drop_stmt)->drop_info_->conflict_type_ = (yyvsp[-1].bool_value) ? infinity::ConflictType::kIgnore : infinity::ConflictType::kError; delete (yyvsp[0].table_name_t); } -#line 4432 "parser.cpp" +#line 4442 "parser.cpp" break; case 139: /* drop_statement: DROP VIEW if_exists table_name */ @@ -4446,7 +4456,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.drop_stmt)->drop_info_->conflict_type_ = (yyvsp[-1].bool_value) ? infinity::ConflictType::kIgnore : infinity::ConflictType::kError; delete (yyvsp[0].table_name_t); } -#line 4450 "parser.cpp" +#line 4460 "parser.cpp" break; case 140: /* drop_statement: DROP INDEX if_exists IDENTIFIER ON table_name */ @@ -4469,7 +4479,7 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[0].table_name_t)->table_name_ptr_); delete (yyvsp[0].table_name_t); } -#line 4473 "parser.cpp" +#line 4483 "parser.cpp" break; case 141: /* copy_statement: COPY table_name TO file_path WITH '(' copy_option_list ')' */ @@ -4515,7 +4525,7 @@ YYLTYPE yylloc = yyloc_default; } delete (yyvsp[-1].copy_option_array); } -#line 4519 "parser.cpp" +#line 4529 "parser.cpp" break; case 142: /* copy_statement: COPY table_name FROM file_path WITH '(' copy_option_list ')' */ @@ -4561,7 +4571,7 @@ YYLTYPE yylloc = yyloc_default; } delete (yyvsp[-1].copy_option_array); } -#line 4565 "parser.cpp" +#line 4575 "parser.cpp" break; case 143: /* select_statement: select_without_paren */ @@ -4569,7 +4579,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.select_stmt) = (yyvsp[0].select_stmt); } -#line 4573 "parser.cpp" +#line 4583 "parser.cpp" break; case 144: /* select_statement: select_with_paren */ @@ -4577,7 +4587,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.select_stmt) = (yyvsp[0].select_stmt); } -#line 4581 "parser.cpp" +#line 4591 "parser.cpp" break; case 145: /* select_statement: select_statement set_operator select_clause_without_modifier_paren */ @@ -4591,7 +4601,7 @@ YYLTYPE yylloc = yyloc_default; node->nested_select_ = (yyvsp[0].select_stmt); (yyval.select_stmt) = (yyvsp[-2].select_stmt); } -#line 4595 "parser.cpp" +#line 4605 "parser.cpp" break; case 146: /* select_statement: select_statement set_operator select_clause_without_modifier */ @@ -4605,7 +4615,7 @@ YYLTYPE yylloc = yyloc_default; node->nested_select_ = (yyvsp[0].select_stmt); (yyval.select_stmt) = (yyvsp[-2].select_stmt); } -#line 4609 "parser.cpp" +#line 4619 "parser.cpp" break; case 147: /* select_with_paren: '(' select_without_paren ')' */ @@ -4613,7 +4623,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } -#line 4617 "parser.cpp" +#line 4627 "parser.cpp" break; case 148: /* select_with_paren: '(' select_with_paren ')' */ @@ -4621,7 +4631,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } -#line 4625 "parser.cpp" +#line 4635 "parser.cpp" break; case 149: /* select_without_paren: with_clause select_clause_with_modifier */ @@ -4630,7 +4640,7 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[0].select_stmt)->with_exprs_ = (yyvsp[-1].with_expr_list_t); (yyval.select_stmt) = (yyvsp[0].select_stmt); } -#line 4634 "parser.cpp" +#line 4644 "parser.cpp" break; case 150: /* select_clause_with_modifier: select_clause_without_modifier order_by_clause limit_expr offset_expr */ @@ -4656,7 +4666,7 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-3].select_stmt)->offset_expr_ = (yyvsp[0].expr_t); (yyval.select_stmt) = (yyvsp[-3].select_stmt); } -#line 4660 "parser.cpp" +#line 4670 "parser.cpp" break; case 151: /* select_clause_without_modifier_paren: '(' select_clause_without_modifier ')' */ @@ -4664,7 +4674,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } -#line 4668 "parser.cpp" +#line 4678 "parser.cpp" break; case 152: /* select_clause_without_modifier_paren: '(' select_clause_without_modifier_paren ')' */ @@ -4672,7 +4682,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } -#line 4676 "parser.cpp" +#line 4686 "parser.cpp" break; case 153: /* select_clause_without_modifier: SELECT distinct expr_array from_clause search_clause where_clause group_by_clause having_clause */ @@ -4692,7 +4702,7 @@ YYLTYPE yylloc = yyloc_default; YYERROR; } } -#line 4696 "parser.cpp" +#line 4706 "parser.cpp" break; case 154: /* order_by_clause: ORDER BY order_by_expr_list */ @@ -4700,7 +4710,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.order_by_expr_list_t) = (yyvsp[0].order_by_expr_list_t); } -#line 4704 "parser.cpp" +#line 4714 "parser.cpp" break; case 155: /* order_by_clause: %empty */ @@ -4708,7 +4718,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.order_by_expr_list_t) = nullptr; } -#line 4712 "parser.cpp" +#line 4722 "parser.cpp" break; case 156: /* order_by_expr_list: order_by_expr */ @@ -4717,7 +4727,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.order_by_expr_list_t) = new std::vector(); (yyval.order_by_expr_list_t)->emplace_back((yyvsp[0].order_by_expr_t)); } -#line 4721 "parser.cpp" +#line 4731 "parser.cpp" break; case 157: /* order_by_expr_list: order_by_expr_list ',' order_by_expr */ @@ -4726,7 +4736,7 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-2].order_by_expr_list_t)->emplace_back((yyvsp[0].order_by_expr_t)); (yyval.order_by_expr_list_t) = (yyvsp[-2].order_by_expr_list_t); } -#line 4730 "parser.cpp" +#line 4740 "parser.cpp" break; case 158: /* order_by_expr: expr order_by_type */ @@ -4736,7 +4746,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.order_by_expr_t)->expr_ = (yyvsp[-1].expr_t); (yyval.order_by_expr_t)->type_ = (yyvsp[0].order_by_type_t); } -#line 4740 "parser.cpp" +#line 4750 "parser.cpp" break; case 159: /* order_by_type: ASC */ @@ -4744,7 +4754,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.order_by_type_t) = infinity::kAsc; } -#line 4748 "parser.cpp" +#line 4758 "parser.cpp" break; case 160: /* order_by_type: DESC */ @@ -4752,7 +4762,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.order_by_type_t) = infinity::kDesc; } -#line 4756 "parser.cpp" +#line 4766 "parser.cpp" break; case 161: /* order_by_type: %empty */ @@ -4760,7 +4770,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.order_by_type_t) = infinity::kAsc; } -#line 4764 "parser.cpp" +#line 4774 "parser.cpp" break; case 162: /* limit_expr: LIMIT expr */ @@ -4768,13 +4778,13 @@ YYLTYPE yylloc = yyloc_default; { (yyval.expr_t) = (yyvsp[0].expr_t); } -#line 4772 "parser.cpp" +#line 4782 "parser.cpp" break; case 163: /* limit_expr: %empty */ #line 1347 "parser.y" { (yyval.expr_t) = nullptr; } -#line 4778 "parser.cpp" +#line 4788 "parser.cpp" break; case 164: /* offset_expr: OFFSET expr */ @@ -4782,13 +4792,13 @@ YYLTYPE yylloc = yyloc_default; { (yyval.expr_t) = (yyvsp[0].expr_t); } -#line 4786 "parser.cpp" +#line 4796 "parser.cpp" break; case 165: /* offset_expr: %empty */ #line 1353 "parser.y" { (yyval.expr_t) = nullptr; } -#line 4792 "parser.cpp" +#line 4802 "parser.cpp" break; case 166: /* distinct: DISTINCT */ @@ -4796,7 +4806,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.bool_value) = true; } -#line 4800 "parser.cpp" +#line 4810 "parser.cpp" break; case 167: /* distinct: %empty */ @@ -4804,7 +4814,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.bool_value) = false; } -#line 4808 "parser.cpp" +#line 4818 "parser.cpp" break; case 168: /* from_clause: FROM table_reference */ @@ -4812,7 +4822,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.table_reference_t) = (yyvsp[0].table_reference_t); } -#line 4816 "parser.cpp" +#line 4826 "parser.cpp" break; case 169: /* from_clause: %empty */ @@ -4820,7 +4830,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.table_reference_t) = nullptr; } -#line 4824 "parser.cpp" +#line 4834 "parser.cpp" break; case 170: /* search_clause: SEARCH sub_search_array */ @@ -4830,7 +4840,7 @@ YYLTYPE yylloc = yyloc_default; search_expr->SetExprs((yyvsp[0].expr_array_t)); (yyval.expr_t) = search_expr; } -#line 4834 "parser.cpp" +#line 4844 "parser.cpp" break; case 171: /* search_clause: %empty */ @@ -4838,7 +4848,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.expr_t) = nullptr; } -#line 4842 "parser.cpp" +#line 4852 "parser.cpp" break; case 172: /* where_clause: WHERE expr */ @@ -4846,7 +4856,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.expr_t) = (yyvsp[0].expr_t); } -#line 4850 "parser.cpp" +#line 4860 "parser.cpp" break; case 173: /* where_clause: %empty */ @@ -4854,7 +4864,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.expr_t) = nullptr; } -#line 4858 "parser.cpp" +#line 4868 "parser.cpp" break; case 174: /* having_clause: HAVING expr */ @@ -4862,7 +4872,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.expr_t) = (yyvsp[0].expr_t); } -#line 4866 "parser.cpp" +#line 4876 "parser.cpp" break; case 175: /* having_clause: %empty */ @@ -4870,7 +4880,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.expr_t) = nullptr; } -#line 4874 "parser.cpp" +#line 4884 "parser.cpp" break; case 176: /* group_by_clause: GROUP BY expr_array */ @@ -4878,7 +4888,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.expr_array_t) = (yyvsp[0].expr_array_t); } -#line 4882 "parser.cpp" +#line 4892 "parser.cpp" break; case 177: /* group_by_clause: %empty */ @@ -4886,7 +4896,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.expr_array_t) = nullptr; } -#line 4890 "parser.cpp" +#line 4900 "parser.cpp" break; case 178: /* set_operator: UNION */ @@ -4894,7 +4904,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.set_operator_t) = infinity::SetOperatorType::kUnion; } -#line 4898 "parser.cpp" +#line 4908 "parser.cpp" break; case 179: /* set_operator: UNION ALL */ @@ -4902,7 +4912,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.set_operator_t) = infinity::SetOperatorType::kUnionAll; } -#line 4906 "parser.cpp" +#line 4916 "parser.cpp" break; case 180: /* set_operator: INTERSECT */ @@ -4910,7 +4920,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.set_operator_t) = infinity::SetOperatorType::kIntersect; } -#line 4914 "parser.cpp" +#line 4924 "parser.cpp" break; case 181: /* set_operator: EXCEPT */ @@ -4918,7 +4928,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.set_operator_t) = infinity::SetOperatorType::kExcept; } -#line 4922 "parser.cpp" +#line 4932 "parser.cpp" break; case 182: /* table_reference: table_reference_unit */ @@ -4926,7 +4936,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.table_reference_t) = (yyvsp[0].table_reference_t); } -#line 4930 "parser.cpp" +#line 4940 "parser.cpp" break; case 183: /* table_reference: table_reference ',' table_reference_unit */ @@ -4944,7 +4954,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.table_reference_t) = cross_product_ref; } -#line 4948 "parser.cpp" +#line 4958 "parser.cpp" break; case 186: /* table_reference_name: table_name table_alias */ @@ -4962,7 +4972,7 @@ YYLTYPE yylloc = yyloc_default; table_ref->alias_ = (yyvsp[0].table_alias_t); (yyval.table_reference_t) = table_ref; } -#line 4966 "parser.cpp" +#line 4976 "parser.cpp" break; case 187: /* table_reference_name: '(' select_statement ')' table_alias */ @@ -4973,7 +4983,7 @@ YYLTYPE yylloc = yyloc_default; subquery_reference->alias_ = (yyvsp[0].table_alias_t); (yyval.table_reference_t) = subquery_reference; } -#line 4977 "parser.cpp" +#line 4987 "parser.cpp" break; case 188: /* table_name: IDENTIFIER */ @@ -4983,7 +4993,7 @@ YYLTYPE yylloc = yyloc_default; ParserHelper::ToLower((yyvsp[0].str_value)); (yyval.table_name_t)->table_name_ptr_ = (yyvsp[0].str_value); } -#line 4987 "parser.cpp" +#line 4997 "parser.cpp" break; case 189: /* table_name: IDENTIFIER '.' IDENTIFIER */ @@ -4995,7 +5005,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.table_name_t)->schema_name_ptr_ = (yyvsp[-2].str_value); (yyval.table_name_t)->table_name_ptr_ = (yyvsp[0].str_value); } -#line 4999 "parser.cpp" +#line 5009 "parser.cpp" break; case 190: /* table_alias: AS IDENTIFIER */ @@ -5005,7 +5015,7 @@ YYLTYPE yylloc = yyloc_default; ParserHelper::ToLower((yyvsp[0].str_value)); (yyval.table_alias_t)->alias_ = (yyvsp[0].str_value); } -#line 5009 "parser.cpp" +#line 5019 "parser.cpp" break; case 191: /* table_alias: IDENTIFIER */ @@ -5015,7 +5025,7 @@ YYLTYPE yylloc = yyloc_default; ParserHelper::ToLower((yyvsp[0].str_value)); (yyval.table_alias_t)->alias_ = (yyvsp[0].str_value); } -#line 5019 "parser.cpp" +#line 5029 "parser.cpp" break; case 192: /* table_alias: AS IDENTIFIER '(' identifier_array ')' */ @@ -5026,7 +5036,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.table_alias_t)->alias_ = (yyvsp[-3].str_value); (yyval.table_alias_t)->column_alias_array_ = (yyvsp[-1].identifier_array_t); } -#line 5030 "parser.cpp" +#line 5040 "parser.cpp" break; case 193: /* table_alias: %empty */ @@ -5034,7 +5044,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.table_alias_t) = nullptr; } -#line 5038 "parser.cpp" +#line 5048 "parser.cpp" break; case 194: /* with_clause: WITH with_expr_list */ @@ -5042,7 +5052,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.with_expr_list_t) = (yyvsp[0].with_expr_list_t); } -#line 5046 "parser.cpp" +#line 5056 "parser.cpp" break; case 195: /* with_clause: %empty */ @@ -5050,7 +5060,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.with_expr_list_t) = nullptr; } -#line 5054 "parser.cpp" +#line 5064 "parser.cpp" break; case 196: /* with_expr_list: with_expr */ @@ -5059,7 +5069,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.with_expr_list_t) = new std::vector(); (yyval.with_expr_list_t)->emplace_back((yyvsp[0].with_expr_t)); } -#line 5063 "parser.cpp" +#line 5073 "parser.cpp" break; case 197: /* with_expr_list: with_expr_list ',' with_expr */ @@ -5068,7 +5078,7 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-2].with_expr_list_t)->emplace_back((yyvsp[0].with_expr_t)); (yyval.with_expr_list_t) = (yyvsp[-2].with_expr_list_t); } -#line 5072 "parser.cpp" +#line 5082 "parser.cpp" break; case 198: /* with_expr: IDENTIFIER AS '(' select_clause_with_modifier ')' */ @@ -5080,7 +5090,7 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[-4].str_value)); (yyval.with_expr_t)->select_ = (yyvsp[-1].select_stmt); } -#line 5084 "parser.cpp" +#line 5094 "parser.cpp" break; case 199: /* join_clause: table_reference_unit NATURAL JOIN table_reference_name */ @@ -5092,7 +5102,7 @@ YYLTYPE yylloc = yyloc_default; join_reference->join_type_ = infinity::JoinType::kNatural; (yyval.table_reference_t) = join_reference; } -#line 5096 "parser.cpp" +#line 5106 "parser.cpp" break; case 200: /* join_clause: table_reference_unit join_type JOIN table_reference_name ON expr */ @@ -5105,7 +5115,7 @@ YYLTYPE yylloc = yyloc_default; join_reference->condition_ = (yyvsp[0].expr_t); (yyval.table_reference_t) = join_reference; } -#line 5109 "parser.cpp" +#line 5119 "parser.cpp" break; case 201: /* join_type: INNER */ @@ -5113,7 +5123,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.join_type_t) = infinity::JoinType::kInner; } -#line 5117 "parser.cpp" +#line 5127 "parser.cpp" break; case 202: /* join_type: LEFT */ @@ -5121,7 +5131,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.join_type_t) = infinity::JoinType::kLeft; } -#line 5125 "parser.cpp" +#line 5135 "parser.cpp" break; case 203: /* join_type: RIGHT */ @@ -5129,7 +5139,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.join_type_t) = infinity::JoinType::kRight; } -#line 5133 "parser.cpp" +#line 5143 "parser.cpp" break; case 204: /* join_type: OUTER */ @@ -5137,7 +5147,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.join_type_t) = infinity::JoinType::kFull; } -#line 5141 "parser.cpp" +#line 5151 "parser.cpp" break; case 205: /* join_type: FULL */ @@ -5145,7 +5155,7 @@ YYLTYPE yylloc = yyloc_default; { (yyval.join_type_t) = infinity::JoinType::kFull; } -#line 5149 "parser.cpp" +#line 5159 "parser.cpp" break; case 206: /* join_type: CROSS */ @@ -5153,14 +5163,14 @@ YYLTYPE yylloc = yyloc_default; { (yyval.join_type_t) = infinity::JoinType::kCross; } -#line 5157 "parser.cpp" +#line 5167 "parser.cpp" break; case 207: /* join_type: %empty */ #line 1562 "parser.y" { } -#line 5164 "parser.cpp" +#line 5174 "parser.cpp" break; case 208: /* show_statement: SHOW DATABASES */ @@ -5169,7 +5179,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt) = new infinity::ShowStatement(); (yyval.show_stmt)->show_type_ = infinity::ShowStmtType::kDatabases; } -#line 5173 "parser.cpp" +#line 5183 "parser.cpp" break; case 209: /* show_statement: SHOW TABLES */ @@ -5178,7 +5188,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt) = new infinity::ShowStatement(); (yyval.show_stmt)->show_type_ = infinity::ShowStmtType::kTables; } -#line 5182 "parser.cpp" +#line 5192 "parser.cpp" break; case 210: /* show_statement: SHOW VIEWS */ @@ -5187,7 +5197,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt) = new infinity::ShowStatement(); (yyval.show_stmt)->show_type_ = infinity::ShowStmtType::kViews; } -#line 5191 "parser.cpp" +#line 5201 "parser.cpp" break; case 211: /* show_statement: SHOW CONFIGS */ @@ -5196,7 +5206,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt) = new infinity::ShowStatement(); (yyval.show_stmt)->show_type_ = infinity::ShowStmtType::kConfigs; } -#line 5200 "parser.cpp" +#line 5210 "parser.cpp" break; case 212: /* show_statement: SHOW CONFIG IDENTIFIER */ @@ -5208,7 +5218,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt)->var_name_ = std::string((yyvsp[0].str_value)); free((yyvsp[0].str_value)); } -#line 5212 "parser.cpp" +#line 5222 "parser.cpp" break; case 213: /* show_statement: SHOW PROFILES */ @@ -5217,7 +5227,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt) = new infinity::ShowStatement(); (yyval.show_stmt)->show_type_ = infinity::ShowStmtType::kProfiles; } -#line 5221 "parser.cpp" +#line 5231 "parser.cpp" break; case 214: /* show_statement: SHOW SESSION VARIABLES */ @@ -5226,7 +5236,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt) = new infinity::ShowStatement(); (yyval.show_stmt)->show_type_ = infinity::ShowStmtType::kSessionVariables; } -#line 5230 "parser.cpp" +#line 5240 "parser.cpp" break; case 215: /* show_statement: SHOW GLOBAL VARIABLES */ @@ -5235,7 +5245,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt) = new infinity::ShowStatement(); (yyval.show_stmt)->show_type_ = infinity::ShowStmtType::kGlobalVariables; } -#line 5239 "parser.cpp" +#line 5249 "parser.cpp" break; case 216: /* show_statement: SHOW SESSION VARIABLE IDENTIFIER */ @@ -5246,7 +5256,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt)->var_name_ = std::string((yyvsp[0].str_value)); free((yyvsp[0].str_value)); } -#line 5250 "parser.cpp" +#line 5260 "parser.cpp" break; case 217: /* show_statement: SHOW GLOBAL VARIABLE IDENTIFIER */ @@ -5257,7 +5267,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt)->var_name_ = std::string((yyvsp[0].str_value)); free((yyvsp[0].str_value)); } -#line 5261 "parser.cpp" +#line 5271 "parser.cpp" break; case 218: /* show_statement: SHOW DATABASE IDENTIFIER */ @@ -5268,7 +5278,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt)->schema_name_ = (yyvsp[0].str_value); free((yyvsp[0].str_value)); } -#line 5272 "parser.cpp" +#line 5282 "parser.cpp" break; case 219: /* show_statement: SHOW TABLE table_name */ @@ -5284,7 +5294,7 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[0].table_name_t)->table_name_ptr_); delete (yyvsp[0].table_name_t); } -#line 5288 "parser.cpp" +#line 5298 "parser.cpp" break; case 220: /* show_statement: SHOW TABLE table_name COLUMNS */ @@ -5300,7 +5310,7 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[-1].table_name_t)->table_name_ptr_); delete (yyvsp[-1].table_name_t); } -#line 5304 "parser.cpp" +#line 5314 "parser.cpp" break; case 221: /* show_statement: SHOW TABLE table_name SEGMENTS */ @@ -5316,7 +5326,7 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[-1].table_name_t)->table_name_ptr_); delete (yyvsp[-1].table_name_t); } -#line 5320 "parser.cpp" +#line 5330 "parser.cpp" break; case 222: /* show_statement: SHOW TABLE table_name SEGMENT LONG_VALUE */ @@ -5333,7 +5343,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt)->segment_id_ = (yyvsp[0].long_value); delete (yyvsp[-2].table_name_t); } -#line 5337 "parser.cpp" +#line 5347 "parser.cpp" break; case 223: /* show_statement: SHOW TABLE table_name SEGMENT LONG_VALUE BLOCKS */ @@ -5350,7 +5360,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt)->segment_id_ = (yyvsp[-1].long_value); delete (yyvsp[-3].table_name_t); } -#line 5354 "parser.cpp" +#line 5364 "parser.cpp" break; case 224: /* show_statement: SHOW TABLE table_name SEGMENT LONG_VALUE BLOCK LONG_VALUE */ @@ -5368,7 +5378,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt)->block_id_ = (yyvsp[0].long_value); delete (yyvsp[-4].table_name_t); } -#line 5372 "parser.cpp" +#line 5382 "parser.cpp" break; case 225: /* show_statement: SHOW TABLE table_name SEGMENT LONG_VALUE BLOCK LONG_VALUE COLUMN LONG_VALUE */ @@ -5387,7 +5397,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt)->column_id_ = (yyvsp[0].long_value); delete (yyvsp[-6].table_name_t); } -#line 5391 "parser.cpp" +#line 5401 "parser.cpp" break; case 226: /* show_statement: SHOW TABLE table_name INDEXES */ @@ -5403,7 +5413,7 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[-1].table_name_t)->table_name_ptr_); delete (yyvsp[-1].table_name_t); } -#line 5407 "parser.cpp" +#line 5417 "parser.cpp" break; case 227: /* show_statement: SHOW TABLE table_name INDEX IDENTIFIER */ @@ -5422,38 +5432,59 @@ YYLTYPE yylloc = yyloc_default; (yyval.show_stmt)->index_name_ = (yyvsp[0].str_value); free((yyvsp[0].str_value)); } -#line 5426 "parser.cpp" +#line 5436 "parser.cpp" break; - case 228: /* flush_statement: FLUSH DATA */ -#line 1734 "parser.y" + case 228: /* show_statement: SHOW TABLE table_name INDEX IDENTIFIER SEGMENT LONG_VALUE */ +#line 1730 "parser.y" + { + (yyval.show_stmt) = new infinity::ShowStatement(); + (yyval.show_stmt)->show_type_ = infinity::ShowStmtType::kIndexSegment; + if((yyvsp[-4].table_name_t)->schema_name_ptr_ != nullptr) { + (yyval.show_stmt)->schema_name_ = (yyvsp[-4].table_name_t)->schema_name_ptr_; + free((yyvsp[-4].table_name_t)->schema_name_ptr_); + } + (yyval.show_stmt)->table_name_ = (yyvsp[-4].table_name_t)->table_name_ptr_; + free((yyvsp[-4].table_name_t)->table_name_ptr_); + delete (yyvsp[-4].table_name_t); + + (yyval.show_stmt)->index_name_ = (yyvsp[-2].str_value); + free((yyvsp[-2].str_value)); + + (yyval.show_stmt)->segment_id_ = (yyvsp[0].long_value); +} +#line 5457 "parser.cpp" + break; + + case 229: /* flush_statement: FLUSH DATA */ +#line 1750 "parser.y" { (yyval.flush_stmt) = new infinity::FlushStatement(); (yyval.flush_stmt)->type_ = infinity::FlushType::kData; } -#line 5435 "parser.cpp" +#line 5466 "parser.cpp" break; - case 229: /* flush_statement: FLUSH LOG */ -#line 1738 "parser.y" + case 230: /* flush_statement: FLUSH LOG */ +#line 1754 "parser.y" { (yyval.flush_stmt) = new infinity::FlushStatement(); (yyval.flush_stmt)->type_ = infinity::FlushType::kLog; } -#line 5444 "parser.cpp" +#line 5475 "parser.cpp" break; - case 230: /* flush_statement: FLUSH BUFFER */ -#line 1742 "parser.y" + case 231: /* flush_statement: FLUSH BUFFER */ +#line 1758 "parser.y" { (yyval.flush_stmt) = new infinity::FlushStatement(); (yyval.flush_stmt)->type_ = infinity::FlushType::kBuffer; } -#line 5453 "parser.cpp" +#line 5484 "parser.cpp" break; - case 231: /* optimize_statement: OPTIMIZE table_name */ -#line 1750 "parser.y" + case 232: /* optimize_statement: OPTIMIZE table_name */ +#line 1766 "parser.y" { (yyval.optimize_stmt) = new infinity::OptimizeStatement(); if((yyvsp[0].table_name_t)->schema_name_ptr_ != nullptr) { @@ -5464,54 +5495,54 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[0].table_name_t)->table_name_ptr_); delete (yyvsp[0].table_name_t); } -#line 5468 "parser.cpp" +#line 5499 "parser.cpp" break; - case 232: /* command_statement: USE IDENTIFIER */ -#line 1764 "parser.y" + case 233: /* command_statement: USE IDENTIFIER */ +#line 1780 "parser.y" { (yyval.command_stmt) = new infinity::CommandStatement(); ParserHelper::ToLower((yyvsp[0].str_value)); (yyval.command_stmt)->command_info_ = std::make_unique((yyvsp[0].str_value)); free((yyvsp[0].str_value)); } -#line 5479 "parser.cpp" +#line 5510 "parser.cpp" break; - case 233: /* command_statement: EXPORT PROFILE LONG_VALUE file_path */ -#line 1770 "parser.y" + case 234: /* command_statement: EXPORT PROFILE LONG_VALUE file_path */ +#line 1786 "parser.y" { (yyval.command_stmt) = new infinity::CommandStatement(); (yyval.command_stmt)->command_info_ = std::make_unique((yyvsp[0].str_value), infinity::ExportType::kProfileRecord, (yyvsp[-1].long_value)); free((yyvsp[0].str_value)); } -#line 5489 "parser.cpp" +#line 5520 "parser.cpp" break; - case 234: /* command_statement: SET SESSION IDENTIFIER ON */ -#line 1775 "parser.y" + case 235: /* command_statement: SET SESSION IDENTIFIER ON */ +#line 1791 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); (yyval.command_stmt) = new infinity::CommandStatement(); (yyval.command_stmt)->command_info_ = std::make_unique(infinity::SetScope::kSession, infinity::SetVarType::kBool, (yyvsp[-1].str_value), true); free((yyvsp[-1].str_value)); } -#line 5500 "parser.cpp" +#line 5531 "parser.cpp" break; - case 235: /* command_statement: SET SESSION IDENTIFIER OFF */ -#line 1781 "parser.y" + case 236: /* command_statement: SET SESSION IDENTIFIER OFF */ +#line 1797 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); (yyval.command_stmt) = new infinity::CommandStatement(); (yyval.command_stmt)->command_info_ = std::make_unique(infinity::SetScope::kSession, infinity::SetVarType::kBool, (yyvsp[-1].str_value), false); free((yyvsp[-1].str_value)); } -#line 5511 "parser.cpp" +#line 5542 "parser.cpp" break; - case 236: /* command_statement: SET SESSION IDENTIFIER IDENTIFIER */ -#line 1787 "parser.y" + case 237: /* command_statement: SET SESSION IDENTIFIER IDENTIFIER */ +#line 1803 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); ParserHelper::ToLower((yyvsp[0].str_value)); @@ -5520,55 +5551,55 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[-1].str_value)); free((yyvsp[0].str_value)); } -#line 5524 "parser.cpp" +#line 5555 "parser.cpp" break; - case 237: /* command_statement: SET SESSION IDENTIFIER LONG_VALUE */ -#line 1795 "parser.y" + case 238: /* command_statement: SET SESSION IDENTIFIER LONG_VALUE */ +#line 1811 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); (yyval.command_stmt) = new infinity::CommandStatement(); (yyval.command_stmt)->command_info_ = std::make_unique(infinity::SetScope::kSession, infinity::SetVarType::kInteger, (yyvsp[-1].str_value), (yyvsp[0].long_value)); free((yyvsp[-1].str_value)); } -#line 5535 "parser.cpp" +#line 5566 "parser.cpp" break; - case 238: /* command_statement: SET SESSION IDENTIFIER DOUBLE_VALUE */ -#line 1801 "parser.y" + case 239: /* command_statement: SET SESSION IDENTIFIER DOUBLE_VALUE */ +#line 1817 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); (yyval.command_stmt) = new infinity::CommandStatement(); (yyval.command_stmt)->command_info_ = std::make_unique(infinity::SetScope::kSession, infinity::SetVarType::kDouble, (yyvsp[-1].str_value), (yyvsp[0].double_value)); free((yyvsp[-1].str_value)); } -#line 5546 "parser.cpp" +#line 5577 "parser.cpp" break; - case 239: /* command_statement: SET GLOBAL IDENTIFIER ON */ -#line 1807 "parser.y" + case 240: /* command_statement: SET GLOBAL IDENTIFIER ON */ +#line 1823 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); (yyval.command_stmt) = new infinity::CommandStatement(); (yyval.command_stmt)->command_info_ = std::make_unique(infinity::SetScope::kGlobal, infinity::SetVarType::kBool, (yyvsp[-1].str_value), true); free((yyvsp[-1].str_value)); } -#line 5557 "parser.cpp" +#line 5588 "parser.cpp" break; - case 240: /* command_statement: SET GLOBAL IDENTIFIER OFF */ -#line 1813 "parser.y" + case 241: /* command_statement: SET GLOBAL IDENTIFIER OFF */ +#line 1829 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); (yyval.command_stmt) = new infinity::CommandStatement(); (yyval.command_stmt)->command_info_ = std::make_unique(infinity::SetScope::kGlobal, infinity::SetVarType::kBool, (yyvsp[-1].str_value), false); free((yyvsp[-1].str_value)); } -#line 5568 "parser.cpp" +#line 5599 "parser.cpp" break; - case 241: /* command_statement: SET GLOBAL IDENTIFIER IDENTIFIER */ -#line 1819 "parser.y" + case 242: /* command_statement: SET GLOBAL IDENTIFIER IDENTIFIER */ +#line 1835 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); ParserHelper::ToLower((yyvsp[0].str_value)); @@ -5577,55 +5608,55 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[-1].str_value)); free((yyvsp[0].str_value)); } -#line 5581 "parser.cpp" +#line 5612 "parser.cpp" break; - case 242: /* command_statement: SET GLOBAL IDENTIFIER LONG_VALUE */ -#line 1827 "parser.y" + case 243: /* command_statement: SET GLOBAL IDENTIFIER LONG_VALUE */ +#line 1843 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); (yyval.command_stmt) = new infinity::CommandStatement(); (yyval.command_stmt)->command_info_ = std::make_unique(infinity::SetScope::kGlobal, infinity::SetVarType::kInteger, (yyvsp[-1].str_value), (yyvsp[0].long_value)); free((yyvsp[-1].str_value)); } -#line 5592 "parser.cpp" +#line 5623 "parser.cpp" break; - case 243: /* command_statement: SET GLOBAL IDENTIFIER DOUBLE_VALUE */ -#line 1833 "parser.y" + case 244: /* command_statement: SET GLOBAL IDENTIFIER DOUBLE_VALUE */ +#line 1849 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); (yyval.command_stmt) = new infinity::CommandStatement(); (yyval.command_stmt)->command_info_ = std::make_unique(infinity::SetScope::kGlobal, infinity::SetVarType::kDouble, (yyvsp[-1].str_value), (yyvsp[0].double_value)); free((yyvsp[-1].str_value)); } -#line 5603 "parser.cpp" +#line 5634 "parser.cpp" break; - case 244: /* command_statement: SET CONFIG IDENTIFIER ON */ -#line 1839 "parser.y" + case 245: /* command_statement: SET CONFIG IDENTIFIER ON */ +#line 1855 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); (yyval.command_stmt) = new infinity::CommandStatement(); (yyval.command_stmt)->command_info_ = std::make_unique(infinity::SetScope::kConfig, infinity::SetVarType::kBool, (yyvsp[-1].str_value), true); free((yyvsp[-1].str_value)); } -#line 5614 "parser.cpp" +#line 5645 "parser.cpp" break; - case 245: /* command_statement: SET CONFIG IDENTIFIER OFF */ -#line 1845 "parser.y" + case 246: /* command_statement: SET CONFIG IDENTIFIER OFF */ +#line 1861 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); (yyval.command_stmt) = new infinity::CommandStatement(); (yyval.command_stmt)->command_info_ = std::make_unique(infinity::SetScope::kConfig, infinity::SetVarType::kBool, (yyvsp[-1].str_value), false); free((yyvsp[-1].str_value)); } -#line 5625 "parser.cpp" +#line 5656 "parser.cpp" break; - case 246: /* command_statement: SET CONFIG IDENTIFIER IDENTIFIER */ -#line 1851 "parser.y" + case 247: /* command_statement: SET CONFIG IDENTIFIER IDENTIFIER */ +#line 1867 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); ParserHelper::ToLower((yyvsp[0].str_value)); @@ -5634,33 +5665,33 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[-1].str_value)); free((yyvsp[0].str_value)); } -#line 5638 "parser.cpp" +#line 5669 "parser.cpp" break; - case 247: /* command_statement: SET CONFIG IDENTIFIER LONG_VALUE */ -#line 1859 "parser.y" + case 248: /* command_statement: SET CONFIG IDENTIFIER LONG_VALUE */ +#line 1875 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); (yyval.command_stmt) = new infinity::CommandStatement(); (yyval.command_stmt)->command_info_ = std::make_unique(infinity::SetScope::kConfig, infinity::SetVarType::kInteger, (yyvsp[-1].str_value), (yyvsp[0].long_value)); free((yyvsp[-1].str_value)); } -#line 5649 "parser.cpp" +#line 5680 "parser.cpp" break; - case 248: /* command_statement: SET CONFIG IDENTIFIER DOUBLE_VALUE */ -#line 1865 "parser.y" + case 249: /* command_statement: SET CONFIG IDENTIFIER DOUBLE_VALUE */ +#line 1881 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); (yyval.command_stmt) = new infinity::CommandStatement(); (yyval.command_stmt)->command_info_ = std::make_unique(infinity::SetScope::kConfig, infinity::SetVarType::kDouble, (yyvsp[-1].str_value), (yyvsp[0].double_value)); free((yyvsp[-1].str_value)); } -#line 5660 "parser.cpp" +#line 5691 "parser.cpp" break; - case 249: /* compact_statement: COMPACT TABLE table_name */ -#line 1872 "parser.y" + case 250: /* compact_statement: COMPACT TABLE table_name */ +#line 1888 "parser.y" { std::string schema_name; if ((yyvsp[0].table_name_t)->schema_name_ptr_ != nullptr) { @@ -5673,38 +5704,38 @@ YYLTYPE yylloc = yyloc_default; (yyval.compact_stmt) = new infinity::ManualCompactStatement(std::move(schema_name), std::move(table_name)); delete (yyvsp[0].table_name_t); } -#line 5677 "parser.cpp" +#line 5708 "parser.cpp" break; - case 250: /* expr_array: expr_alias */ -#line 1889 "parser.y" + case 251: /* expr_array: expr_alias */ +#line 1905 "parser.y" { (yyval.expr_array_t) = new std::vector(); (yyval.expr_array_t)->emplace_back((yyvsp[0].expr_t)); } -#line 5686 "parser.cpp" +#line 5717 "parser.cpp" break; - case 251: /* expr_array: expr_array ',' expr_alias */ -#line 1893 "parser.y" + case 252: /* expr_array: expr_array ',' expr_alias */ +#line 1909 "parser.y" { (yyvsp[-2].expr_array_t)->emplace_back((yyvsp[0].expr_t)); (yyval.expr_array_t) = (yyvsp[-2].expr_array_t); } -#line 5695 "parser.cpp" +#line 5726 "parser.cpp" break; - case 252: /* expr_array_list: '(' expr_array ')' */ -#line 1898 "parser.y" + case 253: /* expr_array_list: '(' expr_array ')' */ +#line 1914 "parser.y" { (yyval.expr_array_list_t) = new std::vector*>(); (yyval.expr_array_list_t)->push_back((yyvsp[-1].expr_array_t)); } -#line 5704 "parser.cpp" +#line 5735 "parser.cpp" break; - case 253: /* expr_array_list: expr_array_list ',' '(' expr_array ')' */ -#line 1902 "parser.y" + case 254: /* expr_array_list: expr_array_list ',' '(' expr_array ')' */ +#line 1918 "parser.y" { if(!(yyvsp[-4].expr_array_list_t)->empty() && (yyvsp[-4].expr_array_list_t)->back()->size() != (yyvsp[-1].expr_array_t)->size()) { yyerror(&yyloc, scanner, result, "The expr_array in list shall have the same size."); @@ -5720,73 +5751,73 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-4].expr_array_list_t)->push_back((yyvsp[-1].expr_array_t)); (yyval.expr_array_list_t) = (yyvsp[-4].expr_array_list_t); } -#line 5724 "parser.cpp" +#line 5755 "parser.cpp" break; - case 254: /* expr_alias: expr AS IDENTIFIER */ -#line 1929 "parser.y" + case 255: /* expr_alias: expr AS IDENTIFIER */ +#line 1945 "parser.y" { (yyval.expr_t) = (yyvsp[-2].expr_t); ParserHelper::ToLower((yyvsp[0].str_value)); (yyval.expr_t)->alias_ = (yyvsp[0].str_value); free((yyvsp[0].str_value)); } -#line 5735 "parser.cpp" +#line 5766 "parser.cpp" break; - case 255: /* expr_alias: expr */ -#line 1935 "parser.y" + case 256: /* expr_alias: expr */ +#line 1951 "parser.y" { (yyval.expr_t) = (yyvsp[0].expr_t); } -#line 5743 "parser.cpp" +#line 5774 "parser.cpp" break; - case 261: /* operand: '(' expr ')' */ -#line 1945 "parser.y" + case 262: /* operand: '(' expr ')' */ +#line 1961 "parser.y" { (yyval.expr_t) = (yyvsp[-1].expr_t); } -#line 5751 "parser.cpp" +#line 5782 "parser.cpp" break; - case 262: /* operand: '(' select_without_paren ')' */ -#line 1948 "parser.y" + case 263: /* operand: '(' select_without_paren ')' */ +#line 1964 "parser.y" { infinity::SubqueryExpr* subquery_expr = new infinity::SubqueryExpr(); subquery_expr->subquery_type_ = infinity::SubqueryType::kScalar; subquery_expr->select_ = (yyvsp[-1].select_stmt); (yyval.expr_t) = subquery_expr; } -#line 5762 "parser.cpp" +#line 5793 "parser.cpp" break; - case 263: /* operand: constant_expr */ -#line 1954 "parser.y" + case 264: /* operand: constant_expr */ +#line 1970 "parser.y" { (yyval.expr_t) = (yyvsp[0].const_expr_t); } -#line 5770 "parser.cpp" +#line 5801 "parser.cpp" break; - case 273: /* extra_match_tensor_option: ',' STRING */ -#line 1967 "parser.y" + case 274: /* extra_match_tensor_option: ',' STRING */ +#line 1983 "parser.y" { (yyval.str_value) = (yyvsp[0].str_value); } -#line 5778 "parser.cpp" +#line 5809 "parser.cpp" break; - case 274: /* extra_match_tensor_option: %empty */ -#line 1970 "parser.y" + case 275: /* extra_match_tensor_option: %empty */ +#line 1986 "parser.y" { (yyval.str_value) = nullptr; } -#line 5786 "parser.cpp" +#line 5817 "parser.cpp" break; - case 275: /* match_tensor_expr: MATCH TENSOR '(' column_expr ',' common_array_expr ',' STRING ',' STRING extra_match_tensor_option ')' */ -#line 1976 "parser.y" + case 276: /* match_tensor_expr: MATCH TENSOR '(' column_expr ',' common_array_expr ',' STRING ',' STRING extra_match_tensor_option ')' */ +#line 1992 "parser.y" { auto match_tensor_expr = std::make_unique(); // search column @@ -5803,11 +5834,11 @@ YYLTYPE yylloc = yyloc_default; } (yyval.expr_t) = match_tensor_expr.release(); } -#line 5807 "parser.cpp" +#line 5838 "parser.cpp" break; - case 276: /* match_vector_expr: MATCH VECTOR '(' expr ',' array_expr ',' STRING ',' STRING ',' LONG_VALUE ')' with_index_param_list */ -#line 1995 "parser.y" + case 277: /* match_vector_expr: MATCH VECTOR '(' expr ',' array_expr ',' STRING ',' STRING ',' LONG_VALUE ')' with_index_param_list */ +#line 2011 "parser.y" { infinity::KnnExpr* match_vector_expr = new infinity::KnnExpr(); (yyval.expr_t) = match_vector_expr; @@ -5849,11 +5880,11 @@ YYLTYPE yylloc = yyloc_default; Return: ; } -#line 5853 "parser.cpp" +#line 5884 "parser.cpp" break; - case 277: /* match_text_expr: MATCH TEXT '(' STRING ',' STRING ')' */ -#line 2037 "parser.y" + case 278: /* match_text_expr: MATCH TEXT '(' STRING ',' STRING ')' */ +#line 2053 "parser.y" { infinity::MatchExpr* match_text_expr = new infinity::MatchExpr(); match_text_expr->fields_ = std::string((yyvsp[-3].str_value)); @@ -5862,11 +5893,11 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[-1].str_value)); (yyval.expr_t) = match_text_expr; } -#line 5866 "parser.cpp" +#line 5897 "parser.cpp" break; - case 278: /* match_text_expr: MATCH TEXT '(' STRING ',' STRING ',' STRING ')' */ -#line 2045 "parser.y" + case 279: /* match_text_expr: MATCH TEXT '(' STRING ',' STRING ',' STRING ')' */ +#line 2061 "parser.y" { infinity::MatchExpr* match_text_expr = new infinity::MatchExpr(); match_text_expr->fields_ = std::string((yyvsp[-5].str_value)); @@ -5877,22 +5908,22 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[-1].str_value)); (yyval.expr_t) = match_text_expr; } -#line 5881 "parser.cpp" +#line 5912 "parser.cpp" break; - case 279: /* query_expr: QUERY '(' STRING ')' */ -#line 2056 "parser.y" + case 280: /* query_expr: QUERY '(' STRING ')' */ +#line 2072 "parser.y" { infinity::MatchExpr* match_text_expr = new infinity::MatchExpr(); match_text_expr->matching_text_ = std::string((yyvsp[-1].str_value)); free((yyvsp[-1].str_value)); (yyval.expr_t) = match_text_expr; } -#line 5892 "parser.cpp" +#line 5923 "parser.cpp" break; - case 280: /* query_expr: QUERY '(' STRING ',' STRING ')' */ -#line 2062 "parser.y" + case 281: /* query_expr: QUERY '(' STRING ',' STRING ')' */ +#line 2078 "parser.y" { infinity::MatchExpr* match_text_expr = new infinity::MatchExpr(); match_text_expr->matching_text_ = std::string((yyvsp[-3].str_value)); @@ -5901,22 +5932,22 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[-1].str_value)); (yyval.expr_t) = match_text_expr; } -#line 5905 "parser.cpp" +#line 5936 "parser.cpp" break; - case 281: /* fusion_expr: FUSION '(' STRING ')' */ -#line 2071 "parser.y" + case 282: /* fusion_expr: FUSION '(' STRING ')' */ +#line 2087 "parser.y" { infinity::FusionExpr* fusion_expr = new infinity::FusionExpr(); fusion_expr->method_ = std::string((yyvsp[-1].str_value)); free((yyvsp[-1].str_value)); (yyval.expr_t) = fusion_expr; } -#line 5916 "parser.cpp" +#line 5947 "parser.cpp" break; - case 282: /* fusion_expr: FUSION '(' STRING ',' STRING ')' */ -#line 2077 "parser.y" + case 283: /* fusion_expr: FUSION '(' STRING ',' STRING ')' */ +#line 2093 "parser.y" { auto fusion_expr = std::make_unique(); fusion_expr->method_ = std::string((yyvsp[-3].str_value)); @@ -5928,101 +5959,101 @@ YYLTYPE yylloc = yyloc_default; fusion_expr->JobAfterParser(); (yyval.expr_t) = fusion_expr.release(); } -#line 5932 "parser.cpp" +#line 5963 "parser.cpp" break; - case 283: /* sub_search_array: match_vector_expr */ -#line 2090 "parser.y" + case 284: /* sub_search_array: match_vector_expr */ +#line 2106 "parser.y" { (yyval.expr_array_t) = new std::vector(); (yyval.expr_array_t)->emplace_back((yyvsp[0].expr_t)); } -#line 5941 "parser.cpp" +#line 5972 "parser.cpp" break; - case 284: /* sub_search_array: match_text_expr */ -#line 2094 "parser.y" + case 285: /* sub_search_array: match_text_expr */ +#line 2110 "parser.y" { (yyval.expr_array_t) = new std::vector(); (yyval.expr_array_t)->emplace_back((yyvsp[0].expr_t)); } -#line 5950 "parser.cpp" +#line 5981 "parser.cpp" break; - case 285: /* sub_search_array: match_tensor_expr */ -#line 2098 "parser.y" + case 286: /* sub_search_array: match_tensor_expr */ +#line 2114 "parser.y" { (yyval.expr_array_t) = new std::vector(); (yyval.expr_array_t)->emplace_back((yyvsp[0].expr_t)); } -#line 5959 "parser.cpp" +#line 5990 "parser.cpp" break; - case 286: /* sub_search_array: query_expr */ -#line 2102 "parser.y" + case 287: /* sub_search_array: query_expr */ +#line 2118 "parser.y" { (yyval.expr_array_t) = new std::vector(); (yyval.expr_array_t)->emplace_back((yyvsp[0].expr_t)); } -#line 5968 "parser.cpp" +#line 5999 "parser.cpp" break; - case 287: /* sub_search_array: fusion_expr */ -#line 2106 "parser.y" + case 288: /* sub_search_array: fusion_expr */ +#line 2122 "parser.y" { (yyval.expr_array_t) = new std::vector(); (yyval.expr_array_t)->emplace_back((yyvsp[0].expr_t)); } -#line 5977 "parser.cpp" +#line 6008 "parser.cpp" break; - case 288: /* sub_search_array: sub_search_array ',' match_vector_expr */ -#line 2110 "parser.y" + case 289: /* sub_search_array: sub_search_array ',' match_vector_expr */ +#line 2126 "parser.y" { (yyvsp[-2].expr_array_t)->emplace_back((yyvsp[0].expr_t)); (yyval.expr_array_t) = (yyvsp[-2].expr_array_t); } -#line 5986 "parser.cpp" +#line 6017 "parser.cpp" break; - case 289: /* sub_search_array: sub_search_array ',' match_text_expr */ -#line 2114 "parser.y" + case 290: /* sub_search_array: sub_search_array ',' match_text_expr */ +#line 2130 "parser.y" { (yyvsp[-2].expr_array_t)->emplace_back((yyvsp[0].expr_t)); (yyval.expr_array_t) = (yyvsp[-2].expr_array_t); } -#line 5995 "parser.cpp" +#line 6026 "parser.cpp" break; - case 290: /* sub_search_array: sub_search_array ',' match_tensor_expr */ -#line 2118 "parser.y" + case 291: /* sub_search_array: sub_search_array ',' match_tensor_expr */ +#line 2134 "parser.y" { (yyvsp[-2].expr_array_t)->emplace_back((yyvsp[0].expr_t)); (yyval.expr_array_t) = (yyvsp[-2].expr_array_t); } -#line 6004 "parser.cpp" +#line 6035 "parser.cpp" break; - case 291: /* sub_search_array: sub_search_array ',' query_expr */ -#line 2122 "parser.y" + case 292: /* sub_search_array: sub_search_array ',' query_expr */ +#line 2138 "parser.y" { (yyvsp[-2].expr_array_t)->emplace_back((yyvsp[0].expr_t)); (yyval.expr_array_t) = (yyvsp[-2].expr_array_t); } -#line 6013 "parser.cpp" +#line 6044 "parser.cpp" break; - case 292: /* sub_search_array: sub_search_array ',' fusion_expr */ -#line 2126 "parser.y" + case 293: /* sub_search_array: sub_search_array ',' fusion_expr */ +#line 2142 "parser.y" { (yyvsp[-2].expr_array_t)->emplace_back((yyvsp[0].expr_t)); (yyval.expr_array_t) = (yyvsp[-2].expr_array_t); } -#line 6022 "parser.cpp" +#line 6053 "parser.cpp" break; - case 293: /* function_expr: IDENTIFIER '(' ')' */ -#line 2131 "parser.y" + case 294: /* function_expr: IDENTIFIER '(' ')' */ +#line 2147 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); ParserHelper::ToLower((yyvsp[-2].str_value)); @@ -6031,11 +6062,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_ = nullptr; (yyval.expr_t) = func_expr; } -#line 6035 "parser.cpp" +#line 6066 "parser.cpp" break; - case 294: /* function_expr: IDENTIFIER '(' expr_array ')' */ -#line 2139 "parser.y" + case 295: /* function_expr: IDENTIFIER '(' expr_array ')' */ +#line 2155 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); ParserHelper::ToLower((yyvsp[-3].str_value)); @@ -6044,11 +6075,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_ = (yyvsp[-1].expr_array_t); (yyval.expr_t) = func_expr; } -#line 6048 "parser.cpp" +#line 6079 "parser.cpp" break; - case 295: /* function_expr: IDENTIFIER '(' DISTINCT expr_array ')' */ -#line 2147 "parser.y" + case 296: /* function_expr: IDENTIFIER '(' DISTINCT expr_array ')' */ +#line 2163 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); ParserHelper::ToLower((yyvsp[-4].str_value)); @@ -6058,11 +6089,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->distinct_ = true; (yyval.expr_t) = func_expr; } -#line 6062 "parser.cpp" +#line 6093 "parser.cpp" break; - case 296: /* function_expr: operand IS NOT NULLABLE */ -#line 2156 "parser.y" + case 297: /* function_expr: operand IS NOT NULLABLE */ +#line 2172 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "is_not_null"; @@ -6070,11 +6101,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[-3].expr_t)); (yyval.expr_t) = func_expr; } -#line 6074 "parser.cpp" +#line 6105 "parser.cpp" break; - case 297: /* function_expr: operand IS NULLABLE */ -#line 2163 "parser.y" + case 298: /* function_expr: operand IS NULLABLE */ +#line 2179 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "is_null"; @@ -6082,11 +6113,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[-2].expr_t)); (yyval.expr_t) = func_expr; } -#line 6086 "parser.cpp" +#line 6117 "parser.cpp" break; - case 298: /* function_expr: NOT operand */ -#line 2170 "parser.y" + case 299: /* function_expr: NOT operand */ +#line 2186 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "not"; @@ -6094,11 +6125,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6098 "parser.cpp" +#line 6129 "parser.cpp" break; - case 299: /* function_expr: '-' operand */ -#line 2177 "parser.y" + case 300: /* function_expr: '-' operand */ +#line 2193 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "-"; @@ -6106,11 +6137,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6110 "parser.cpp" +#line 6141 "parser.cpp" break; - case 300: /* function_expr: '+' operand */ -#line 2184 "parser.y" + case 301: /* function_expr: '+' operand */ +#line 2200 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "+"; @@ -6118,11 +6149,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6122 "parser.cpp" +#line 6153 "parser.cpp" break; - case 301: /* function_expr: operand '-' operand */ -#line 2191 "parser.y" + case 302: /* function_expr: operand '-' operand */ +#line 2207 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "-"; @@ -6131,11 +6162,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6135 "parser.cpp" +#line 6166 "parser.cpp" break; - case 302: /* function_expr: operand '+' operand */ -#line 2199 "parser.y" + case 303: /* function_expr: operand '+' operand */ +#line 2215 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "+"; @@ -6144,11 +6175,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6148 "parser.cpp" +#line 6179 "parser.cpp" break; - case 303: /* function_expr: operand '*' operand */ -#line 2207 "parser.y" + case 304: /* function_expr: operand '*' operand */ +#line 2223 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "*"; @@ -6157,11 +6188,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6161 "parser.cpp" +#line 6192 "parser.cpp" break; - case 304: /* function_expr: operand '/' operand */ -#line 2215 "parser.y" + case 305: /* function_expr: operand '/' operand */ +#line 2231 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "/"; @@ -6170,11 +6201,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6174 "parser.cpp" +#line 6205 "parser.cpp" break; - case 305: /* function_expr: operand '%' operand */ -#line 2223 "parser.y" + case 306: /* function_expr: operand '%' operand */ +#line 2239 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "%"; @@ -6183,11 +6214,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6187 "parser.cpp" +#line 6218 "parser.cpp" break; - case 306: /* function_expr: operand '=' operand */ -#line 2231 "parser.y" + case 307: /* function_expr: operand '=' operand */ +#line 2247 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "="; @@ -6196,11 +6227,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6200 "parser.cpp" +#line 6231 "parser.cpp" break; - case 307: /* function_expr: operand EQUAL operand */ -#line 2239 "parser.y" + case 308: /* function_expr: operand EQUAL operand */ +#line 2255 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "="; @@ -6209,11 +6240,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6213 "parser.cpp" +#line 6244 "parser.cpp" break; - case 308: /* function_expr: operand NOT_EQ operand */ -#line 2247 "parser.y" + case 309: /* function_expr: operand NOT_EQ operand */ +#line 2263 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "<>"; @@ -6222,11 +6253,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6226 "parser.cpp" +#line 6257 "parser.cpp" break; - case 309: /* function_expr: operand '<' operand */ -#line 2255 "parser.y" + case 310: /* function_expr: operand '<' operand */ +#line 2271 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "<"; @@ -6235,11 +6266,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6239 "parser.cpp" +#line 6270 "parser.cpp" break; - case 310: /* function_expr: operand '>' operand */ -#line 2263 "parser.y" + case 311: /* function_expr: operand '>' operand */ +#line 2279 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = ">"; @@ -6248,11 +6279,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6252 "parser.cpp" +#line 6283 "parser.cpp" break; - case 311: /* function_expr: operand LESS_EQ operand */ -#line 2271 "parser.y" + case 312: /* function_expr: operand LESS_EQ operand */ +#line 2287 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "<="; @@ -6261,11 +6292,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6265 "parser.cpp" +#line 6296 "parser.cpp" break; - case 312: /* function_expr: operand GREATER_EQ operand */ -#line 2279 "parser.y" + case 313: /* function_expr: operand GREATER_EQ operand */ +#line 2295 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = ">="; @@ -6274,11 +6305,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6278 "parser.cpp" +#line 6309 "parser.cpp" break; - case 313: /* function_expr: EXTRACT '(' STRING FROM operand ')' */ -#line 2287 "parser.y" + case 314: /* function_expr: EXTRACT '(' STRING FROM operand ')' */ +#line 2303 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); ParserHelper::ToLower((yyvsp[-3].str_value)); @@ -6309,11 +6340,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[-1].expr_t)); (yyval.expr_t) = func_expr; } -#line 6313 "parser.cpp" +#line 6344 "parser.cpp" break; - case 314: /* function_expr: operand LIKE operand */ -#line 2317 "parser.y" + case 315: /* function_expr: operand LIKE operand */ +#line 2333 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "like"; @@ -6322,11 +6353,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6326 "parser.cpp" +#line 6357 "parser.cpp" break; - case 315: /* function_expr: operand NOT LIKE operand */ -#line 2325 "parser.y" + case 316: /* function_expr: operand NOT LIKE operand */ +#line 2341 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "not_like"; @@ -6335,11 +6366,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6339 "parser.cpp" +#line 6370 "parser.cpp" break; - case 316: /* conjunction_expr: expr AND expr */ -#line 2334 "parser.y" + case 317: /* conjunction_expr: expr AND expr */ +#line 2350 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "and"; @@ -6348,11 +6379,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6352 "parser.cpp" +#line 6383 "parser.cpp" break; - case 317: /* conjunction_expr: expr OR expr */ -#line 2342 "parser.y" + case 318: /* conjunction_expr: expr OR expr */ +#line 2358 "parser.y" { infinity::FunctionExpr* func_expr = new infinity::FunctionExpr(); func_expr->func_name_ = "or"; @@ -6361,11 +6392,11 @@ YYLTYPE yylloc = yyloc_default; func_expr->arguments_->emplace_back((yyvsp[0].expr_t)); (yyval.expr_t) = func_expr; } -#line 6365 "parser.cpp" +#line 6396 "parser.cpp" break; - case 318: /* between_expr: operand BETWEEN operand AND operand */ -#line 2351 "parser.y" + case 319: /* between_expr: operand BETWEEN operand AND operand */ +#line 2367 "parser.y" { infinity::BetweenExpr* between_expr = new infinity::BetweenExpr(); between_expr->value_ = (yyvsp[-4].expr_t); @@ -6373,44 +6404,44 @@ YYLTYPE yylloc = yyloc_default; between_expr->upper_bound_ = (yyvsp[0].expr_t); (yyval.expr_t) = between_expr; } -#line 6377 "parser.cpp" +#line 6408 "parser.cpp" break; - case 319: /* in_expr: operand IN '(' expr_array ')' */ -#line 2359 "parser.y" + case 320: /* in_expr: operand IN '(' expr_array ')' */ +#line 2375 "parser.y" { infinity::InExpr* in_expr = new infinity::InExpr(true); in_expr->left_ = (yyvsp[-4].expr_t); in_expr->arguments_ = (yyvsp[-1].expr_array_t); (yyval.expr_t) = in_expr; } -#line 6388 "parser.cpp" +#line 6419 "parser.cpp" break; - case 320: /* in_expr: operand NOT IN '(' expr_array ')' */ -#line 2365 "parser.y" + case 321: /* in_expr: operand NOT IN '(' expr_array ')' */ +#line 2381 "parser.y" { infinity::InExpr* in_expr = new infinity::InExpr(false); in_expr->left_ = (yyvsp[-5].expr_t); in_expr->arguments_ = (yyvsp[-1].expr_array_t); (yyval.expr_t) = in_expr; } -#line 6399 "parser.cpp" +#line 6430 "parser.cpp" break; - case 321: /* case_expr: CASE expr case_check_array END */ -#line 2372 "parser.y" + case 322: /* case_expr: CASE expr case_check_array END */ +#line 2388 "parser.y" { infinity::CaseExpr* case_expr = new infinity::CaseExpr(); case_expr->expr_ = (yyvsp[-2].expr_t); case_expr->case_check_array_ = (yyvsp[-1].case_check_array_t); (yyval.expr_t) = case_expr; } -#line 6410 "parser.cpp" +#line 6441 "parser.cpp" break; - case 322: /* case_expr: CASE expr case_check_array ELSE expr END */ -#line 2378 "parser.y" + case 323: /* case_expr: CASE expr case_check_array ELSE expr END */ +#line 2394 "parser.y" { infinity::CaseExpr* case_expr = new infinity::CaseExpr(); case_expr->expr_ = (yyvsp[-4].expr_t); @@ -6418,32 +6449,32 @@ YYLTYPE yylloc = yyloc_default; case_expr->else_expr_ = (yyvsp[-1].expr_t); (yyval.expr_t) = case_expr; } -#line 6422 "parser.cpp" +#line 6453 "parser.cpp" break; - case 323: /* case_expr: CASE case_check_array END */ -#line 2385 "parser.y" + case 324: /* case_expr: CASE case_check_array END */ +#line 2401 "parser.y" { infinity::CaseExpr* case_expr = new infinity::CaseExpr(); case_expr->case_check_array_ = (yyvsp[-1].case_check_array_t); (yyval.expr_t) = case_expr; } -#line 6432 "parser.cpp" +#line 6463 "parser.cpp" break; - case 324: /* case_expr: CASE case_check_array ELSE expr END */ -#line 2390 "parser.y" + case 325: /* case_expr: CASE case_check_array ELSE expr END */ +#line 2406 "parser.y" { infinity::CaseExpr* case_expr = new infinity::CaseExpr(); case_expr->case_check_array_ = (yyvsp[-3].case_check_array_t); case_expr->else_expr_ = (yyvsp[-1].expr_t); (yyval.expr_t) = case_expr; } -#line 6443 "parser.cpp" +#line 6474 "parser.cpp" break; - case 325: /* case_check_array: WHEN expr THEN expr */ -#line 2397 "parser.y" + case 326: /* case_check_array: WHEN expr THEN expr */ +#line 2413 "parser.y" { (yyval.case_check_array_t) = new std::vector(); infinity::WhenThen* when_then_ptr = new infinity::WhenThen(); @@ -6451,11 +6482,11 @@ YYLTYPE yylloc = yyloc_default; when_then_ptr->then_ = (yyvsp[0].expr_t); (yyval.case_check_array_t)->emplace_back(when_then_ptr); } -#line 6455 "parser.cpp" +#line 6486 "parser.cpp" break; - case 326: /* case_check_array: case_check_array WHEN expr THEN expr */ -#line 2404 "parser.y" + case 327: /* case_check_array: case_check_array WHEN expr THEN expr */ +#line 2420 "parser.y" { infinity::WhenThen* when_then_ptr = new infinity::WhenThen(); when_then_ptr->when_ = (yyvsp[-2].expr_t); @@ -6463,11 +6494,11 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-4].case_check_array_t)->emplace_back(when_then_ptr); (yyval.case_check_array_t) = (yyvsp[-4].case_check_array_t); } -#line 6467 "parser.cpp" +#line 6498 "parser.cpp" break; - case 327: /* cast_expr: CAST '(' expr AS column_type ')' */ -#line 2412 "parser.y" + case 328: /* cast_expr: CAST '(' expr AS column_type ')' */ +#line 2428 "parser.y" { std::shared_ptr type_info_ptr{nullptr}; switch((yyvsp[-1].column_type_t).logical_type_) { @@ -6491,33 +6522,33 @@ YYLTYPE yylloc = yyloc_default; cast_expr->expr_ = (yyvsp[-3].expr_t); (yyval.expr_t) = cast_expr; } -#line 6495 "parser.cpp" +#line 6526 "parser.cpp" break; - case 328: /* subquery_expr: EXISTS '(' select_without_paren ')' */ -#line 2436 "parser.y" + case 329: /* subquery_expr: EXISTS '(' select_without_paren ')' */ +#line 2452 "parser.y" { infinity::SubqueryExpr* subquery_expr = new infinity::SubqueryExpr(); subquery_expr->subquery_type_ = infinity::SubqueryType::kExists; subquery_expr->select_ = (yyvsp[-1].select_stmt); (yyval.expr_t) = subquery_expr; } -#line 6506 "parser.cpp" +#line 6537 "parser.cpp" break; - case 329: /* subquery_expr: NOT EXISTS '(' select_without_paren ')' */ -#line 2442 "parser.y" + case 330: /* subquery_expr: NOT EXISTS '(' select_without_paren ')' */ +#line 2458 "parser.y" { infinity::SubqueryExpr* subquery_expr = new infinity::SubqueryExpr(); subquery_expr->subquery_type_ = infinity::SubqueryType::kNotExists; subquery_expr->select_ = (yyvsp[-1].select_stmt); (yyval.expr_t) = subquery_expr; } -#line 6517 "parser.cpp" +#line 6548 "parser.cpp" break; - case 330: /* subquery_expr: operand IN '(' select_without_paren ')' */ -#line 2448 "parser.y" + case 331: /* subquery_expr: operand IN '(' select_without_paren ')' */ +#line 2464 "parser.y" { infinity::SubqueryExpr* subquery_expr = new infinity::SubqueryExpr(); subquery_expr->subquery_type_ = infinity::SubqueryType::kIn; @@ -6525,11 +6556,11 @@ YYLTYPE yylloc = yyloc_default; subquery_expr->select_ = (yyvsp[-1].select_stmt); (yyval.expr_t) = subquery_expr; } -#line 6529 "parser.cpp" +#line 6560 "parser.cpp" break; - case 331: /* subquery_expr: operand NOT IN '(' select_without_paren ')' */ -#line 2455 "parser.y" + case 332: /* subquery_expr: operand NOT IN '(' select_without_paren ')' */ +#line 2471 "parser.y" { infinity::SubqueryExpr* subquery_expr = new infinity::SubqueryExpr(); subquery_expr->subquery_type_ = infinity::SubqueryType::kNotIn; @@ -6537,11 +6568,11 @@ YYLTYPE yylloc = yyloc_default; subquery_expr->select_ = (yyvsp[-1].select_stmt); (yyval.expr_t) = subquery_expr; } -#line 6541 "parser.cpp" +#line 6572 "parser.cpp" break; - case 332: /* column_expr: IDENTIFIER */ -#line 2463 "parser.y" + case 333: /* column_expr: IDENTIFIER */ +#line 2479 "parser.y" { infinity::ColumnExpr* column_expr = new infinity::ColumnExpr(); ParserHelper::ToLower((yyvsp[0].str_value)); @@ -6549,11 +6580,11 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[0].str_value)); (yyval.expr_t) = column_expr; } -#line 6553 "parser.cpp" +#line 6584 "parser.cpp" break; - case 333: /* column_expr: column_expr '.' IDENTIFIER */ -#line 2470 "parser.y" + case 334: /* column_expr: column_expr '.' IDENTIFIER */ +#line 2486 "parser.y" { infinity::ColumnExpr* column_expr = (infinity::ColumnExpr*)(yyvsp[-2].expr_t); ParserHelper::ToLower((yyvsp[0].str_value)); @@ -6561,21 +6592,21 @@ YYLTYPE yylloc = yyloc_default; free((yyvsp[0].str_value)); (yyval.expr_t) = column_expr; } -#line 6565 "parser.cpp" +#line 6596 "parser.cpp" break; - case 334: /* column_expr: '*' */ -#line 2477 "parser.y" + case 335: /* column_expr: '*' */ +#line 2493 "parser.y" { infinity::ColumnExpr* column_expr = new infinity::ColumnExpr(); column_expr->star_ = true; (yyval.expr_t) = column_expr; } -#line 6575 "parser.cpp" +#line 6606 "parser.cpp" break; - case 335: /* column_expr: column_expr '.' '*' */ -#line 2482 "parser.y" + case 336: /* column_expr: column_expr '.' '*' */ +#line 2498 "parser.y" { infinity::ColumnExpr* column_expr = (infinity::ColumnExpr*)(yyvsp[-2].expr_t); if(column_expr->star_) { @@ -6585,208 +6616,208 @@ YYLTYPE yylloc = yyloc_default; column_expr->star_ = true; (yyval.expr_t) = column_expr; } -#line 6589 "parser.cpp" +#line 6620 "parser.cpp" break; - case 336: /* constant_expr: STRING */ -#line 2492 "parser.y" + case 337: /* constant_expr: STRING */ +#line 2508 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kString); const_expr->str_value_ = (yyvsp[0].str_value); (yyval.const_expr_t) = const_expr; } -#line 6599 "parser.cpp" +#line 6630 "parser.cpp" break; - case 337: /* constant_expr: TRUE */ -#line 2497 "parser.y" + case 338: /* constant_expr: TRUE */ +#line 2513 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kBoolean); const_expr->bool_value_ = true; (yyval.const_expr_t) = const_expr; } -#line 6609 "parser.cpp" +#line 6640 "parser.cpp" break; - case 338: /* constant_expr: FALSE */ -#line 2502 "parser.y" + case 339: /* constant_expr: FALSE */ +#line 2518 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kBoolean); const_expr->bool_value_ = false; (yyval.const_expr_t) = const_expr; } -#line 6619 "parser.cpp" +#line 6650 "parser.cpp" break; - case 339: /* constant_expr: DOUBLE_VALUE */ -#line 2507 "parser.y" + case 340: /* constant_expr: DOUBLE_VALUE */ +#line 2523 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kDouble); const_expr->double_value_ = (yyvsp[0].double_value); (yyval.const_expr_t) = const_expr; } -#line 6629 "parser.cpp" +#line 6660 "parser.cpp" break; - case 340: /* constant_expr: LONG_VALUE */ -#line 2512 "parser.y" + case 341: /* constant_expr: LONG_VALUE */ +#line 2528 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kInteger); const_expr->integer_value_ = (yyvsp[0].long_value); (yyval.const_expr_t) = const_expr; } -#line 6639 "parser.cpp" +#line 6670 "parser.cpp" break; - case 341: /* constant_expr: DATE STRING */ -#line 2517 "parser.y" + case 342: /* constant_expr: DATE STRING */ +#line 2533 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kDate); const_expr->date_value_ = (yyvsp[0].str_value); (yyval.const_expr_t) = const_expr; } -#line 6649 "parser.cpp" +#line 6680 "parser.cpp" break; - case 342: /* constant_expr: TIME STRING */ -#line 2522 "parser.y" + case 343: /* constant_expr: TIME STRING */ +#line 2538 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kTime); const_expr->date_value_ = (yyvsp[0].str_value); (yyval.const_expr_t) = const_expr; } -#line 6659 "parser.cpp" +#line 6690 "parser.cpp" break; - case 343: /* constant_expr: DATETIME STRING */ -#line 2527 "parser.y" + case 344: /* constant_expr: DATETIME STRING */ +#line 2543 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kDateTime); const_expr->date_value_ = (yyvsp[0].str_value); (yyval.const_expr_t) = const_expr; } -#line 6669 "parser.cpp" +#line 6700 "parser.cpp" break; - case 344: /* constant_expr: TIMESTAMP STRING */ -#line 2532 "parser.y" + case 345: /* constant_expr: TIMESTAMP STRING */ +#line 2548 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kTimestamp); const_expr->date_value_ = (yyvsp[0].str_value); (yyval.const_expr_t) = const_expr; } -#line 6679 "parser.cpp" +#line 6710 "parser.cpp" break; - case 345: /* constant_expr: INTERVAL interval_expr */ -#line 2537 "parser.y" + case 346: /* constant_expr: INTERVAL interval_expr */ +#line 2553 "parser.y" { (yyval.const_expr_t) = (yyvsp[0].const_expr_t); } -#line 6687 "parser.cpp" +#line 6718 "parser.cpp" break; - case 346: /* constant_expr: interval_expr */ -#line 2540 "parser.y" + case 347: /* constant_expr: interval_expr */ +#line 2556 "parser.y" { (yyval.const_expr_t) = (yyvsp[0].const_expr_t); } -#line 6695 "parser.cpp" +#line 6726 "parser.cpp" break; - case 347: /* constant_expr: common_array_expr */ -#line 2543 "parser.y" + case 348: /* constant_expr: common_array_expr */ +#line 2559 "parser.y" { (yyval.const_expr_t) = (yyvsp[0].const_expr_t); } -#line 6703 "parser.cpp" +#line 6734 "parser.cpp" break; - case 348: /* common_array_expr: array_expr */ -#line 2547 "parser.y" + case 349: /* common_array_expr: array_expr */ +#line 2563 "parser.y" { (yyval.const_expr_t) = (yyvsp[0].const_expr_t); } -#line 6711 "parser.cpp" +#line 6742 "parser.cpp" break; - case 349: /* common_array_expr: subarray_array_expr */ -#line 2550 "parser.y" + case 350: /* common_array_expr: subarray_array_expr */ +#line 2566 "parser.y" { (yyval.const_expr_t) = (yyvsp[0].const_expr_t); } -#line 6719 "parser.cpp" +#line 6750 "parser.cpp" break; - case 350: /* common_array_expr: sparse_array_expr */ -#line 2553 "parser.y" + case 351: /* common_array_expr: sparse_array_expr */ +#line 2569 "parser.y" { (yyval.const_expr_t) = (yyvsp[0].const_expr_t); } -#line 6727 "parser.cpp" +#line 6758 "parser.cpp" break; - case 351: /* common_array_expr: empty_array_expr */ -#line 2556 "parser.y" + case 352: /* common_array_expr: empty_array_expr */ +#line 2572 "parser.y" { (yyval.const_expr_t) = (yyvsp[0].const_expr_t); } -#line 6735 "parser.cpp" +#line 6766 "parser.cpp" break; - case 352: /* subarray_array_expr: unclosed_subarray_array_expr ']' */ -#line 2560 "parser.y" + case 353: /* subarray_array_expr: unclosed_subarray_array_expr ']' */ +#line 2576 "parser.y" { (yyval.const_expr_t) = (yyvsp[-1].const_expr_t); } -#line 6743 "parser.cpp" +#line 6774 "parser.cpp" break; - case 353: /* unclosed_subarray_array_expr: '[' common_array_expr */ -#line 2564 "parser.y" + case 354: /* unclosed_subarray_array_expr: '[' common_array_expr */ +#line 2580 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kSubArrayArray); const_expr->sub_array_array_.emplace_back((yyvsp[0].const_expr_t)); (yyval.const_expr_t) = const_expr; } -#line 6753 "parser.cpp" +#line 6784 "parser.cpp" break; - case 354: /* unclosed_subarray_array_expr: unclosed_subarray_array_expr ',' common_array_expr */ -#line 2569 "parser.y" + case 355: /* unclosed_subarray_array_expr: unclosed_subarray_array_expr ',' common_array_expr */ +#line 2585 "parser.y" { (yyvsp[-2].const_expr_t)->sub_array_array_.emplace_back((yyvsp[0].const_expr_t)); (yyval.const_expr_t) = (yyvsp[-2].const_expr_t); } -#line 6762 "parser.cpp" +#line 6793 "parser.cpp" break; - case 355: /* sparse_array_expr: long_sparse_array_expr */ -#line 2574 "parser.y" + case 356: /* sparse_array_expr: long_sparse_array_expr */ +#line 2590 "parser.y" { (yyval.const_expr_t) = (yyvsp[0].const_expr_t); } -#line 6770 "parser.cpp" +#line 6801 "parser.cpp" break; - case 356: /* sparse_array_expr: double_sparse_array_expr */ -#line 2577 "parser.y" + case 357: /* sparse_array_expr: double_sparse_array_expr */ +#line 2593 "parser.y" { (yyval.const_expr_t) = (yyvsp[0].const_expr_t); } -#line 6778 "parser.cpp" +#line 6809 "parser.cpp" break; - case 357: /* long_sparse_array_expr: unclosed_long_sparse_array_expr ']' */ -#line 2581 "parser.y" + case 358: /* long_sparse_array_expr: unclosed_long_sparse_array_expr ']' */ +#line 2597 "parser.y" { (yyval.const_expr_t) = (yyvsp[-1].const_expr_t); } -#line 6786 "parser.cpp" +#line 6817 "parser.cpp" break; - case 358: /* unclosed_long_sparse_array_expr: '[' int_sparse_ele */ -#line 2585 "parser.y" + case 359: /* unclosed_long_sparse_array_expr: '[' int_sparse_ele */ +#line 2601 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kLongSparseArray); const_expr->long_sparse_array_.first.emplace_back((yyvsp[0].int_sparse_ele_t)->first); @@ -6794,30 +6825,30 @@ YYLTYPE yylloc = yyloc_default; delete (yyvsp[0].int_sparse_ele_t); (yyval.const_expr_t) = const_expr; } -#line 6798 "parser.cpp" +#line 6829 "parser.cpp" break; - case 359: /* unclosed_long_sparse_array_expr: unclosed_long_sparse_array_expr ',' int_sparse_ele */ -#line 2592 "parser.y" + case 360: /* unclosed_long_sparse_array_expr: unclosed_long_sparse_array_expr ',' int_sparse_ele */ +#line 2608 "parser.y" { (yyvsp[-2].const_expr_t)->long_sparse_array_.first.emplace_back((yyvsp[0].int_sparse_ele_t)->first); (yyvsp[-2].const_expr_t)->long_sparse_array_.second.emplace_back((yyvsp[0].int_sparse_ele_t)->second); delete (yyvsp[0].int_sparse_ele_t); (yyval.const_expr_t) = (yyvsp[-2].const_expr_t); } -#line 6809 "parser.cpp" +#line 6840 "parser.cpp" break; - case 360: /* double_sparse_array_expr: unclosed_double_sparse_array_expr ']' */ -#line 2599 "parser.y" + case 361: /* double_sparse_array_expr: unclosed_double_sparse_array_expr ']' */ +#line 2615 "parser.y" { (yyval.const_expr_t) = (yyvsp[-1].const_expr_t); } -#line 6817 "parser.cpp" +#line 6848 "parser.cpp" break; - case 361: /* unclosed_double_sparse_array_expr: '[' float_sparse_ele */ -#line 2603 "parser.y" + case 362: /* unclosed_double_sparse_array_expr: '[' float_sparse_ele */ +#line 2619 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kDoubleSparseArray); const_expr->double_sparse_array_.first.emplace_back((yyvsp[0].float_sparse_ele_t)->first); @@ -6825,266 +6856,266 @@ YYLTYPE yylloc = yyloc_default; delete (yyvsp[0].float_sparse_ele_t); (yyval.const_expr_t) = const_expr; } -#line 6829 "parser.cpp" +#line 6860 "parser.cpp" break; - case 362: /* unclosed_double_sparse_array_expr: unclosed_double_sparse_array_expr ',' float_sparse_ele */ -#line 2610 "parser.y" + case 363: /* unclosed_double_sparse_array_expr: unclosed_double_sparse_array_expr ',' float_sparse_ele */ +#line 2626 "parser.y" { (yyvsp[-2].const_expr_t)->double_sparse_array_.first.emplace_back((yyvsp[0].float_sparse_ele_t)->first); (yyvsp[-2].const_expr_t)->double_sparse_array_.second.emplace_back((yyvsp[0].float_sparse_ele_t)->second); delete (yyvsp[0].float_sparse_ele_t); (yyval.const_expr_t) = (yyvsp[-2].const_expr_t); } -#line 6840 "parser.cpp" +#line 6871 "parser.cpp" break; - case 363: /* empty_array_expr: '[' ']' */ -#line 2617 "parser.y" + case 364: /* empty_array_expr: '[' ']' */ +#line 2633 "parser.y" { (yyval.const_expr_t) = new infinity::ConstantExpr(infinity::LiteralType::kEmptyArray); } -#line 6848 "parser.cpp" +#line 6879 "parser.cpp" break; - case 364: /* int_sparse_ele: LONG_VALUE ':' LONG_VALUE */ -#line 2621 "parser.y" + case 365: /* int_sparse_ele: LONG_VALUE ':' LONG_VALUE */ +#line 2637 "parser.y" { (yyval.int_sparse_ele_t) = new std::pair{(yyvsp[-2].long_value), (yyvsp[0].long_value)}; } -#line 6856 "parser.cpp" +#line 6887 "parser.cpp" break; - case 365: /* float_sparse_ele: LONG_VALUE ':' DOUBLE_VALUE */ -#line 2625 "parser.y" + case 366: /* float_sparse_ele: LONG_VALUE ':' DOUBLE_VALUE */ +#line 2641 "parser.y" { (yyval.float_sparse_ele_t) = new std::pair{(yyvsp[-2].long_value), (yyvsp[0].double_value)}; } -#line 6864 "parser.cpp" +#line 6895 "parser.cpp" break; - case 366: /* array_expr: long_array_expr */ -#line 2629 "parser.y" + case 367: /* array_expr: long_array_expr */ +#line 2645 "parser.y" { (yyval.const_expr_t) = (yyvsp[0].const_expr_t); } -#line 6872 "parser.cpp" +#line 6903 "parser.cpp" break; - case 367: /* array_expr: double_array_expr */ -#line 2632 "parser.y" + case 368: /* array_expr: double_array_expr */ +#line 2648 "parser.y" { (yyval.const_expr_t) = (yyvsp[0].const_expr_t); } -#line 6880 "parser.cpp" +#line 6911 "parser.cpp" break; - case 368: /* long_array_expr: unclosed_long_array_expr ']' */ -#line 2636 "parser.y" + case 369: /* long_array_expr: unclosed_long_array_expr ']' */ +#line 2652 "parser.y" { (yyval.const_expr_t) = (yyvsp[-1].const_expr_t); } -#line 6888 "parser.cpp" +#line 6919 "parser.cpp" break; - case 369: /* unclosed_long_array_expr: '[' LONG_VALUE */ -#line 2640 "parser.y" + case 370: /* unclosed_long_array_expr: '[' LONG_VALUE */ +#line 2656 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kIntegerArray); const_expr->long_array_.emplace_back((yyvsp[0].long_value)); (yyval.const_expr_t) = const_expr; } -#line 6898 "parser.cpp" +#line 6929 "parser.cpp" break; - case 370: /* unclosed_long_array_expr: unclosed_long_array_expr ',' LONG_VALUE */ -#line 2645 "parser.y" + case 371: /* unclosed_long_array_expr: unclosed_long_array_expr ',' LONG_VALUE */ +#line 2661 "parser.y" { (yyvsp[-2].const_expr_t)->long_array_.emplace_back((yyvsp[0].long_value)); (yyval.const_expr_t) = (yyvsp[-2].const_expr_t); } -#line 6907 "parser.cpp" +#line 6938 "parser.cpp" break; - case 371: /* double_array_expr: unclosed_double_array_expr ']' */ -#line 2650 "parser.y" + case 372: /* double_array_expr: unclosed_double_array_expr ']' */ +#line 2666 "parser.y" { (yyval.const_expr_t) = (yyvsp[-1].const_expr_t); } -#line 6915 "parser.cpp" +#line 6946 "parser.cpp" break; - case 372: /* unclosed_double_array_expr: '[' DOUBLE_VALUE */ -#line 2654 "parser.y" + case 373: /* unclosed_double_array_expr: '[' DOUBLE_VALUE */ +#line 2670 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kDoubleArray); const_expr->double_array_.emplace_back((yyvsp[0].double_value)); (yyval.const_expr_t) = const_expr; } -#line 6925 "parser.cpp" +#line 6956 "parser.cpp" break; - case 373: /* unclosed_double_array_expr: unclosed_double_array_expr ',' DOUBLE_VALUE */ -#line 2659 "parser.y" + case 374: /* unclosed_double_array_expr: unclosed_double_array_expr ',' DOUBLE_VALUE */ +#line 2675 "parser.y" { (yyvsp[-2].const_expr_t)->double_array_.emplace_back((yyvsp[0].double_value)); (yyval.const_expr_t) = (yyvsp[-2].const_expr_t); } -#line 6934 "parser.cpp" +#line 6965 "parser.cpp" break; - case 374: /* interval_expr: LONG_VALUE SECONDS */ -#line 2664 "parser.y" + case 375: /* interval_expr: LONG_VALUE SECONDS */ +#line 2680 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kInterval); const_expr->interval_type_ = infinity::TimeUnit::kSecond; const_expr->integer_value_ = (yyvsp[-1].long_value); (yyval.const_expr_t) = const_expr; } -#line 6945 "parser.cpp" +#line 6976 "parser.cpp" break; - case 375: /* interval_expr: LONG_VALUE SECOND */ -#line 2670 "parser.y" + case 376: /* interval_expr: LONG_VALUE SECOND */ +#line 2686 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kInterval); const_expr->interval_type_ = infinity::TimeUnit::kSecond; const_expr->integer_value_ = (yyvsp[-1].long_value); (yyval.const_expr_t) = const_expr; } -#line 6956 "parser.cpp" +#line 6987 "parser.cpp" break; - case 376: /* interval_expr: LONG_VALUE MINUTES */ -#line 2676 "parser.y" + case 377: /* interval_expr: LONG_VALUE MINUTES */ +#line 2692 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kInterval); const_expr->interval_type_ = infinity::TimeUnit::kMinute; const_expr->integer_value_ = (yyvsp[-1].long_value); (yyval.const_expr_t) = const_expr; } -#line 6967 "parser.cpp" +#line 6998 "parser.cpp" break; - case 377: /* interval_expr: LONG_VALUE MINUTE */ -#line 2682 "parser.y" + case 378: /* interval_expr: LONG_VALUE MINUTE */ +#line 2698 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kInterval); const_expr->interval_type_ = infinity::TimeUnit::kMinute; const_expr->integer_value_ = (yyvsp[-1].long_value); (yyval.const_expr_t) = const_expr; } -#line 6978 "parser.cpp" +#line 7009 "parser.cpp" break; - case 378: /* interval_expr: LONG_VALUE HOURS */ -#line 2688 "parser.y" + case 379: /* interval_expr: LONG_VALUE HOURS */ +#line 2704 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kInterval); const_expr->interval_type_ = infinity::TimeUnit::kHour; const_expr->integer_value_ = (yyvsp[-1].long_value); (yyval.const_expr_t) = const_expr; } -#line 6989 "parser.cpp" +#line 7020 "parser.cpp" break; - case 379: /* interval_expr: LONG_VALUE HOUR */ -#line 2694 "parser.y" + case 380: /* interval_expr: LONG_VALUE HOUR */ +#line 2710 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kInterval); const_expr->interval_type_ = infinity::TimeUnit::kHour; const_expr->integer_value_ = (yyvsp[-1].long_value); (yyval.const_expr_t) = const_expr; } -#line 7000 "parser.cpp" +#line 7031 "parser.cpp" break; - case 380: /* interval_expr: LONG_VALUE DAYS */ -#line 2700 "parser.y" + case 381: /* interval_expr: LONG_VALUE DAYS */ +#line 2716 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kInterval); const_expr->interval_type_ = infinity::TimeUnit::kDay; const_expr->integer_value_ = (yyvsp[-1].long_value); (yyval.const_expr_t) = const_expr; } -#line 7011 "parser.cpp" +#line 7042 "parser.cpp" break; - case 381: /* interval_expr: LONG_VALUE DAY */ -#line 2706 "parser.y" + case 382: /* interval_expr: LONG_VALUE DAY */ +#line 2722 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kInterval); const_expr->interval_type_ = infinity::TimeUnit::kDay; const_expr->integer_value_ = (yyvsp[-1].long_value); (yyval.const_expr_t) = const_expr; } -#line 7022 "parser.cpp" +#line 7053 "parser.cpp" break; - case 382: /* interval_expr: LONG_VALUE MONTHS */ -#line 2712 "parser.y" + case 383: /* interval_expr: LONG_VALUE MONTHS */ +#line 2728 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kInterval); const_expr->interval_type_ = infinity::TimeUnit::kMonth; const_expr->integer_value_ = (yyvsp[-1].long_value); (yyval.const_expr_t) = const_expr; } -#line 7033 "parser.cpp" +#line 7064 "parser.cpp" break; - case 383: /* interval_expr: LONG_VALUE MONTH */ -#line 2718 "parser.y" + case 384: /* interval_expr: LONG_VALUE MONTH */ +#line 2734 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kInterval); const_expr->interval_type_ = infinity::TimeUnit::kMonth; const_expr->integer_value_ = (yyvsp[-1].long_value); (yyval.const_expr_t) = const_expr; } -#line 7044 "parser.cpp" +#line 7075 "parser.cpp" break; - case 384: /* interval_expr: LONG_VALUE YEARS */ -#line 2724 "parser.y" + case 385: /* interval_expr: LONG_VALUE YEARS */ +#line 2740 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kInterval); const_expr->interval_type_ = infinity::TimeUnit::kYear; const_expr->integer_value_ = (yyvsp[-1].long_value); (yyval.const_expr_t) = const_expr; } -#line 7055 "parser.cpp" +#line 7086 "parser.cpp" break; - case 385: /* interval_expr: LONG_VALUE YEAR */ -#line 2730 "parser.y" + case 386: /* interval_expr: LONG_VALUE YEAR */ +#line 2746 "parser.y" { infinity::ConstantExpr* const_expr = new infinity::ConstantExpr(infinity::LiteralType::kInterval); const_expr->interval_type_ = infinity::TimeUnit::kYear; const_expr->integer_value_ = (yyvsp[-1].long_value); (yyval.const_expr_t) = const_expr; } -#line 7066 "parser.cpp" +#line 7097 "parser.cpp" break; - case 386: /* copy_option_list: copy_option */ -#line 2741 "parser.y" + case 387: /* copy_option_list: copy_option */ +#line 2757 "parser.y" { (yyval.copy_option_array) = new std::vector(); (yyval.copy_option_array)->push_back((yyvsp[0].copy_option_t)); } -#line 7075 "parser.cpp" +#line 7106 "parser.cpp" break; - case 387: /* copy_option_list: copy_option_list ',' copy_option */ -#line 2745 "parser.y" + case 388: /* copy_option_list: copy_option_list ',' copy_option */ +#line 2761 "parser.y" { (yyvsp[-2].copy_option_array)->push_back((yyvsp[0].copy_option_t)); (yyval.copy_option_array) = (yyvsp[-2].copy_option_array); } -#line 7084 "parser.cpp" +#line 7115 "parser.cpp" break; - case 388: /* copy_option: FORMAT IDENTIFIER */ -#line 2750 "parser.y" + case 389: /* copy_option: FORMAT IDENTIFIER */ +#line 2766 "parser.y" { (yyval.copy_option_t) = new infinity::CopyOption(); (yyval.copy_option_t)->option_type_ = infinity::CopyOptionType::kFormat; @@ -7110,11 +7141,11 @@ YYLTYPE yylloc = yyloc_default; YYERROR; } } -#line 7114 "parser.cpp" +#line 7145 "parser.cpp" break; - case 389: /* copy_option: DELIMITER STRING */ -#line 2775 "parser.y" + case 390: /* copy_option: DELIMITER STRING */ +#line 2791 "parser.y" { (yyval.copy_option_t) = new infinity::CopyOption(); (yyval.copy_option_t)->option_type_ = infinity::CopyOptionType::kDelimiter; @@ -7125,53 +7156,53 @@ YYLTYPE yylloc = yyloc_default; } free((yyvsp[0].str_value)); } -#line 7129 "parser.cpp" +#line 7160 "parser.cpp" break; - case 390: /* copy_option: HEADER */ -#line 2785 "parser.y" + case 391: /* copy_option: HEADER */ +#line 2801 "parser.y" { (yyval.copy_option_t) = new infinity::CopyOption(); (yyval.copy_option_t)->option_type_ = infinity::CopyOptionType::kHeader; (yyval.copy_option_t)->header_ = true; } -#line 7139 "parser.cpp" +#line 7170 "parser.cpp" break; - case 391: /* file_path: STRING */ -#line 2791 "parser.y" + case 392: /* file_path: STRING */ +#line 2807 "parser.y" { (yyval.str_value) = (yyvsp[0].str_value); } -#line 7147 "parser.cpp" +#line 7178 "parser.cpp" break; - case 392: /* if_exists: IF EXISTS */ -#line 2795 "parser.y" + case 393: /* if_exists: IF EXISTS */ +#line 2811 "parser.y" { (yyval.bool_value) = true; } -#line 7153 "parser.cpp" +#line 7184 "parser.cpp" break; - case 393: /* if_exists: %empty */ -#line 2796 "parser.y" + case 394: /* if_exists: %empty */ +#line 2812 "parser.y" { (yyval.bool_value) = false; } -#line 7159 "parser.cpp" +#line 7190 "parser.cpp" break; - case 394: /* if_not_exists: IF NOT EXISTS */ -#line 2798 "parser.y" + case 395: /* if_not_exists: IF NOT EXISTS */ +#line 2814 "parser.y" { (yyval.bool_value) = true; } -#line 7165 "parser.cpp" +#line 7196 "parser.cpp" break; - case 395: /* if_not_exists: %empty */ -#line 2799 "parser.y" + case 396: /* if_not_exists: %empty */ +#line 2815 "parser.y" { (yyval.bool_value) = false; } -#line 7171 "parser.cpp" +#line 7202 "parser.cpp" break; - case 398: /* if_not_exists_info: if_not_exists IDENTIFIER */ -#line 2814 "parser.y" + case 399: /* if_not_exists_info: if_not_exists IDENTIFIER */ +#line 2830 "parser.y" { (yyval.if_not_exists_info_t) = new infinity::IfNotExistsInfo(); (yyval.if_not_exists_info_t)->exists_ = true; @@ -7180,79 +7211,79 @@ YYLTYPE yylloc = yyloc_default; (yyval.if_not_exists_info_t)->info_ = (yyvsp[0].str_value); free((yyvsp[0].str_value)); } -#line 7184 "parser.cpp" +#line 7215 "parser.cpp" break; - case 399: /* if_not_exists_info: %empty */ -#line 2822 "parser.y" + case 400: /* if_not_exists_info: %empty */ +#line 2838 "parser.y" { (yyval.if_not_exists_info_t) = new infinity::IfNotExistsInfo(); } -#line 7192 "parser.cpp" +#line 7223 "parser.cpp" break; - case 400: /* with_index_param_list: WITH '(' index_param_list ')' */ -#line 2826 "parser.y" + case 401: /* with_index_param_list: WITH '(' index_param_list ')' */ +#line 2842 "parser.y" { (yyval.with_index_param_list_t) = (yyvsp[-1].index_param_list_t); } -#line 7200 "parser.cpp" +#line 7231 "parser.cpp" break; - case 401: /* with_index_param_list: %empty */ -#line 2829 "parser.y" + case 402: /* with_index_param_list: %empty */ +#line 2845 "parser.y" { (yyval.with_index_param_list_t) = new std::vector(); } -#line 7208 "parser.cpp" +#line 7239 "parser.cpp" break; - case 402: /* optional_table_properties_list: PROPERTIES '(' index_param_list ')' */ -#line 2833 "parser.y" + case 403: /* optional_table_properties_list: PROPERTIES '(' index_param_list ')' */ +#line 2849 "parser.y" { (yyval.with_index_param_list_t) = (yyvsp[-1].index_param_list_t); } -#line 7216 "parser.cpp" +#line 7247 "parser.cpp" break; - case 403: /* optional_table_properties_list: %empty */ -#line 2836 "parser.y" + case 404: /* optional_table_properties_list: %empty */ +#line 2852 "parser.y" { (yyval.with_index_param_list_t) = nullptr; } -#line 7224 "parser.cpp" +#line 7255 "parser.cpp" break; - case 404: /* index_param_list: index_param */ -#line 2840 "parser.y" + case 405: /* index_param_list: index_param */ +#line 2856 "parser.y" { (yyval.index_param_list_t) = new std::vector(); (yyval.index_param_list_t)->push_back((yyvsp[0].index_param_t)); } -#line 7233 "parser.cpp" +#line 7264 "parser.cpp" break; - case 405: /* index_param_list: index_param_list ',' index_param */ -#line 2844 "parser.y" + case 406: /* index_param_list: index_param_list ',' index_param */ +#line 2860 "parser.y" { (yyvsp[-2].index_param_list_t)->push_back((yyvsp[0].index_param_t)); (yyval.index_param_list_t) = (yyvsp[-2].index_param_list_t); } -#line 7242 "parser.cpp" +#line 7273 "parser.cpp" break; - case 406: /* index_param: IDENTIFIER */ -#line 2849 "parser.y" + case 407: /* index_param: IDENTIFIER */ +#line 2865 "parser.y" { (yyval.index_param_t) = new infinity::InitParameter(); (yyval.index_param_t)->param_name_ = (yyvsp[0].str_value); free((yyvsp[0].str_value)); } -#line 7252 "parser.cpp" +#line 7283 "parser.cpp" break; - case 407: /* index_param: IDENTIFIER '=' IDENTIFIER */ -#line 2854 "parser.y" + case 408: /* index_param: IDENTIFIER '=' IDENTIFIER */ +#line 2870 "parser.y" { (yyval.index_param_t) = new infinity::InitParameter(); (yyval.index_param_t)->param_name_ = (yyvsp[-2].str_value); @@ -7261,11 +7292,11 @@ YYLTYPE yylloc = yyloc_default; (yyval.index_param_t)->param_value_ = (yyvsp[0].str_value); free((yyvsp[0].str_value)); } -#line 7265 "parser.cpp" +#line 7296 "parser.cpp" break; - case 408: /* index_param: IDENTIFIER '=' LONG_VALUE */ -#line 2862 "parser.y" + case 409: /* index_param: IDENTIFIER '=' LONG_VALUE */ +#line 2878 "parser.y" { (yyval.index_param_t) = new infinity::InitParameter(); (yyval.index_param_t)->param_name_ = (yyvsp[-2].str_value); @@ -7273,11 +7304,11 @@ YYLTYPE yylloc = yyloc_default; (yyval.index_param_t)->param_value_ = std::to_string((yyvsp[0].long_value)); } -#line 7277 "parser.cpp" +#line 7308 "parser.cpp" break; - case 409: /* index_param: IDENTIFIER '=' DOUBLE_VALUE */ -#line 2869 "parser.y" + case 410: /* index_param: IDENTIFIER '=' DOUBLE_VALUE */ +#line 2885 "parser.y" { (yyval.index_param_t) = new infinity::InitParameter(); (yyval.index_param_t)->param_name_ = (yyvsp[-2].str_value); @@ -7285,11 +7316,11 @@ YYLTYPE yylloc = yyloc_default; (yyval.index_param_t)->param_value_ = std::to_string((yyvsp[0].double_value)); } -#line 7289 "parser.cpp" +#line 7320 "parser.cpp" break; - case 410: /* index_info_list: '(' identifier_array ')' USING IDENTIFIER with_index_param_list */ -#line 2880 "parser.y" + case 411: /* index_info_list: '(' identifier_array ')' USING IDENTIFIER with_index_param_list */ +#line 2896 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); infinity::IndexType index_type = infinity::IndexType::kInvalid; @@ -7338,11 +7369,11 @@ YYLTYPE yylloc = yyloc_default; } delete (yyvsp[-4].identifier_array_t); } -#line 7342 "parser.cpp" +#line 7373 "parser.cpp" break; - case 411: /* index_info_list: index_info_list '(' identifier_array ')' USING IDENTIFIER with_index_param_list */ -#line 2928 "parser.y" + case 412: /* index_info_list: index_info_list '(' identifier_array ')' USING IDENTIFIER with_index_param_list */ +#line 2944 "parser.y" { ParserHelper::ToLower((yyvsp[-1].str_value)); infinity::IndexType index_type = infinity::IndexType::kInvalid; @@ -7392,11 +7423,11 @@ YYLTYPE yylloc = yyloc_default; } delete (yyvsp[-4].identifier_array_t); } -#line 7396 "parser.cpp" +#line 7427 "parser.cpp" break; - case 412: /* index_info_list: '(' identifier_array ')' */ -#line 2977 "parser.y" + case 413: /* index_info_list: '(' identifier_array ')' */ +#line 2993 "parser.y" { infinity::IndexType index_type = infinity::IndexType::kSecondary; size_t index_count = (yyvsp[-1].identifier_array_t)->size(); @@ -7410,11 +7441,11 @@ YYLTYPE yylloc = yyloc_default; } delete (yyvsp[-1].identifier_array_t); } -#line 7414 "parser.cpp" +#line 7445 "parser.cpp" break; -#line 7418 "parser.cpp" +#line 7449 "parser.cpp" default: break; } @@ -7643,7 +7674,7 @@ YYLTYPE yylloc = yyloc_default; return yyresult; } -#line 2991 "parser.y" +#line 3007 "parser.y" void diff --git a/src/parser/parser.y b/src/parser/parser.y index dbf8f703a2..a4eb8de8d3 100644 --- a/src/parser/parser.y +++ b/src/parser/parser.y @@ -1727,6 +1727,22 @@ show_statement: SHOW DATABASES { $$->index_name_ = $5; free($5); }; +| SHOW TABLE table_name INDEX IDENTIFIER SEGMENT LONG_VALUE { + $$ = new infinity::ShowStatement(); + $$->show_type_ = infinity::ShowStmtType::kIndexSegment; + if($3->schema_name_ptr_ != nullptr) { + $$->schema_name_ = $3->schema_name_ptr_; + free($3->schema_name_ptr_); + } + $$->table_name_ = $3->table_name_ptr_; + free($3->table_name_ptr_); + delete $3; + + $$->index_name_ = $5; + free($5); + + $$->segment_id_ = $7; +}; /* * FLUSH STATEMENT diff --git a/src/parser/statement/show_statement.cpp b/src/parser/statement/show_statement.cpp index 7a1a664af8..bd8773268b 100644 --- a/src/parser/statement/show_statement.cpp +++ b/src/parser/statement/show_statement.cpp @@ -32,6 +32,10 @@ std::string ShowStatement::ToString() const { ss << "Show index, database: " << schema_name_; break; } + case ShowStmtType::kIndexSegment: { + ss << "Show index segment, database: " << schema_name_ << ", table_name: " << table_name_; + break; + } case ShowStmtType::kTables: { ss << "Show tables, database: " << schema_name_; break; diff --git a/src/parser/statement/show_statement.h b/src/parser/statement/show_statement.h index e94ceccdd6..da610205f7 100644 --- a/src/parser/statement/show_statement.h +++ b/src/parser/statement/show_statement.h @@ -41,6 +41,7 @@ enum class ShowStmtType { kGlobalVariable, kGlobalVariables, kConfig, + kIndexSegment, }; class ShowStatement : public BaseStatement { diff --git a/src/planner/explain_ast.cpp b/src/planner/explain_ast.cpp index 2fa23bcd5a..d30f5ca6f8 100644 --- a/src/planner/explain_ast.cpp +++ b/src/planner/explain_ast.cpp @@ -509,6 +509,19 @@ void ExplainAST::BuildShow(const ShowStatement *show_statement, SharedPtremplace_back(MakeShared(index_name)); break; } + case ShowStmtType::kIndexSegment: { + result->emplace_back(MakeShared("SHOW INDEX SEGMENT: ")); + intent_size += 2; + String schema_name = String(intent_size, ' ') + "database: " + show_statement->schema_name_; + result->emplace_back(MakeShared(schema_name)); + String table_name = String(intent_size, ' ') + "table: " + show_statement->table_name_; + result->emplace_back(MakeShared(table_name)); + String index_name = String(intent_size, ' ') + "index: " + show_statement->index_name_.value(); + result->emplace_back(MakeShared(index_name)); + String index_segment = String(intent_size, ' ') + "index: " + std::to_string(show_statement->segment_id_.value()); + result->emplace_back(MakeShared(index_segment)); + break; + } case ShowStmtType::kColumns: { result->emplace_back(MakeShared("SHOW COLUMNS: ")); intent_size += 2; @@ -539,22 +552,61 @@ void ExplainAST::BuildShow(const ShowStatement *show_statement, SharedPtremplace_back(MakeShared("SHOW SEGMENTS: ")); + intent_size += 2; + String schema_name = String(intent_size, ' ') + "database: " + show_statement->schema_name_; + result->emplace_back(MakeShared(schema_name)); + String table_name = String(intent_size, ' ') + "table: " + show_statement->table_name_; + result->emplace_back(MakeShared(table_name)); break; } case ShowStmtType::kSegment: { result->emplace_back(MakeShared("SHOW SEGMENT: ")); + intent_size += 2; + String schema_name = String(intent_size, ' ') + "database: " + show_statement->schema_name_; + result->emplace_back(MakeShared(schema_name)); + String table_name = String(intent_size, ' ') + "table: " + show_statement->table_name_; + result->emplace_back(MakeShared(table_name)); + String segment_info = String(intent_size, ' ') + "segment: " + std::to_string(show_statement->segment_id_.value()); + result->emplace_back(MakeShared(segment_info)); break; } case ShowStmtType::kBlocks: { result->emplace_back(MakeShared("SHOW BLOCKS: ")); + intent_size += 2; + String schema_name = String(intent_size, ' ') + "database: " + show_statement->schema_name_; + result->emplace_back(MakeShared(schema_name)); + String table_name = String(intent_size, ' ') + "table: " + show_statement->table_name_; + result->emplace_back(MakeShared(table_name)); + String segment_info = String(intent_size, ' ') + "segment: " + std::to_string(show_statement->segment_id_.value()); + result->emplace_back(MakeShared(segment_info)); break; } case ShowStmtType::kBlock: { result->emplace_back(MakeShared("SHOW BLOCK: ")); + intent_size += 2; + String schema_name = String(intent_size, ' ') + "database: " + show_statement->schema_name_; + result->emplace_back(MakeShared(schema_name)); + String table_name = String(intent_size, ' ') + "table: " + show_statement->table_name_; + result->emplace_back(MakeShared(table_name)); + String segment_info = String(intent_size, ' ') + "segment: " + std::to_string(show_statement->segment_id_.value()); + result->emplace_back(MakeShared(segment_info)); + String block_info = String(intent_size, ' ') + "block: " + std::to_string(show_statement->block_id_.value()); + result->emplace_back(MakeShared(block_info)); break; } case ShowStmtType::kBlockColumn: { result->emplace_back(MakeShared("SHOW BLOCK COLUMN: ")); + intent_size += 2; + String schema_name = String(intent_size, ' ') + "database: " + show_statement->schema_name_; + result->emplace_back(MakeShared(schema_name)); + String table_name = String(intent_size, ' ') + "table: " + show_statement->table_name_; + result->emplace_back(MakeShared(table_name)); + String segment_info = String(intent_size, ' ') + "segment: " + std::to_string(show_statement->segment_id_.value()); + result->emplace_back(MakeShared(segment_info)); + String block_info = String(intent_size, ' ') + "block: " + std::to_string(show_statement->block_id_.value()); + result->emplace_back(MakeShared(block_info)); + String column_info = String(intent_size, ' ') + "column: " + std::to_string(show_statement->column_id_.value()); + result->emplace_back(MakeShared(column_info)); break; } case ShowStmtType::kIndexes: { @@ -562,6 +614,8 @@ void ExplainAST::BuildShow(const ShowStatement *show_statement, SharedPtrschema_name_; result->emplace_back(MakeShared(schema_name)); + String table_name = String(intent_size, ' ') + "table: " + show_statement->table_name_; + result->emplace_back(MakeShared(table_name)); break; } case ShowStmtType::kConfigs: { diff --git a/src/planner/explain_logical_plan.cpp b/src/planner/explain_logical_plan.cpp index fc86b6e6a8..0f748bd057 100644 --- a/src/planner/explain_logical_plan.cpp +++ b/src/planner/explain_logical_plan.cpp @@ -1289,9 +1289,27 @@ void ExplainLogicalPlan::Explain(const LogicalShow *show_node, SharedPtrnode_id()); + show_str += ")"; + result->emplace_back(MakeShared(show_str)); + + String output_columns_str = String(intent_size, ' '); + output_columns_str += " - output columns: [name, value]"; + result->emplace_back(MakeShared(output_columns_str)); + break; + } + case ShowType::kShowIndexSegment: { + String show_str; + if (intent_size != 0) { + show_str = String(intent_size - 2, ' '); + show_str += "-> SHOW INDEX SEGMENT "; + } else { + show_str = "SHOW INDEX SEGMENT "; } show_str += "("; show_str += std::to_string(show_node->node_id()); diff --git a/src/planner/logical_planner.cpp b/src/planner/logical_planner.cpp index 9c9c016c27..a1bfe39082 100644 --- a/src/planner/logical_planner.cpp +++ b/src/planner/logical_planner.cpp @@ -1037,6 +1037,9 @@ Status LogicalPlanner::BuildShow(ShowStatement *statement, SharedPtr &bind_context_ptr) { + SharedPtr logical_show = MakeShared(bind_context_ptr->GetNewLogicalNodeId(), + ShowType::kShowIndexSegment, + query_context_ptr_->schema_name(), + statement->table_name_, + bind_context_ptr->GenerateTableIndex(), + statement->segment_id_, + None, + None, + statement->index_name_); + this->logical_plan_ = logical_show; + return Status::OK(); +} + Status LogicalPlanner::BuildShowDatabases(const ShowStatement *, SharedPtr &bind_context_ptr) { String object_name; SharedPtr logical_show = MakeShared(bind_context_ptr->GetNewLogicalNodeId(), diff --git a/src/planner/logical_planner.cppm b/src/planner/logical_planner.cppm index 863df0e7ed..51f5eb1d05 100644 --- a/src/planner/logical_planner.cppm +++ b/src/planner/logical_planner.cppm @@ -116,9 +116,13 @@ public: Status BuildShow(ShowStatement *statement, SharedPtr &bind_context_ptr); Status BuildShowDatabase(const ShowStatement *statement, SharedPtr &bind_context_ptr); + Status BuildShowTable(const ShowStatement *statement, SharedPtr &bind_context_ptr); + Status BuildShowIndex(const ShowStatement *statement, SharedPtr &bind_context_ptr); + Status BuildShowIndexSegment(const ShowStatement *statement, SharedPtr &bind_context_ptr); + Status BuildShowColumns(const ShowStatement *statement, SharedPtr &bind_context_ptr); Status BuildShowSegments(const ShowStatement *statement, SharedPtr &bind_context_ptr); diff --git a/src/planner/node/logical_show.cpp b/src/planner/node/logical_show.cpp index 9522331fdd..6da63e026b 100644 --- a/src/planner/node/logical_show.cpp +++ b/src/planner/node/logical_show.cpp @@ -34,6 +34,8 @@ String ToString(ShowType type) { return "Show table"; case ShowType::kShowIndex: return "Show index"; + case ShowType::kShowIndexSegment: + return "Show index segment"; case ShowType::kShowTables: return "Show tables"; case ShowType::kShowViews: diff --git a/src/planner/node/logical_show.cppm b/src/planner/node/logical_show.cppm index ba395a1791..4ad030ee93 100644 --- a/src/planner/node/logical_show.cppm +++ b/src/planner/node/logical_show.cppm @@ -30,6 +30,7 @@ export enum class ShowType { kShowDatabase, kShowTable, kShowIndex, + kShowIndexSegment, kShowDatabases, kShowTables, kShowViews,