MCPcopy Create free account
hub / github.com/LadybugDB/ladybug / getExportInfo

Function getExportInfo

src/binder/bind/bind_export_database.cpp:71–120  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69}
70
71static 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
122static bool schemaOnly(case_insensitive_map_t<Value>& parsedOptions,
123 const parser::ExportDB& exportDB) {

Callers 1

Calls 10

bindExportTableDataFunction · 0.85
getNodeTableEntriesMethod · 0.80
getRelGroupEntriesMethod · 0.80
getTableCatalogEntryMethod · 0.80
getIndexEntriesMethod · 0.80
getNameMethod · 0.45
push_backMethod · 0.45
getTableTypeMethod · 0.45

Tested by

no test coverage detected