ydb_queries.go 2.0 KB

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