| 272 | } |
| 273 | |
| 274 | Result<QueryInfo::Ptr> SQLEngineImpl::parse_sql_info( |
| 275 | const CollectionSchema &schema, const SQLInfo::Ptr &sql_info) { |
| 276 | ScopedProfilerStage stage_guard(profiler_, "analyze_sql_info"); |
| 277 | QueryAnalyzer analyzer; |
| 278 | auto query_info = analyzer.analyze(schema, sql_info); |
| 279 | if (!query_info) { |
| 280 | return tl::make_unexpected(Status::InvalidArgument( |
| 281 | "Analyze SQL info failed: ", query_info.error().c_str())); |
| 282 | } |
| 283 | LOG_DEBUG("query_info: [%s]", query_info.value()->to_string().c_str()); |
| 284 | return query_info.value(); |
| 285 | } |
| 286 | |
| 287 | Result<QueryInfo::Ptr> SQLEngineImpl::build_query_info( |
| 288 | CollectionSchema::Ptr collection, const SearchQuery &request, |