Skip to content

Commit 90b6aa1

Browse files
committed
Series import: add basic support for categories aliases.
Fix #696
1 parent 7dc006c commit 90b6aa1

File tree

3 files changed

+50
-4
lines changed

3 files changed

+50
-4
lines changed

src/main/resources/liquibase/version/0.4.xml

+1
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,6 @@
3535
<include file="0.4/2017-11-08--import_series.xml" relativeToChangelogFile="true" />
3636
<include file="0.4/2017-11-09--series_import_requests_url_length.xml" relativeToChangelogFile="true" />
3737
<include file="0.4/2017-11-09--series_import_parsed_data_release_year_field.xml" relativeToChangelogFile="true" />
38+
<include file="0.4/2017-11-09--categories_aliases.xml" relativeToChangelogFile="true" />
3839

3940
</databaseChangeLog>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<databaseChangeLog
3+
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
6+
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd">
7+
8+
<changeSet id="create-categories_aliases-table" author="php-coder" context="scheme">
9+
10+
<createTable tableName="categories_aliases">
11+
<column name="category_id" type="INTEGER">
12+
<constraints
13+
nullable="false"
14+
references="categories(id)"
15+
foreignKeyName="fk_categories_aliases_category_id" />
16+
</column>
17+
<column name="name" type="VARCHAR(50)">
18+
<constraints
19+
unique="true"
20+
uniqueConstraintName="uc_categories_aliases_name" />
21+
</column>
22+
<column name="name_ru" type="VARCHAR(50)">
23+
<constraints
24+
unique="true"
25+
uniqueConstraintName="uc_categories_aliases_name_ru" />
26+
</column>
27+
</createTable>
28+
29+
</changeSet>
30+
31+
<changeSet id="add-dinosaurs-alias" author="php-coder" context="test-data">
32+
33+
<insert tableName="categories_aliases">
34+
<column name="category_id" valueNumeric="1" />
35+
<column name="name" value="Dinosaurs" />
36+
<column name="name_ru" value="Динозавры" />
37+
</insert>
38+
39+
</changeSet>
40+
41+
</databaseChangeLog>

src/main/resources/sql/category_dao_queries.properties

+8-4
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,14 @@ category.count_stamps_by_categories = \
6868
GROUP BY s.category_id
6969

7070
category.find_ids_by_names = \
71-
SELECT id \
72-
FROM categories \
73-
WHERE name IN (:names) \
74-
OR name_ru IN (:names)
71+
SELECT c.id \
72+
FROM categories c \
73+
LEFT JOIN categories_aliases ca \
74+
ON ca.category_id = c.id \
75+
WHERE c.name IN (:names) \
76+
OR c.name_ru IN (:names) \
77+
OR ca.name IN (:names) \
78+
OR ca.name_ru IN (:names)
7579

7680
category.find_ids_by_name_pattern = \
7781
SELECT id \

0 commit comments

Comments
 (0)