Merge lp:~mmcm/akiban-sql-parser/full-text-index into lp:~akiban-technologies/akiban-sql-parser/trunk

Proposed by Mike McMahon
Status: Merged
Approved by: Nathan Williams
Approved revision: 290
Merged at revision: 290
Proposed branch: lp:~mmcm/akiban-sql-parser/full-text-index
Merge into: lp:~akiban-technologies/akiban-sql-parser/trunk
Diff against target: 138 lines (+56/-2)
6 files modified
src/main/java/com/akiban/sql/parser/IndexColumnList.java (+1/-1)
src/main/javacc/SQLGrammar.jj (+20/-1)
src/test/resources/com/akiban/sql/parser/create-full-text-index-1.expected (+32/-0)
src/test/resources/com/akiban/sql/parser/create-full-text-index-1.sql (+1/-0)
src/test/resources/com/akiban/sql/unparser/create-full-text-index-1.expected (+1/-0)
src/test/resources/com/akiban/sql/unparser/create-full-text-index-1.sql (+1/-0)
To merge this branch: bzr merge lp:~mmcm/akiban-sql-parser/full-text-index
Reviewer Review Type Date Requested Status
Nathan Williams Approve
Review via email: mp+150734@code.launchpad.net

Description of the change

Add FULL_TEXT as a special index function, like Z_ORDER_LAT_LON.

This will define a full text index on the given field(s).

To post a comment you must log in.
Revision history for this message
Nathan Williams (nwilliams) wrote :

