Skip to content

Commit fc72149

Browse files
committed
Add proper translation of different sections of index creation
1 parent cc226ff commit fc72149

File tree

2 files changed

+36
-3
lines changed

2 files changed

+36
-3
lines changed

Orm/Xtensive.Orm.PostgreSql/Sql.Drivers.PostgreSql/v12_0/Translator.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,35 @@
22
// This code is distributed under MIT license terms.
33
// See the License.txt file in the project root for more information.
44

5+
using Xtensive.Sql.Compiler;
6+
using Xtensive.Sql.Ddl;
7+
58
namespace Xtensive.Sql.Drivers.PostgreSql.v12_0
69
{
710
internal class Translator : v10_0.Translator
811
{
12+
public override void Translate(SqlCompilerContext context, SqlCreateIndex node, CreateIndexSection section)
13+
{
14+
var index = node.Index;
15+
if (!index.IsFullText) {
16+
var output = context.Output;
17+
switch (section) {
18+
case CreateIndexSection.NonkeyColumnsEnter:
19+
_ = output.AppendOpeningPunctuation("INCLUDE (");
20+
break;
21+
case CreateIndexSection.NonkeyColumnsExit:
22+
_ = output.AppendClosingPunctuation(")");
23+
break;
24+
default:
25+
base.Translate(context, node, section);
26+
break;
27+
}
28+
}
29+
else {
30+
base.Translate(context, node, section);
31+
}
32+
}
33+
934
// Constructors
1035

1136
public Translator(SqlDriver driver)

Orm/Xtensive.Orm.PostgreSql/Sql.Drivers.PostgreSql/v8_0/Translator.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -294,22 +294,30 @@ public override void Translate(SqlCompilerContext context, SqlCreateIndex node,
294294
if (index.IsSpatial) {
295295
_ = output.Append(" USING GIST");
296296
}
297+
break;
298+
case CreateIndexSection.ColumnsEnter:
297299
_ = output.Append("(");
298300
break;
299-
case CreateIndexSection.StorageOptions:
301+
case CreateIndexSection.ColumnsExit:
300302
_ = output.Append(")");
303+
break;
304+
case CreateIndexSection.NonkeyColumnsEnter:
305+
break;
306+
case CreateIndexSection.NonkeyColumnsExit:
307+
break;
308+
case CreateIndexSection.StorageOptions:
301309
AppendIndexStorageParameters(output, index);
302310
if (!string.IsNullOrEmpty(index.Filegroup)) {
303311
_ = output.Append(" TABLESPACE ");
304312
TranslateIdentifier(output, index.Filegroup);
305313
}
306314

307-
break;
308-
case CreateIndexSection.Exit:
309315
break;
310316
case CreateIndexSection.Where:
311317
_ = output.Append(" WHERE ");
312318
break;
319+
case CreateIndexSection.Exit:
320+
break;
313321
default:
314322
break;
315323
;

0 commit comments

Comments
 (0)