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 jaren geleden
10 jaren geleden
10 jaren geleden
10 jaren geleden
10 jaren geleden
10 jaren geleden
10 jaren geleden
10 jaren geleden
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. -- Schema version 12
  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 (12);
  10. CREATE TABLE `stopwords`
  11. LIKE information_schema.innodb_ft_default_stopword
  12. ENGINE=InnoDB;
  13. CREATE TABLE `stopwords` (
  14. `value` varchar(18) NOT NULL DEFAULT ""
  15. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  16. INSERT INTO `stopwords` VALUES
  17. ("a"), ("about"), ("an"), ("are"), ("as"), ("at"), ("be"), ("by"), ("how"),
  18. ("i"), ("it"), ("la"), ("of"), ("on"), ("that"), ("the"), ("to"), ("und"),
  19. ("was"), ("what"), ("when"), ("where"), ("who"), ("will");
  20. CREATE TABLE `origins` (
  21. `origin_id` TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
  22. `origin_name` VARCHAR(64) DEFAULT NULL,
  23. `origin_url` VARCHAR(512) DEFAULT NULL,
  24. `origin_url_base` VARCHAR(512) DEFAULT NULL,
  25. PRIMARY KEY (`origin_id`)
  26. ) ENGINE=InnoDB;
  27. INSERT INTO `origins` VALUES (1, NULL, NULL, NULL);
  28. CREATE TABLE `code` (
  29. `code_id` BIGINT NOT NULL,
  30. `code_lang` SMALLINT UNSIGNED DEFAULT NULL,
  31. `code_code` MEDIUMTEXT NOT NULL,
  32. PRIMARY KEY (`code_id`),
  33. KEY (`code_lang`),
  34. FULLTEXT KEY (`code_code`)
  35. ) ENGINE=InnoDB;
  36. CREATE TABLE `codelets` (
  37. `codelet_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  38. `codelet_name` VARCHAR(300) NOT NULL,
  39. `codelet_code_id` BIGINT NOT NULL,
  40. `codelet_origin` TINYINT UNSIGNED NOT NULL,
  41. `codelet_url` VARCHAR(512) NOT NULL,
  42. `codelet_rank` FLOAT NOT NULL,
  43. `codelet_date_created` DATETIME DEFAULT NULL,
  44. `codelet_date_modified` DATETIME DEFAULT NULL,
  45. PRIMARY KEY (`codelet_id`),
  46. FULLTEXT KEY (`codelet_name`),
  47. KEY (`codelet_rank`),
  48. KEY (`codelet_date_created`),
  49. KEY (`codelet_date_modified`),
  50. FOREIGN KEY (`codelet_code_id`)
  51. REFERENCES `code` (`code_id`)
  52. ON DELETE RESTRICT ON UPDATE CASCADE,
  53. FOREIGN KEY (`codelet_origin`)
  54. REFERENCES `origins` (`origin_id`)
  55. ON DELETE RESTRICT ON UPDATE CASCADE
  56. ) ENGINE=InnoDB;
  57. CREATE TABLE `authors` (
  58. `author_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  59. `author_codelet` BIGINT UNSIGNED NOT NULL,
  60. `author_name` VARCHAR(128) NOT NULL,
  61. `author_url` VARCHAR(512) DEFAULT NULL,
  62. PRIMARY KEY (`author_id`),
  63. FULLTEXT KEY (`author_name`),
  64. FOREIGN KEY (`author_codelet`)
  65. REFERENCES `codelets` (`codelet_id`)
  66. ON DELETE CASCADE ON UPDATE CASCADE
  67. ) ENGINE=InnoDB;
  68. CREATE TABLE `symbols` (
  69. `symbol_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  70. `symbol_code` BIGINT NOT NULL,
  71. `symbol_type` TINYINT UNSIGNED NOT NULL,
  72. `symbol_name` VARCHAR(512) NOT NULL,
  73. PRIMARY KEY (`symbol_id`),
  74. KEY (`symbol_type`, `symbol_name`(32)),
  75. FOREIGN KEY (`symbol_code`)
  76. REFERENCES `code` (`code_id`)
  77. ON DELETE CASCADE ON UPDATE CASCADE
  78. ) ENGINE=InnoDB;
  79. CREATE TABLE `symbol_locations` (
  80. `sloc_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  81. `sloc_symbol` BIGINT UNSIGNED NOT NULL,
  82. `sloc_type` TINYINT UNSIGNED NOT NULL,
  83. `sloc_row` INT UNSIGNED NOT NULL,
  84. `sloc_col` INT UNSIGNED DEFAULT NULL,
  85. `sloc_end_row` INT UNSIGNED DEFAULT NULL,
  86. `sloc_end_col` INT UNSIGNED DEFAULT NULL,
  87. PRIMARY KEY (`sloc_id`),
  88. FOREIGN KEY (`sloc_symbol`)
  89. REFERENCES `symbols` (`symbol_id`)
  90. ON DELETE CASCADE ON UPDATE CASCADE
  91. ) ENGINE=InnoDB;
  92. CREATE TABLE `cache` (
  93. `cache_id` BIGINT NOT NULL,
  94. `cache_count_mnt` SMALLINT UNSIGNED NOT NULL,
  95. `cache_count_exp` TINYINT UNSIGNED NOT NULL,
  96. `cache_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  97. PRIMARY KEY (`cache_id`)
  98. ) ENGINE=InnoDB;
  99. CREATE TABLE `cache_data` (
  100. `cdata_cache` BIGINT NOT NULL,
  101. `cdata_codelet` BIGINT UNSIGNED NOT NULL,
  102. `cdata_index` TINYINT UNSIGNED NOT NULL,
  103. PRIMARY KEY (`cdata_cache`, `cdata_codelet`),
  104. FOREIGN KEY (`cdata_cache`)
  105. REFERENCES `cache` (`cache_id`)
  106. ON DELETE CASCADE ON UPDATE CASCADE,
  107. FOREIGN KEY (`cdata_codelet`)
  108. REFERENCES `codelets` (`codelet_id`)
  109. ON DELETE CASCADE ON UPDATE CASCADE
  110. ) ENGINE=InnoDB;
  111. DELIMITER //
  112. CREATE PROCEDURE `empty_database`()
  113. BEGIN
  114. DELETE FROM `codelets`;
  115. DELETE FROM `code`;
  116. DELETE FROM `cache`;
  117. ALTER TABLE `codelets` AUTO_INCREMENT = 1;
  118. ALTER TABLE `authors` AUTO_INCREMENT = 1;
  119. ALTER TABLE `symbols` AUTO_INCREMENT = 1;
  120. ALTER TABLE `symbol_locations` AUTO_INCREMENT = 1;
  121. END//
  122. DELIMITER ;
  123. CREATE EVENT `flush_cache`
  124. ON SCHEDULE EVERY 1 HOUR
  125. DO
  126. DELETE FROM `cache`
  127. WHERE `cache_created` < DATE_SUB(NOW(), INTERVAL 1 DAY);