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.

72 lines
1.5 KiB

  1. package ydb
  2. const (
  3. createQuery = `
  4. PRAGMA TablePathPrefix("%s");
  5. CREATE TABLE file_meta (
  6. dir_hash int64,
  7. name Utf8,
  8. directory Utf8,
  9. meta String,
  10. PRIMARY KEY (dir_hash, name)
  11. );`
  12. insertQuery = `
  13. DECLARE $dir_hash int64;
  14. DECLARE $name AS Utf8;
  15. DECLARE $directory AS Utf8;
  16. DECLARE $meta AS String;
  17. UPSERT INTO file_meta
  18. (dir_hash, name, directory, meta)
  19. VALUES
  20. ($dir_hash, $name, $directory, $meta);`
  21. updateQuery = `
  22. DECLARE $dir_hash int64;
  23. DECLARE $name AS Utf8;
  24. DECLARE $directory AS Utf8;
  25. DECLARE $meta AS String;
  26. REPLACE INTO file_meta
  27. (dir_hash, name, directory, meta)
  28. VALUES
  29. ($dir_hash, $name, $directory, $meta)
  30. COMMIT;`
  31. deleteQuery = `
  32. DECLARE $dir_hash int64;
  33. DECLARE $name AS Utf8;
  34. DELETE FROM file_meta
  35. WHERE dir_hash == $dir_hash AND name == $name;
  36. COMMIT;`
  37. findQuery = `
  38. DECLARE $dir_hash int64;
  39. DECLARE $name AS Utf8;
  40. SELECT meta
  41. FROM file_meta
  42. WHERE dir_hash == $dir_hash AND name == $name;`
  43. deleteFolderChildrenQuery = `
  44. DECLARE $dir_hash int64;
  45. DECLARE $directory AS Utf8;
  46. DELETE FROM file_meta
  47. WHERE dir_hash == $dir_hash AND directory == $directory;
  48. COMMIT;`
  49. ListDirectoryQuery = `
  50. DECLARE $dir_hash int64;
  51. DECLARE $directory AS Utf8;
  52. DECLARE $start_name AS Utf8;
  53. DECLARE $prefix AS Utf8;
  54. DECLARE $limit AS int64;
  55. SELECT name, meta
  56. FROM file_meta
  57. WHERE dir_hash == $dir_hash AND directory == $directory and name %v $start_name and name LIKE '$prefix%'
  58. ORDER BY name ASC LIMIT $limit;`
  59. )