diff --git a/cqlengine/connection.py b/cqlengine/connection.py index 2768db10..5e89c60d 100644 --- a/cqlengine/connection.py +++ b/cqlengine/connection.py @@ -268,8 +268,12 @@ def connection_manager(): def execute_native(query, params=None, consistency_level=None): # TODO use consistency level - prepared = session.prepare(query) - result = session.execute(prepared, params) + if isinstance(query, BaseCQLStatement): + params = query.get_context() + query = str(query) + params = params or {} + + result = session.execute(query, params) return result def get_session(): diff --git a/cqlengine/management.py b/cqlengine/management.py index b5c6419a..c0562bab 100644 --- a/cqlengine/management.py +++ b/cqlengine/management.py @@ -223,7 +223,7 @@ def get_fields(model): ks_name = model._get_keyspace() col_family = model.column_family_name(include_keyspace=False) - query = "select * from system.schema_columns where keyspace_name = ? and columnfamily_name = ?" + query = "select * from system.schema_columns where keyspace_name = %s and columnfamily_name = %s" tmp = execute_native(query, [ks_name, col_family]) # Tables containing only primary keys do not appear to create diff --git a/cqlengine/query.py b/cqlengine/query.py index 383b9c05..4ea884ee 100644 --- a/cqlengine/query.py +++ b/cqlengine/query.py @@ -4,7 +4,7 @@ from datetime import datetime, timedelta from cqlengine import BaseContainerColumn, Map, columns from cqlengine.columns import Counter, List, Set -from cqlengine.connection import execute, RowResult +from cqlengine.connection import execute, RowResult, execute_native from cqlengine.exceptions import CQLEngineException, ValidationError from cqlengine.functions import Token, BaseQueryFunction, QueryValue @@ -775,7 +775,7 @@ class DMLQuery(object): if self._batch: return self._batch.add_query(q) else: - return execute(q, consistency_level=self._consistency) + return execute_native(q, consistency_level=self._consistency) def batch(self, batch_obj): if batch_obj is not None and not isinstance(batch_obj, BatchQuery): diff --git a/cqlengine/tests/statements/test_base_clause.py b/cqlengine/tests/statements/test_base_clause.py index c5bbeb40..4fd6718d 100644 --- a/cqlengine/tests/statements/test_base_clause.py +++ b/cqlengine/tests/statements/test_base_clause.py @@ -8,9 +8,9 @@ class BaseClauseTests(TestCase): ss = BaseClause('a', 'b') assert ss.get_context_size() == 1 - ctx = {} + ctx = [] ss.set_context_id(10) ss.update_context(ctx) - assert ctx == {'10': 'b'} + assert ctx == ['10': 'b']