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.

82 lines
2.2 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
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. PRAGMA TablePathPrefix("%v");
  6. DECLARE $dir_hash AS int64;
  7. DECLARE $directory AS Utf8;
  8. DECLARE $name AS Utf8;
  9. DECLARE $meta AS String;
  10. DECLARE $expire_at AS Optional<uint32>;
  11. UPSERT INTO ` + asql.DEFAULT_TABLE + `
  12. (dir_hash, name, directory, meta, expire_at)
  13. VALUES
  14. ($dir_hash, $name, $directory, $meta, $expire_at);`
  15. updateQuery = `
  16. PRAGMA TablePathPrefix("%v");
  17. DECLARE $dir_hash AS int64;
  18. DECLARE $directory AS Utf8;
  19. DECLARE $name AS Utf8;
  20. DECLARE $meta AS String;
  21. DECLARE $expire_at AS Optional<uint32>;
  22. REPLACE INTO ` + asql.DEFAULT_TABLE + `
  23. (dir_hash, name, directory, meta, expire_at)
  24. VALUES
  25. ($dir_hash, $name, $directory, $meta, $expire_at);`
  26. deleteQuery = `
  27. PRAGMA TablePathPrefix("%v");
  28. DECLARE $dir_hash AS int64;
  29. DECLARE $name AS Utf8;
  30. DELETE FROM ` + asql.DEFAULT_TABLE + `
  31. WHERE dir_hash = $dir_hash AND name = $name;`
  32. findQuery = `
  33. PRAGMA TablePathPrefix("%v");
  34. DECLARE $dir_hash AS int64;
  35. DECLARE $name AS Utf8;
  36. SELECT meta
  37. FROM ` + asql.DEFAULT_TABLE + `
  38. WHERE dir_hash = $dir_hash AND name = $name;`
  39. deleteFolderChildrenQuery = `
  40. PRAGMA TablePathPrefix("%v");
  41. DECLARE $dir_hash AS int64;
  42. DECLARE $directory AS Utf8;
  43. DELETE FROM ` + asql.DEFAULT_TABLE + `
  44. WHERE dir_hash = $dir_hash AND directory = $directory;`
  45. listDirectoryQuery = `
  46. PRAGMA TablePathPrefix("%v");
  47. DECLARE $dir_hash AS int64;
  48. DECLARE $directory AS Utf8;
  49. DECLARE $start_name AS Utf8;
  50. DECLARE $prefix AS Utf8;
  51. DECLARE $limit AS Uint64;
  52. SELECT name, meta
  53. FROM ` + asql.DEFAULT_TABLE + `
  54. WHERE dir_hash = $dir_hash AND directory = $directory and name > $start_name and name LIKE $prefix
  55. ORDER BY name ASC LIMIT $limit;`
  56. listInclusiveDirectoryQuery = `
  57. PRAGMA TablePathPrefix("%v");
  58. DECLARE $dir_hash AS int64;
  59. DECLARE $directory AS Utf8;
  60. DECLARE $start_name AS Utf8;
  61. DECLARE $prefix AS Utf8;
  62. DECLARE $limit AS Uint64;
  63. SELECT name, meta
  64. FROM ` + asql.DEFAULT_TABLE + `
  65. WHERE dir_hash = $dir_hash AND directory = $directory and name >= $start_name and name LIKE $prefix
  66. ORDER BY name ASC LIMIT $limit;`
  67. )