aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorilnaz <ilnaz@ydb.tech>2023-07-13 20:50:05 +0300
committerilnaz <ilnaz@ydb.tech>2023-07-13 20:50:05 +0300
commit7b0e247e7b3c2dcd2ecb25060f4aa7eba43fec74 (patch)
treeebe5cfa4e41f7110035144098397dceb52429d32
parentecb193692e96a585cb6da07242eacbd3639082a1 (diff)
downloadydb-7b0e247e7b3c2dcd2ecb25060f4aa7eba43fec74.tar.gz
Filter out system objects KIKIMR-18740
-rw-r--r--ydb/library/backup/db_iterator.h3
-rw-r--r--ydb/public/lib/ydb_cli/common/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/public/lib/ydb_cli/common/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/public/lib/ydb_cli/common/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/public/lib/ydb_cli/common/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/public/lib/ydb_cli/common/recursive_list.cpp3
-rw-r--r--ydb/public/lib/ydb_cli/common/sys.cpp17
-rw-r--r--ydb/public/lib/ydb_cli/common/sys.h14
-rw-r--r--ydb/public/lib/ydb_cli/common/ya.make1
9 files changed, 40 insertions, 2 deletions
diff --git a/ydb/library/backup/db_iterator.h b/ydb/library/backup/db_iterator.h
index 3abc8ecb99..7d3efb63d3 100644
--- a/ydb/library/backup/db_iterator.h
+++ b/ydb/library/backup/db_iterator.h
@@ -1,5 +1,6 @@
#pragma once
+#include <ydb/public/lib/ydb_cli/common/sys.h>
#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
#include <ydb/public/sdk/cpp/client/ydb_scheme/scheme.h>
@@ -141,7 +142,7 @@ public:
}
bool IsSkipped() const {
- return IsDir() && GetCurrentNode()->Name.StartsWith("~") || GetCurrentNode()->Name.StartsWith(".sys");
+ return NConsoleClient::IsSystemObject(*GetCurrentNode());
}
void Next() {
diff --git a/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-x86_64.txt
index 3887241519..7ca1529d39 100644
--- a/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-x86_64.txt
+++ b/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-x86_64.txt
@@ -61,6 +61,7 @@ target_sources(common PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/retry_func.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/root.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/scheme_printers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/sys.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/tabbed_table.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/ydb_updater.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/yt.cpp
diff --git a/ydb/public/lib/ydb_cli/common/CMakeLists.linux-aarch64.txt b/ydb/public/lib/ydb_cli/common/CMakeLists.linux-aarch64.txt
index 8f0b7768a3..cdb21eb28b 100644
--- a/ydb/public/lib/ydb_cli/common/CMakeLists.linux-aarch64.txt
+++ b/ydb/public/lib/ydb_cli/common/CMakeLists.linux-aarch64.txt
@@ -62,6 +62,7 @@ target_sources(common PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/retry_func.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/root.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/scheme_printers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/sys.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/tabbed_table.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/ydb_updater.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/yt.cpp
diff --git a/ydb/public/lib/ydb_cli/common/CMakeLists.linux-x86_64.txt b/ydb/public/lib/ydb_cli/common/CMakeLists.linux-x86_64.txt
index 8f0b7768a3..cdb21eb28b 100644
--- a/ydb/public/lib/ydb_cli/common/CMakeLists.linux-x86_64.txt
+++ b/ydb/public/lib/ydb_cli/common/CMakeLists.linux-x86_64.txt
@@ -62,6 +62,7 @@ target_sources(common PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/retry_func.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/root.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/scheme_printers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/sys.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/tabbed_table.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/ydb_updater.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/yt.cpp
diff --git a/ydb/public/lib/ydb_cli/common/CMakeLists.windows-x86_64.txt b/ydb/public/lib/ydb_cli/common/CMakeLists.windows-x86_64.txt
index 3887241519..7ca1529d39 100644
--- a/ydb/public/lib/ydb_cli/common/CMakeLists.windows-x86_64.txt
+++ b/ydb/public/lib/ydb_cli/common/CMakeLists.windows-x86_64.txt
@@ -61,6 +61,7 @@ target_sources(common PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/retry_func.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/root.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/scheme_printers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/sys.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/tabbed_table.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/ydb_updater.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/yt.cpp
diff --git a/ydb/public/lib/ydb_cli/common/recursive_list.cpp b/ydb/public/lib/ydb_cli/common/recursive_list.cpp
index 5dd207c0fe..91ca5f38cb 100644
--- a/ydb/public/lib/ydb_cli/common/recursive_list.cpp
+++ b/ydb/public/lib/ydb_cli/common/recursive_list.cpp
@@ -1,4 +1,5 @@
#include "recursive_list.h"
+#include "sys.h"
#include <util/string/join.h>
@@ -28,7 +29,7 @@ namespace {
}
for (const auto& child : list.GetChildren()) {
- if (settings.SkipSys_ && child.Name.StartsWith(".sys")) {
+ if (settings.SkipSys_ && IsSystemObject(child)) {
continue;
}
diff --git a/ydb/public/lib/ydb_cli/common/sys.cpp b/ydb/public/lib/ydb_cli/common/sys.cpp
new file mode 100644
index 0000000000..d13edd492e
--- /dev/null
+++ b/ydb/public/lib/ydb_cli/common/sys.cpp
@@ -0,0 +1,17 @@
+#include "sys.h"
+
+#include <ydb/public/sdk/cpp/client/ydb_scheme/scheme.h>
+
+namespace NYdb::NConsoleClient {
+
+bool IsSystemObject(const NScheme::TSchemeEntry& entry) {
+ if (entry.Type != NScheme::ESchemeEntryType::Directory) {
+ return false;
+ }
+
+ return entry.Name.StartsWith("~")
+ || entry.Name.StartsWith(".sys")
+ || entry.Name.StartsWith(".metadata");
+}
+
+}
diff --git a/ydb/public/lib/ydb_cli/common/sys.h b/ydb/public/lib/ydb_cli/common/sys.h
new file mode 100644
index 0000000000..4a4b19717b
--- /dev/null
+++ b/ydb/public/lib/ydb_cli/common/sys.h
@@ -0,0 +1,14 @@
+#pragma once
+
+namespace NYdb {
+
+namespace NScheme {
+ struct TSchemeEntry;
+}
+
+namespace NConsoleClient {
+
+bool IsSystemObject(const NScheme::TSchemeEntry& entry);
+
+} // NConsoleClient
+} // NYdb
diff --git a/ydb/public/lib/ydb_cli/common/ya.make b/ydb/public/lib/ydb_cli/common/ya.make
index f58cd19273..f2aaee47fd 100644
--- a/ydb/public/lib/ydb_cli/common/ya.make
+++ b/ydb/public/lib/ydb_cli/common/ya.make
@@ -21,6 +21,7 @@ SRCS(
retry_func.cpp
root.cpp
scheme_printers.cpp
+ sys.cpp
tabbed_table.cpp
ydb_updater.cpp
yt.cpp