1 #region MIT license
2 //
3 // MIT license
4 //
5 // Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne
6 //
7 // Permission is hereby granted, free of charge, to any person obtaining a copy
8 // of this software and associated documentation files (the "Software"), to deal
9 // in the Software without restriction, including without limitation the rights
10 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 // copies of the Software, and to permit persons to whom the Software is
12 // furnished to do so, subject to the following conditions:
13 //
14 // The above copyright notice and this permission notice shall be included in
15 // all copies or substantial portions of the Software.
16 //
17 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 // THE SOFTWARE.
24 //
25 #endregion
26 
27 using System.Collections.Generic;
28 using DbLinq.Data.Linq.Sql;
29 using DbLinq.Vendor.Implementation;
30 
31 namespace DbLinq.Sqlite
32 {
33 #if !MONO_STRICT
34     public
35 #endif
36     class SqliteSqlProvider : SqlProvider
37     {
GetInsertIds(SqlStatement table, IList<SqlStatement> autoPKColumn, IList<SqlStatement> inputPKColumns, IList<SqlStatement> inputPKValues, IList<SqlStatement> outputColumns, IList<SqlStatement> outputParameters, IList<SqlStatement> outputExpressions)38         public override SqlStatement GetInsertIds(SqlStatement table, IList<SqlStatement> autoPKColumn, IList<SqlStatement> inputPKColumns, IList<SqlStatement> inputPKValues, IList<SqlStatement> outputColumns, IList<SqlStatement> outputParameters, IList<SqlStatement> outputExpressions)
39         {
40             return "SELECT last_insert_rowid()";
41         }
42 
GetLiteralStringLength(SqlStatement a)43         protected override SqlStatement GetLiteralStringLength(SqlStatement a)
44         {
45             return SqlStatement.Format("LENGTH({0})", a);
46         }
47 
GetLiteralStringToUpper(SqlStatement a)48         protected override SqlStatement GetLiteralStringToUpper(SqlStatement a)
49         {
50             return SqlStatement.Format("UPPER({0})", a);
51         }
52 
GetLiteralStringToLower(SqlStatement a)53         protected override SqlStatement GetLiteralStringToLower(SqlStatement a)
54         {
55             return string.Format("LOWER({0})", a);
56         }
57 
GetLiteralCount(SqlStatement a)58         protected override SqlStatement GetLiteralCount(SqlStatement a)
59         {
60             return "COUNT(*)";
61         }
62 
GetLiteral(bool literal)63         public override SqlStatement GetLiteral(bool literal)
64         {
65             if (literal)
66                 return "1";
67             return "0";
68         }
69     }
70 }
71