Beispiel #1
0
 def build_json_path(builder, path):
     path_sql, has_params, has_wildcards = SQLBuilder.build_json_path(
         builder, path)
     if has_params:
         throw(TranslationError,
               "Oracle doesn't allow parameters in JSON paths")
     return path_sql, has_params, has_wildcards
Beispiel #2
0
 def test_pyformat(self):
     self.provider.paramstyle = 'pyformat'
     b = SQLBuilder(self.provider, self.ast)
     self.assertEqual(b.sql, 'SELECT "A"\n'
                             'FROM "T1"\n'
                             'WHERE "B" = %(p1)s\n  AND "C" = %(p2)s\n  AND "D" = %(p2)s\n  AND "E" = %(p1)s')
     self.assertEqual(b.layout, (self.key1, self.key2))
Beispiel #3
0
 def test_named(self):
     self.provider.paramstyle = 'named'
     b = SQLBuilder(self.provider, self.ast)
     self.assertEqual(b.sql, 'SELECT "A"\n'
                             'FROM "T1"\n'
                             'WHERE "B" = :p1\n  AND "C" = :p2\n  AND "D" = :p2\n  AND "E" = :p1')
     self.assertEqual(b.layout, (self.key1, self.key2))
Beispiel #4
0
 def test_qmark(self):
     self.provider.paramstyle = 'qmark'
     b = SQLBuilder(self.provider, self.ast)
     self.assertEqual(b.sql, 'SELECT "A"\n'
                             'FROM "T1"\n'
                             'WHERE "B" = ?\n  AND "C" = ?\n  AND "D" = ?\n  AND "E" = ?')
     self.assertEqual(b.layout, (self.key1, self.key2, self.key2, self.key1))
Beispiel #5
0
 def test_numeric(self):
     self.provider.paramstyle = 'numeric'
     b = SQLBuilder(self.provider, self.ast)
     self.assertEqual(b.sql, 'SELECT "A"\n'
                             'FROM "T1"\n'
                             'WHERE "B" = :1\n  AND "C" = :2\n  AND "D" = :2\n  AND "E" = :1')
     self.assertEqual(b.layout, [self.key1, self.key2, self.key2, self.key1])
Beispiel #6
0
 def INSERT(builder, table_name, columns, values, returning=None):
     if not values:
         result = [
             'INSERT INTO ',
             builder.quote_name(table_name), ' DEFAULT VALUES'
         ]
     else:
         result = SQLBuilder.INSERT(builder, table_name, columns, values)
     if returning is not None:
         result.extend([' RETURNING ', builder.quote_name(returning)])
     return result
Beispiel #7
0
 def INSERT(builder, table_name, columns, values, returning=None):
     if not values:
         return 'INSERT INTO %s DEFAULT VALUES' % builder.quote_name(
             table_name)
     return SQLBuilder.INSERT(builder, table_name, columns, values,
                              returning)
Beispiel #8
0
 def __init__(builder, provider, ast):
     builder.json1_available = provider.json1_available
     SQLBuilder.__init__(builder, provider, ast)
Beispiel #9
0
 def INSERT(builder, table_name, columns, values, returning=None):
     result = SQLBuilder.INSERT(builder, table_name, columns, values)
     if returning is not None:
         result.extend((' RETURNING ', builder.quote_name(returning),
                        ' INTO :new_id'))
     return result