Browse Source

sql parser: add test for SQL generation of fields with path

git-svn-id: trunk@46422 -
ondrej 5 years ago
parent
commit
67d2c51b8d
1 changed files with 19 additions and 0 deletions
  1. 19 0
      packages/fcl-db/tests/tcgensql.pas

+ 19 - 0
packages/fcl-db/tests/tcgensql.pas

@@ -64,6 +64,7 @@ type
     Procedure TestValueLiteral;
     Procedure TestValueLiteral;
     Procedure TestLiteralExpression;
     Procedure TestLiteralExpression;
     Procedure TestSelectField;
     Procedure TestSelectField;
+    Procedure TestSelectFieldWithPath;
     Procedure TestSimpleTablereference;
     Procedure TestSimpleTablereference;
     Procedure TestSimpleSelect;
     Procedure TestSimpleSelect;
     Procedure TestAnyExpression;
     Procedure TestAnyExpression;
@@ -416,6 +417,24 @@ begin
   AssertSQL(F,'A AS B');
   AssertSQL(F,'A AS B');
 end;
 end;
 
 
+procedure TTestGenerateSQL.TestSelectFieldWithPath;
+
+Var
+  I : TSQLIdentifierExpression;
+  F : TSQLSelectField;
+
+begin
+  I:=CreateIdentifierExpression('A');
+  I.AddIdentifierToPath(CreateIdentifier('B'));
+  I.AddIdentifierToPath(CreateIdentifier('C'));
+  F:=CreateSelectField(I,'');
+  AssertSQL(F,'A.B.C', []);
+  AssertSQL(F,'"A"."B"."C"',[sfoDoubleQuoteIdentifier]);
+  AssertSQL(F,'`A`.`B`.`C`',[sfoBackQuoteIdentifier]);
+  AssertSQL(F,'''A''.''B''.''C''',[sfoSingleQuoteIdentifier]);
+  FTofree:=F;
+end;
+
 procedure TTestGenerateSQL.TestSimpleTablereference;
 procedure TTestGenerateSQL.TestSimpleTablereference;
 
 
 Var
 Var