Skip to content

Insert select Stmt keep the same semantics with mysql #1626

@wangbo

Description

@wangbo

Question
When doing Insert Select stmt in doris,if the select stmt returns epmty set, it will returns a error which content is "all partitions have no load data".
But when the same case won't happends in MySQL
It's neccessary to make doris keep the same semantics with mysql

Key point:how to know Select stmt returns empty set

  • When Insert Select stmt finish executing,all be fragment reports OK status to fe,the Coordinator.tabletCommitInfos is empty means Select stmt returns empty set
  • When Insert Select stmt finish executing,at least one fragment reports Error status to fe,then the whole stmt will return error,there is no need to check Coordinator.tabletCommitInfos

What to do when Select stmt return empty set

  • set status of ConnectContext to OK and return, before method Catalog.getCurrentGlobalTransactionMgr().commitAndPublishTransaction,this will skip checking Coordinator.tabletCommitInfos,and error won't happen

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions