Skip to content

Commit 3541842

Browse files
committed
Drop pattern, replace from the search index / query.
1 parent 52f24bc commit 3541842

File tree

2 files changed

+140
-60
lines changed

2 files changed

+140
-60
lines changed

server/actions/patterns/search.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public function searchCommunity($query, $startIndex, $limit, $type) {
4545

4646
// Search everything using the query.
4747
if (!empty($query)) {
48-
$whereStatements[] = "MATCH(`name`, `description`, `pattern`, `replace`, `author`) AGAINST(? IN NATURAL LANGUAGE MODE)";
48+
$whereStatements[] = "MATCH(`name`, `description`, `author`) AGAINST(? IN NATURAL LANGUAGE MODE)";
4949
$searchSqlParams[] = ["s", $query];
5050
}
5151

server/schema.sql

Lines changed: 139 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,43 @@
11
-- phpMyAdmin SQL Dump
2-
-- version 3.5.2
3-
-- http://www.phpmyadmin.net
2+
-- version 5.2.0
3+
-- https://www.phpmyadmin.net/
4+
--
5+
-- Generation Time: Nov 17, 2022 at 04:25 PM
6+
-- Server version: 8.0.30-0ubuntu0.20.04.2
7+
-- PHP Version: 7.4.3
8+
9+
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
10+
START TRANSACTION;
11+
SET time_zone = "+00:00";
12+
13+
14+
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
15+
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
16+
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
17+
/*!40101 SET NAMES utf8mb4 */;
418

519
-- --------------------------------------------------------
620

721
--
822
-- Table structure for table `favorites`
923
--
1024

11-
CREATE TABLE IF NOT EXISTS `favorites` (
12-
`userId` int(10) NOT NULL,
13-
`patternId` int(10) NOT NULL,
14-
`dateAdded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
15-
UNIQUE KEY `userPattern` (`userId`,`patternId`)
16-
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
25+
CREATE TABLE `favorites` (
26+
`userId` int NOT NULL,
27+
`patternId` int NOT NULL,
28+
`dateAdded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
29+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
1730

1831
-- --------------------------------------------------------
1932

2033
--
2134
-- Table structure for table `patternLink`
2235
--
2336

24-
CREATE TABLE IF NOT EXISTS `patternLink` (
25-
`parentId` int(10) DEFAULT NULL,
26-
`userId` int(10) NOT NULL,
27-
`patternId` mediumint(8) NOT NULL,
28-
UNIQUE KEY `index` (`patternId`,`parentId`,`userId`)
37+
CREATE TABLE `patternLink` (
38+
`parentId` int DEFAULT NULL,
39+
`userId` int NOT NULL,
40+
`patternId` mediumint NOT NULL
2941
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
3042

3143
-- --------------------------------------------------------
@@ -34,61 +46,55 @@ CREATE TABLE IF NOT EXISTS `patternLink` (
3446
-- Table structure for table `patterns`
3547
--
3648

37-
CREATE TABLE IF NOT EXISTS `patterns` (
38-
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
39-
`name` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
40-
`description` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
41-
`keywords` text CHARACTER SET utf8 COLLATE utf8_unicode_ci,
42-
`pattern` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
43-
`replace` text CHARACTER SET utf8 COLLATE utf8_unicode_ci,
44-
`dateAdded` date NOT NULL DEFAULT '0000-00-00',
45-
`author` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
49+
CREATE TABLE `patterns` (
50+
`id` mediumint UNSIGNED NOT NULL,
51+
`name` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '',
52+
`description` text CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
53+
`keywords` text CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci,
54+
`pattern` text CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
55+
`replace` text CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci,
56+
`dateAdded` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
57+
`author` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT '',
4658
`lastAccessed` date DEFAULT NULL,
47-
`content` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
48-
`visits` mediumint(5) NOT NULL DEFAULT '0',
49-
`state` varchar(1024) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
59+
`content` text CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
60+
`visits` mediumint NOT NULL DEFAULT '0',
61+
`state` varchar(1024) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL,
5062
`ratingSort` double NOT NULL DEFAULT '0',
51-
`owner` int(10) NOT NULL DEFAULT '0',
63+
`owner` int NOT NULL DEFAULT '0',
5264
`visibility` enum('private','protected','public') CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT 'protected',
5365
`rating` float NOT NULL DEFAULT '0',
5466
`flavor` enum('pcre','js') CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT 'js',
55-
`numPositiveVotes` int(10) NOT NULL DEFAULT '0',
56-
`numNegativeVotes` int(10) NOT NULL DEFAULT '0',
57-
PRIMARY KEY (`id`),
58-
KEY `userPatterns` (`id`,`owner`),
59-
KEY `patternStats` (`visibility`,`flavor`),
60-
FULLTEXT KEY `search` (`name`,`description`,`pattern`,`replace`,`author`)
61-
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
67+
`numPositiveVotes` int NOT NULL DEFAULT '0',
68+
`numNegativeVotes` int NOT NULL DEFAULT '0',
69+
`mode` enum('text','tests') NOT NULL DEFAULT 'text',
70+
`tests` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci
71+
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
6272

6373
-- --------------------------------------------------------
6474

6575
--
6676
-- Table structure for table `saveSessions`
6777
--
6878

69-
CREATE TABLE IF NOT EXISTS `saveSessions` (
70-
`id` varchar(13) COLLATE utf8_bin NOT NULL,
71-
`expire` int(10) NOT NULL,
72-
`patternID` int(10) NOT NULL,
73-
PRIMARY KEY (`id`),
74-
UNIQUE KEY `patternID` (`patternID`)
75-
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
79+
CREATE TABLE `saveSessions` (
80+
`id` varchar(13) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
81+
`expire` int NOT NULL,
82+
`patternID` int NOT NULL
83+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
7684

7785
-- --------------------------------------------------------
7886

7987
--
8088
-- Table structure for table `sessions`
8189
--
8290

83-
CREATE TABLE IF NOT EXISTS `sessions` (
91+
CREATE TABLE `sessions` (
8492
`id` varchar(64) NOT NULL,
85-
`access` int(10) NOT NULL,
93+
`access` int NOT NULL,
8694
`data` varchar(1024) NOT NULL,
8795
`accessToken` text,
8896
`type` enum('temporary','github','google','facebook') NOT NULL,
89-
`userId` int(10) NOT NULL,
90-
UNIQUE KEY `id` (`id`),
91-
KEY `userId` (`userId`)
97+
`userId` int NOT NULL
9298
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
9399

94100
-- --------------------------------------------------------
@@ -97,30 +103,104 @@ CREATE TABLE IF NOT EXISTS `sessions` (
97103
-- Table structure for table `userRatings`
98104
--
99105

100-
CREATE TABLE IF NOT EXISTS `userRatings` (
101-
`userId` int(10) NOT NULL,
102-
`patternId` mediumint(8) NOT NULL,
103-
`rating` enum('-1','0','1') COLLATE utf8_bin NOT NULL,
106+
CREATE TABLE `userRatings` (
107+
`userId` int NOT NULL,
108+
`patternId` mediumint NOT NULL,
109+
`rating` enum('-1','0','1') CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
104110
`lastUpdated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
105-
UNIQUE KEY `rating` (`userId`,`patternId`)
106-
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
111+
`ip` varchar(45) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL
112+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
107113

108114
-- --------------------------------------------------------
109115

110116
--
111117
-- Table structure for table `users`
112118
--
113119

114-
CREATE TABLE IF NOT EXISTS `users` (
115-
`id` int(10) NOT NULL AUTO_INCREMENT,
120+
CREATE TABLE `users` (
121+
`id` int NOT NULL,
116122
`email` varchar(254) NOT NULL,
117-
`username` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
118-
`authorName` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
123+
`username` varchar(256) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
124+
`authorName` varchar(256) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
119125
`type` enum('temporary','github','google','facebook') NOT NULL,
120126
`admin` tinyint(1) NOT NULL DEFAULT '0',
121127
`oauthUserId` varchar(256) NOT NULL,
122128
`dateCreated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
123-
`lastLogin` datetime NOT NULL,
124-
PRIMARY KEY (`id`),
125-
UNIQUE KEY `oauth_user` (`email`,`type`)
126-
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
129+
`lastLogin` datetime NOT NULL
130+
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
131+
132+
--
133+
-- Indexes for dumped tables
134+
--
135+
136+
--
137+
-- Indexes for table `favorites`
138+
--
139+
ALTER TABLE `favorites`
140+
ADD UNIQUE KEY `userPattern` (`userId`,`patternId`);
141+
142+
--
143+
-- Indexes for table `patternLink`
144+
--
145+
ALTER TABLE `patternLink`
146+
ADD UNIQUE KEY `index` (`patternId`,`parentId`,`userId`);
147+
148+
--
149+
-- Indexes for table `patterns`
150+
--
151+
ALTER TABLE `patterns`
152+
ADD PRIMARY KEY (`id`),
153+
ADD KEY `userPatterns` (`id`,`owner`),
154+
ADD KEY `patternStats` (`visibility`,`flavor`),
155+
ADD KEY `owner` (`owner`),
156+
ADD KEY `ratings_sort` (`ratingSort`);
157+
ALTER TABLE `patterns` ADD FULLTEXT KEY `search` (`name`,`description`,`author`);
158+
159+
--
160+
-- Indexes for table `saveSessions`
161+
--
162+
ALTER TABLE `saveSessions`
163+
ADD PRIMARY KEY (`id`),
164+
ADD UNIQUE KEY `patternID` (`patternID`);
165+
166+
--
167+
-- Indexes for table `sessions`
168+
--
169+
ALTER TABLE `sessions`
170+
ADD UNIQUE KEY `id` (`id`),
171+
ADD KEY `userId` (`userId`),
172+
ADD KEY `access_time` (`access`);
173+
174+
--
175+
-- Indexes for table `userRatings`
176+
--
177+
ALTER TABLE `userRatings`
178+
ADD UNIQUE KEY `rating` (`userId`,`patternId`);
179+
180+
--
181+
-- Indexes for table `users`
182+
--
183+
ALTER TABLE `users`
184+
ADD PRIMARY KEY (`id`),
185+
ADD UNIQUE KEY `oauth_user` (`email`,`type`);
186+
187+
--
188+
-- AUTO_INCREMENT for dumped tables
189+
--
190+
191+
--
192+
-- AUTO_INCREMENT for table `patterns`
193+
--
194+
ALTER TABLE `patterns`
195+
MODIFY `id` mediumint UNSIGNED NOT NULL AUTO_INCREMENT;
196+
197+
--
198+
-- AUTO_INCREMENT for table `users`
199+
--
200+
ALTER TABLE `users`
201+
MODIFY `id` int NOT NULL AUTO_INCREMENT;
202+
COMMIT;
203+
204+
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
205+
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
206+
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

0 commit comments

Comments
 (0)