A method comprising: receiving, at a catalog server from a requesting entity, a request to perform a cross-shard query involving unstructured or semi-structured data; the catalog server obtaining the unstructured or semi-structured data from one or more shard servers and creating one or more first temporary lobs containing the unstructured or semi-structured data, comprising: the catalog server receiving, from the one or more shard servers, one or more second lob locators associated with one or more second temporary lobs created by the one or more shard servers; the catalog server obtaining all items needed from the one or more second temporary lobs using the one or more second lob locators; and the catalog server releasing the one or more second lob locators associated with one or more second temporary lobs; the catalog server responding to the request by providing the requesting entity one or more first lob locators that correspond to the one or more first temporary lobs; and in response to fetch operations initiated by the requesting entity based on any of the one or more first lob locators, the catalog server accessing, without involving the one or more shard servers, the one or more first temporary lobs stored within the catalog server; wherein the catalog server obtains all items needed and releases the one or more second lob locators before responding to said fetch operations initiated by the requesting entity. receiving, at a catalog server from a requesting entity, a request to perform a cross-shard query involving unstructured or semi-structured data; the catalog server obtaining the unstructured or semi-structured data from one or more shard servers and creating one or more first temporary lobs containing the unstructured or semi-structured data, comprising: the catalog server receiving, from the one or more shard servers, one or more second lob locators associated with one or more second temporary lobs created by the one or more shard servers; the catalog server obtaining all items needed from the one or more second temporary lobs using the one or more second lob locators; and the catalog server releasing the one or more second lob locators associated with one or more second temporary lobs; the catalog server receiving, from the one or more shard servers, one or more second lob locators associated with one or more second temporary lobs created by the one or more shard servers; the catalog server obtaining all items needed from the one or more second temporary lobs using the one or more second lob locators; and the catalog server releasing the one or more second lob locators associated with one or more second temporary lobs; the catalog server responding to the request by providing the requesting entity one or more first lob locators that correspond to the one or more first temporary lobs; and in response to fetch operations initiated by the requesting entity based on any of the one or more first lob locators, the catalog server accessing, without involving the one or more shard servers, the one or more first temporary lobs stored within the catalog server; wherein the catalog server obtains all items needed and releases the one or more second lob locators before responding to said fetch operations initiated by the requesting entity.