aboutsummaryrefslogtreecommitdiff
path: root/weed/filer/ydb/ydb_queries.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/filer/ydb/ydb_queries.go')
-rw-r--r--weed/filer/ydb/ydb_queries.go64
1 files changed, 64 insertions, 0 deletions
diff --git a/weed/filer/ydb/ydb_queries.go b/weed/filer/ydb/ydb_queries.go
new file mode 100644
index 000000000..659cc2158
--- /dev/null
+++ b/weed/filer/ydb/ydb_queries.go
@@ -0,0 +1,64 @@
+package ydb
+
+import asql "github.com/chrislusf/seaweedfs/weed/filer/abstract_sql"
+
+const (
+ insertQuery = `
+ DECLARE $dir_hash AS int64;
+ DECLARE $name AS Utf8;
+ DECLARE $directory AS Utf8;
+ DECLARE $meta AS String;
+
+ UPSERT INTO ` + asql.DEFAULT_TABLE + `
+ (dir_hash, name, directory, meta)
+ VALUES
+ ($dir_hash, $name, $directory, $meta);`
+
+ updateQuery = `
+ DECLARE $dir_hash AS int64;
+ DECLARE $name AS Utf8;
+ DECLARE $directory AS Utf8;
+ DECLARE $meta AS String;
+
+ REPLACE INTO ` + asql.DEFAULT_TABLE + `
+ (dir_hash, name, directory, meta)
+ VALUES
+ ($dir_hash, $name, $directory, $meta)
+ COMMIT;`
+
+ deleteQuery = `
+ DECLARE $dir_hash AS int64;
+ DECLARE $name AS Utf8;
+
+ DELETE FROM ` + asql.DEFAULT_TABLE + `
+ WHERE dir_hash == $dir_hash AND name == $name;
+ COMMIT;`
+
+ findQuery = `
+ DECLARE $dir_hash AS int64;
+ DECLARE $name AS Utf8;
+
+ SELECT meta
+ FROM ` + asql.DEFAULT_TABLE + `
+ WHERE dir_hash == $dir_hash AND name == $name;`
+
+ deleteFolderChildrenQuery = `
+ DECLARE $dir_hash AS int64;
+ DECLARE $directory AS Utf8;
+
+ DELETE FROM ` + asql.DEFAULT_TABLE + `
+ WHERE dir_hash == $dir_hash AND directory == $directory;
+ COMMIT;`
+
+ listDirectoryQuery = `
+ DECLARE $dir_hash AS int64;
+ DECLARE $directory AS Utf8;
+ DECLARE $start_name AS Utf8;
+ DECLARE $prefix AS Utf8;
+ DECLARE $limit AS Uint64;
+
+ SELECT name, meta
+ FROM ` + asql.DEFAULT_TABLE + `
+ WHERE dir_hash == $dir_hash AND directory == $directory and name %s $start_name and name LIKE $prefix
+ ORDER BY name ASC LIMIT $limit;`
+)