Browse Source

fcl-db: test order by upper()

mattias 4 days ago
parent
commit
aed82c9adf
2 changed files with 30 additions and 12 deletions
  1. 15 0
      packages/fcl-db/tests/tcparser.pas
  2. 15 12
      packages/fcl-db/tests/testsqlscanner.lpi

+ 15 - 0
packages/fcl-db/tests/tcparser.pas

@@ -472,6 +472,7 @@ type
     procedure TestOrderByCollate;
     procedure TestOrderByCollate;
     procedure TestOrderByCollateDesc;
     procedure TestOrderByCollateDesc;
     procedure TestOrderByCollateDescTwoFields;
     procedure TestOrderByCollateDescTwoFields;
+    procedure TestOrderByUpper;
     procedure TestGroupByOne;
     procedure TestGroupByOne;
     procedure TestGroupByTwo;
     procedure TestGroupByTwo;
     procedure TestHavingOne;
     procedure TestHavingOne;
@@ -4813,6 +4814,20 @@ begin
   AssertIdentifierName('Correct collation','E',O.Collation);
   AssertIdentifierName('Correct collation','E',O.Collation);
 end;
 end;
 
 
+procedure TTestSelectParser.TestOrderByUpper;
+var
+  O: TSQLOrderByElement;
+begin
+  TestSelect('SELECT B FROM A ORDER BY UPPER(C)');
+  AssertEquals('One field',1,Select.Fields.Count);
+  AssertEquals('One table',1,Select.Tables.Count);
+  AssertField(Select.Fields[0],'B');
+  AssertTable(Select.Tables[0],'A');
+  AssertEquals('One order by field',1,Select.Orderby.Count);
+  O:=AssertOrderBy(Select.OrderBy[0],'C',0,obAscending);
+  AssertEquals('Order by upper',O.Upper,true);
+end;
+
 procedure TTestSelectParser.TestGroupByOne;
 procedure TTestSelectParser.TestGroupByOne;
 begin
 begin
   TestSelect('SELECT B,COUNT(C) AS THECOUNT FROM A GROUP BY B');
   TestSelect('SELECT B,COUNT(C) AS THECOUNT FROM A GROUP BY B');

+ 15 - 12
packages/fcl-db/tests/testsqlscanner.lpi

@@ -18,8 +18,8 @@
       <CharSet Value=""/>
       <CharSet Value=""/>
     </VersionInfo>
     </VersionInfo>
     <BuildModes Count="2">
     <BuildModes Count="2">
-      <Item1 Name="Debug" Default="True"/>
-      <Item2 Name="Release">
+      <Item1 Name="Standard" Default="True"/>
+      <Item2 Name="UnicodeRTL">
         <CompilerOptions>
         <CompilerOptions>
           <Version Value="11"/>
           <Version Value="11"/>
           <Target>
           <Target>
@@ -32,18 +32,24 @@
           </SearchPaths>
           </SearchPaths>
           <Parsing>
           <Parsing>
             <SyntaxOptions>
             <SyntaxOptions>
+              <IncludeAssertionCode Value="True"/>
               <UseAnsiStrings Value="False"/>
               <UseAnsiStrings Value="False"/>
             </SyntaxOptions>
             </SyntaxOptions>
           </Parsing>
           </Parsing>
           <CodeGeneration>
           <CodeGeneration>
-            <SmartLinkUnit Value="True"/>
+            <Checks>
+              <IOChecks Value="True"/>
+              <RangeChecks Value="True"/>
+              <OverflowChecks Value="True"/>
+              <StackChecks Value="True"/>
+            </Checks>
+            <Optimizations>
+              <OptimizationLevel Value="0"/>
+            </Optimizations>
           </CodeGeneration>
           </CodeGeneration>
-          <Linking>
-            <Debugging>
-              <GenerateDebugInfo Value="False"/>
-            </Debugging>
-            <LinkSmart Value="True"/>
-          </Linking>
+          <Other>
+            <CustomOptions Value="-tunicodertl"/>
+          </Other>
         </CompilerOptions>
         </CompilerOptions>
       </Item2>
       </Item2>
     </BuildModes>
     </BuildModes>
@@ -123,9 +129,6 @@
         <OptimizationLevel Value="0"/>
         <OptimizationLevel Value="0"/>
       </Optimizations>
       </Optimizations>
     </CodeGeneration>
     </CodeGeneration>
-    <Other>
-      <CustomOptions Value="-tunicodertl"/>
-    </Other>
   </CompilerOptions>
   </CompilerOptions>
   <Debugging>
   <Debugging>
     <Exceptions Count="3">
     <Exceptions Count="3">