As described.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/main/java/com/akiban/sql/parser/IndexColumnList.java'
2--- src/main/java/com/akiban/sql/parser/IndexColumnList.java 2012-11-07 17:49:31 +0000
3+++ src/main/java/com/akiban/sql/parser/IndexColumnList.java 2013-02-27 07:57:18 +0000
4@@ -29,7 +29,7 @@
5
6 public static enum FunctionType
7 {
8- Z_ORDER_LAT_LON
9+ Z_ORDER_LAT_LON, FULL_TEXT
10 // ADD MORE AS NEEDED
11 }
12
13
14=== modified file 'src/main/javacc/SQLGrammar.jj'
15--- src/main/javacc/SQLGrammar.jj 2013-02-05 07:50:48 +0000
16+++ src/main/javacc/SQLGrammar.jj 2013-02-27 07:57:18 +0000
17@@ -2254,7 +2254,6 @@
18 | <WORK: "work">
19 | <WRITE: "write">
20 | <YEAR: "year">
21-| <Z_ORDER_LAT_LON: "z_order_lat_lon">
22 }
23
24 /* This list should contain only and all SQL92 keywords that are
25@@ -2393,6 +2392,7 @@
26 | <XMLPARSE: "xmlparse">
27 | <XMLQUERY: "xmlquery">
28 | <XMLSERIALIZE: "xmlserialize">
29+| <Z_ORDER_LAT_LON: "z_order_lat_lon">
30 }
31
32 /* This list should contain non-SQL92 keywords that are not reserved.
33@@ -2434,6 +2434,7 @@
34 | <FN: "fn">
35 | <FORCE: "force">
36 | <FORMAT: "format">
37+| <FULL_TEXT: "full_text">
38 | <HEADER: "header">
39 | <HOUR_MICROSECOND: "hour_microsecond">
40 | <HOUR_MINUTE: "hour_minute">
41@@ -14807,6 +14808,7 @@
42 | tok = <FORCE>
43 | tok = <FORMAT>
44 | tok = <FORTRAN>
45+| tok = <FULL_TEXT>
46 | tok = <GENERATED>
47 | tok = <HEADER>
48 | tok = <HOUR_MICROSECOND>
49@@ -15025,6 +15027,9 @@
50 groupIndexItemList(IndexColumnList columnList) throws StandardException :
51 {}
52 {
53+ LOOKAHEAD( { getToken(1).kind == FULL_TEXT && getToken(2).kind == LEFT_PAREN } )
54+ fullTextColumnItemList(columnList)
55+|
56 groupIndexItem(columnList)
57 ( <COMMA> groupIndexItem(columnList) )*
58 }
59@@ -15052,6 +15057,20 @@
60 groupIndexColumnItem(columnList)
61 }
62
63+void fullTextColumnItemList(IndexColumnList columnList) throws StandardException :
64+{
65+}
66+{
67+ <FULL_TEXT> <LEFT_PAREN>
68+ groupIndexColumnItem(columnList)
69+ ( <COMMA> groupIndexColumnItem(columnList) )*
70+ <RIGHT_PAREN>
71+ {
72+ columnList.applyFunction(IndexColumnList.FunctionType.FULL_TEXT,
73+ 0, columnList.size());
74+ }
75+}
76+
77 void
78 groupIndexColumnItem(IndexColumnList columnList) throws StandardException :
79 {
80
81=== added file 'src/test/resources/com/akiban/sql/parser/create-full-text-index-1.expected'
82--- src/test/resources/com/akiban/sql/parser/create-full-text-index-1.expected 1970-01-01 00:00:00 +0000
83+++ src/test/resources/com/akiban/sql/parser/create-full-text-index-1.expected 2013-02-27 07:57:18 +0000
84@@ -0,0 +1,32 @@
85+com.akiban.sql.parser.CreateIndexNode@6c81526f
86+name: text1
87+statementType: CREATE INDEX
88+unique: false
89+indexType: null
90+indexName: text1
91+tableName: t1
92+joinType: null
93+properties: null
94+existenceCheck: NO_CONDITION
95+storageLocation: null
96+
97+ com.akiban.sql.parser.IndexColumnList@1e4b2d10
98+
99+ methodName: FULL_TEXT
100+ firstArg: 0
101+ lastArg: 2
102+ [0]:
103+ com.akiban.sql.parser.IndexColumn@597b84f9
104+ columnName: c1
105+ tableName: null
106+ ascending
107+ [1]:
108+ com.akiban.sql.parser.IndexColumn@3c572554
109+ columnName: c2
110+ tableName: null
111+ ascending
112+ [2]:
113+ com.akiban.sql.parser.IndexColumn@7d53ccbe
114+ columnName: c3
115+ tableName: t2
116+ ascending
117\ No newline at end of file
118
119=== added file 'src/test/resources/com/akiban/sql/parser/create-full-text-index-1.sql'
120--- src/test/resources/com/akiban/sql/parser/create-full-text-index-1.sql 1970-01-01 00:00:00 +0000
121+++ src/test/resources/com/akiban/sql/parser/create-full-text-index-1.sql 2013-02-27 07:57:18 +0000
122@@ -0,0 +1,1 @@
123+CREATE INDEX text1 ON t1 (FULL_TEXT(c1, c2, t2.c3))
124\ No newline at end of file
125
126=== added file 'src/test/resources/com/akiban/sql/unparser/create-full-text-index-1.expected'
127--- src/test/resources/com/akiban/sql/unparser/create-full-text-index-1.expected 1970-01-01 00:00:00 +0000
128+++ src/test/resources/com/akiban/sql/unparser/create-full-text-index-1.expected 2013-02-27 07:57:18 +0000
129@@ -0,0 +1,1 @@
130+CREATE INDEX text1 ON t1(FULL_TEXT(c1, c2, t2.c3))
131\ No newline at end of file
132
133=== added file 'src/test/resources/com/akiban/sql/unparser/create-full-text-index-1.sql'
134--- src/test/resources/com/akiban/sql/unparser/create-full-text-index-1.sql 1970-01-01 00:00:00 +0000
135+++ src/test/resources/com/akiban/sql/unparser/create-full-text-index-1.sql 2013-02-27 07:57:18 +0000
136@@ -0,0 +1,1 @@
137+CREATE INDEX text1 ON t1 (FULL_TEXT(c1, c2, t2.c3))
138\ No newline at end of file

Subscribers

People subscribed via source and target branches