A semantic search engine for source code https://bitshift.benkurtovic.com/
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.

преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. -- Schema version 11
  2. CREATE DATABASE `bitshift`
  3. DEFAULT CHARACTER SET utf8mb4
  4. COLLATE utf8mb4_unicode_ci;
  5. USE `bitshift`;
  6. CREATE TABLE `version` (
  7. `version` INT UNSIGNED NOT NULL
  8. ) ENGINE=InnoDB;
  9. INSERT INTO `version` VALUES (11);
  10. CREATE TABLE `origins` (
  11. `origin_id` TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
  12. `origin_name` VARCHAR(64) DEFAULT NULL,
  13. `origin_url` VARCHAR(512) DEFAULT NULL,
  14. `origin_url_base` VARCHAR(512) DEFAULT NULL,
  15. PRIMARY KEY (`origin_id`)
  16. ) ENGINE=InnoDB;
  17. INSERT INTO `origins` VALUES (1, NULL, NULL, NULL);
  18. CREATE TABLE `code` (
  19. `code_id` BIGINT NOT NULL,
  20. `code_lang` SMALLINT UNSIGNED DEFAULT NULL,
  21. `code_code` MEDIUMTEXT NOT NULL,
  22. PRIMARY KEY (`code_id`),
  23. KEY (`code_lang`),
  24. FULLTEXT KEY (`code_code`)
  25. ) ENGINE=InnoDB;
  26. CREATE TABLE `codelets` (
  27. `codelet_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  28. `codelet_name` VARCHAR(300) NOT NULL,
  29. `codelet_code_id` BIGINT NOT NULL,
  30. `codelet_origin` TINYINT UNSIGNED NOT NULL,
  31. `codelet_url` VARCHAR(512) NOT NULL,
  32. `codelet_rank` FLOAT NOT NULL,
  33. `codelet_date_created` DATETIME DEFAULT NULL,
  34. `codelet_date_modified` DATETIME DEFAULT NULL,
  35. PRIMARY KEY (`codelet_id`),
  36. FULLTEXT KEY (`codelet_name`),
  37. KEY (`codelet_rank`),
  38. KEY (`codelet_date_created`),
  39. KEY (`codelet_date_modified`),
  40. FOREIGN KEY (`codelet_code_id`)
  41. REFERENCES `code` (`code_id`)
  42. ON DELETE RESTRICT ON UPDATE CASCADE,
  43. FOREIGN KEY (`codelet_origin`)
  44. REFERENCES `origins` (`origin_id`)
  45. ON DELETE RESTRICT ON UPDATE CASCADE
  46. ) ENGINE=InnoDB;
  47. CREATE TABLE `authors` (
  48. `author_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  49. `author_codelet` BIGINT UNSIGNED NOT NULL,
  50. `author_name` VARCHAR(128) NOT NULL,
  51. `author_url` VARCHAR(512) DEFAULT NULL,
  52. PRIMARY KEY (`author_id`),
  53. FULLTEXT KEY (`author_name`),
  54. FOREIGN KEY (`author_codelet`)
  55. REFERENCES `codelets` (`codelet_id`)
  56. ON DELETE CASCADE ON UPDATE CASCADE
  57. ) ENGINE=InnoDB;
  58. CREATE TABLE `symbols` (
  59. `symbol_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  60. `symbol_code` BIGINT NOT NULL,
  61. `symbol_type` TINYINT UNSIGNED NOT NULL,
  62. `symbol_name` VARCHAR(512) NOT NULL,
  63. PRIMARY KEY (`symbol_id`),
  64. KEY (`symbol_type`, `symbol_name`(32)),
  65. FOREIGN KEY (`symbol_code`)
  66. REFERENCES `code` (`code_id`)
  67. ON DELETE CASCADE ON UPDATE CASCADE
  68. ) ENGINE=InnoDB;
  69. CREATE TABLE `symbol_locations` (
  70. `sloc_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  71. `sloc_symbol` BIGINT UNSIGNED NOT NULL,
  72. `sloc_type` TINYINT UNSIGNED NOT NULL,
  73. `sloc_row` INT UNSIGNED NOT NULL,
  74. `sloc_col` INT UNSIGNED DEFAULT NULL,
  75. `sloc_end_row` INT UNSIGNED DEFAULT NULL,
  76. `sloc_end_col` INT UNSIGNED DEFAULT NULL,
  77. PRIMARY KEY (`sloc_id`),
  78. FOREIGN KEY (`sloc_symbol`)
  79. REFERENCES `symbols` (`symbol_id`)
  80. ON DELETE CASCADE ON UPDATE CASCADE
  81. ) ENGINE=InnoDB;
  82. CREATE TABLE `cache` (
  83. `cache_id` BIGINT NOT NULL,
  84. `cache_count_mnt` SMALLINT UNSIGNED NOT NULL,
  85. `cache_count_exp` TINYINT UNSIGNED NOT NULL,
  86. `cache_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  87. PRIMARY KEY (`cache_id`)
  88. ) ENGINE=InnoDB;
  89. CREATE TABLE `cache_data` (
  90. `cdata_cache` BIGINT NOT NULL,
  91. `cdata_codelet` BIGINT UNSIGNED NOT NULL,
  92. `cdata_index` TINYINT UNSIGNED NOT NULL,
  93. PRIMARY KEY (`cdata_cache`, `cdata_codelet`),
  94. FOREIGN KEY (`cdata_cache`)
  95. REFERENCES `cache` (`cache_id`)
  96. ON DELETE CASCADE ON UPDATE CASCADE,
  97. FOREIGN KEY (`cdata_codelet`)
  98. REFERENCES `codelets` (`codelet_id`)
  99. ON DELETE CASCADE ON UPDATE CASCADE
  100. ) ENGINE=InnoDB;
  101. DELIMITER //
  102. CREATE PROCEDURE `empty_database`()
  103. BEGIN
  104. DELETE FROM `codelets`;
  105. DELETE FROM `code`;
  106. DELETE FROM `cache`;
  107. ALTER TABLE `codelets` AUTO_INCREMENT = 1;
  108. ALTER TABLE `authors` AUTO_INCREMENT = 1;
  109. ALTER TABLE `symbols` AUTO_INCREMENT = 1;
  110. ALTER TABLE `symbol_locations` AUTO_INCREMENT = 1;
  111. END//
  112. DELIMITER ;
  113. CREATE EVENT `flush_cache`
  114. ON SCHEDULE EVERY 1 HOUR
  115. DO
  116. DELETE FROM `cache`
  117. WHERE `cache_created` < DATE_SUB(NOW(), INTERVAL 1 DAY);