You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.6 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. package ydb
  2. import asql "github.com/chrislusf/seaweedfs/weed/filer/abstract_sql"
  3. const (
  4. insertQuery = `
  5. DECLARE $dir_hash AS int64;
  6. DECLARE $directory AS Utf8;
  7. DECLARE $name AS Utf8;
  8. DECLARE $meta AS String;
  9. DECLARE $expire_at AS Optional<uint32>;
  10. UPSERT INTO ` + asql.DEFAULT_TABLE + `
  11. (dir_hash, name, directory, meta, expire_at)
  12. VALUES
  13. ($dir_hash, $name, $directory, $meta, $expire_at);`
  14. updateQuery = `
  15. DECLARE $dir_hash AS int64;
  16. DECLARE $directory AS Utf8;
  17. DECLARE $name AS Utf8;
  18. DECLARE $meta AS String;
  19. DECLARE $expire_at AS Optional<uint32>;
  20. REPLACE INTO ` + asql.DEFAULT_TABLE + `
  21. (dir_hash, name, directory, meta, expire_at)
  22. VALUES
  23. ($dir_hash, $name, $directory, $meta, $expire_at);`
  24. deleteQuery = `
  25. DECLARE $dir_hash AS int64;
  26. DECLARE $name AS Utf8;
  27. DELETE FROM ` + asql.DEFAULT_TABLE + `
  28. WHERE dir_hash = $dir_hash AND name = $name;`
  29. findQuery = `
  30. DECLARE $dir_hash AS int64;
  31. DECLARE $name AS Utf8;
  32. SELECT meta
  33. FROM ` + asql.DEFAULT_TABLE + `
  34. WHERE dir_hash = $dir_hash AND name = $name;`
  35. deleteFolderChildrenQuery = `
  36. DECLARE $dir_hash AS int64;
  37. DECLARE $directory AS Utf8;
  38. DELETE FROM ` + asql.DEFAULT_TABLE + `
  39. WHERE dir_hash = $dir_hash AND directory = $directory;`
  40. listDirectoryQuery = `
  41. DECLARE $dir_hash AS int64;
  42. DECLARE $directory AS Utf8;
  43. DECLARE $start_name AS Utf8;
  44. DECLARE $prefix AS Utf8;
  45. DECLARE $limit AS Uint64;
  46. SELECT name, meta
  47. FROM ` + asql.DEFAULT_TABLE + `
  48. WHERE dir_hash = $dir_hash AND directory = $directory and name %s $start_name and name LIKE $prefix
  49. ORDER BY name ASC LIMIT $limit;`
  50. )