| 69 | } |
| 70 | |
| 71 | static std::vector<ExportedTableData> getExportInfo(const Catalog& catalog, |
| 72 | main::ClientContext* context, Binder* binder, FileTypeInfo& fileTypeInfo) { |
| 73 | auto transaction = Transaction::Get(*context); |
| 74 | std::vector<ExportedTableData> exportData; |
| 75 | for (auto entry : catalog.getNodeTableEntries(transaction, false /*useInternal*/)) { |
| 76 | ExportedTableData tableData; |
| 77 | tableData.tableName = entry->getName(); |
| 78 | tableData.fileName = |
| 79 | entry->getName() + "." + StringUtils::getLower(fileTypeInfo.fileTypeStr); |
| 80 | auto query = getExportNodeTableDataQuery(*entry); |
| 81 | bindExportTableData(tableData, query, context, binder); |
| 82 | exportData.push_back(std::move(tableData)); |
| 83 | } |
| 84 | for (auto entry : catalog.getRelGroupEntries(transaction, false /* useInternal */)) { |
| 85 | auto& relGroupEntry = entry->constCast<RelGroupCatalogEntry>(); |
| 86 | for (auto& info : relGroupEntry.getRelEntryInfos()) { |
| 87 | ExportedTableData tableData; |
| 88 | auto srcTableID = info.nodePair.srcTableID; |
| 89 | auto dstTableID = info.nodePair.dstTableID; |
| 90 | auto& srcEntry = catalog.getTableCatalogEntry(transaction, srcTableID) |
| 91 | ->constCast<NodeTableCatalogEntry>(); |
| 92 | auto& dstEntry = catalog.getTableCatalogEntry(transaction, dstTableID) |
| 93 | ->constCast<NodeTableCatalogEntry>(); |
| 94 | tableData.tableName = entry->getName(); |
| 95 | tableData.fileName = |
| 96 | std::format("{}_{}_{}.{}", relGroupEntry.getName(), srcEntry.getName(), |
| 97 | dstEntry.getName(), StringUtils::getLower(fileTypeInfo.fileTypeStr)); |
| 98 | auto query = getExportRelTableDataQuery(relGroupEntry, srcEntry, dstEntry); |
| 99 | bindExportTableData(tableData, query, context, binder); |
| 100 | exportData.push_back(std::move(tableData)); |
| 101 | } |
| 102 | } |
| 103 | |
| 104 | for (auto indexEntry : catalog.getIndexEntries(transaction)) { |
| 105 | // Export |
| 106 | ExportedTableData tableData; |
| 107 | auto entry = indexEntry->getTableEntryToExport(context); |
| 108 | if (entry == nullptr) { |
| 109 | continue; |
| 110 | } |
| 111 | DASSERT(entry->getTableType() == TableType::NODE); |
| 112 | tableData.tableName = entry->getName(); |
| 113 | tableData.fileName = |
| 114 | entry->getName() + "." + StringUtils::getLower(fileTypeInfo.fileTypeStr); |
| 115 | auto query = getExportNodeTableDataQuery(*entry); |
| 116 | bindExportTableData(tableData, query, context, binder); |
| 117 | exportData.push_back(std::move(tableData)); |
| 118 | } |
| 119 | return exportData; |
| 120 | } |
| 121 | |
| 122 | static bool schemaOnly(case_insensitive_map_t<Value>& parsedOptions, |
| 123 | const parser::ExportDB& exportDB) { |
no test coverage detected