コード例 #1
0
 def test_str_subclass(self):
     class StrSubClass(str):
         pass
     x = StrSubClass('test')
     csub = convert(x)
     cstr = convert('test')
     self.assertEqual(csub, cstr)
コード例 #2
0
ファイル: test_monetize.py プロジェクト: Patechoc/pymonetdb
 def test_str_subclass(self):
     class StrSubClass(str):
         pass
     x = StrSubClass('test')
     csub = convert(x)
     cstr = convert('test')
     self.assertEqual(csub, cstr)
コード例 #3
0
ファイル: mapicursor.py プロジェクト: Crixalis2013/MonetDB-1
    def execute(self, operation, parameters=None):
        # type: (str, Optional[Dict]) -> int
        """Prepare and execute a database operation (query or
        command).  Parameters may be provided as mapping and
        will be bound to variables in the operation.
        """

        self._query_id = -1
        self.description = None
        self._rows = []

        if not self.connection:
            self._exception_handler(ProgrammingError, "cursor is closed")

        # clear message history
        self.messages = []

        if operation == self.operation:
            # same operation, DBAPI mentioned something about reuse
            # but monetdb doesn't support this
            pass
        else:
            self.operation = operation

        query = ""
        if parameters:
            if isinstance(parameters, dict):
                query = operation % {
                    k: monetize.convert(v)
                    for (k, v) in parameters.items()
                }
            elif type(parameters) == list or type(parameters) == tuple:
                query = operation % tuple(
                    [monetize.convert(item) for item in parameters])
            elif isinstance(parameters, str):
                query = operation % monetize.convert(parameters)
            else:
                msg = "Parameters should be None, dict or list, now it is %s"
                self._exception_handler(ValueError, msg % type(parameters))
        else:
            query = operation

        if query[0] == '#':  # skip comment
            return 0
        if query.find(';') < 0:
            query += ';\n'
        if query[-1:] != '\n':
            query += '\n'
        block = self.connection.cmd(query)
        self._store_result(block)
        self.rownumber = 0
        self._executed = operation
        return self.rowcount
コード例 #4
0
    def execute(self, operation, parameters=None):
        """Prepare and execute a database operation (query or
        command).  Parameters may be provided as mapping and
        will be bound to variables in the operation.
        """

        if not self.connection:
            self.__exception_handler(ProgrammingError, "cursor is closed")

        # clear message history
        self.messages = []

        # convert to utf-8
        if PY2:
            if type(operation) == unicode:
                # don't decode if it is already unicode
                operation = operation.encode('utf-8')
            else:
                operation = u(operation).encode('utf-8')

        # set the number of rows to fetch
        if self.arraysize != self.connection.replysize:
            self.connection.set_replysize(self.arraysize)

        if operation == self.operation:
            # same operation, DBAPI mentioned something about reuse
            # but monetdb doesn't support this
            pass
        else:
            self.operation = operation

        query = ""
        if parameters:
            if isinstance(parameters, dict):
                query = operation % dict([(k, monetize.convert(v))
                                          for (k, v) in parameters.items()])
            elif type(parameters) == list or type(parameters) == tuple:
                query = operation % tuple(
                    [monetize.convert(item) for item in parameters])
            elif isinstance(parameters, str):
                query = operation % monetize.convert(parameters)
            else:
                msg = "Parameters should be None, dict or list, now it is %s"
                self.__exception_handler(ValueError, msg % type(parameters))
        else:
            query = operation

        block = self.connection.execute(query)
        while self.__store_result(block) != None:
            block = self.connection.mapi.read_response()
        self.rownumber = 0
        self.__executed = operation
        return self.rowcount
コード例 #5
0
ファイル: cursors.py プロジェクト: Patechoc/pymonetdb
    def execute(self, operation, parameters=None):
        """Prepare and execute a database operation (query or
        command).  Parameters may be provided as mapping and
        will be bound to variables in the operation.
        """

        if not self.connection:
            self.__exception_handler(ProgrammingError, "cursor is closed")

        # clear message history
        self.messages = []

        # convert to utf-8
        if PY2:
            if type(operation) == unicode:
                # don't decode if it is already unicode
                operation = operation.encode('utf-8')
            else:
                operation = u(operation).encode('utf-8')

        # set the number of rows to fetch
        if self.arraysize != self.connection.replysize:
            self.connection.set_replysize(self.arraysize)

        if operation == self.operation:
            # same operation, DBAPI mentioned something about reuse
            # but monetdb doesn't support this
            pass
        else:
            self.operation = operation

        query = ""
        if parameters:
            if isinstance(parameters, dict):
                query = operation % dict([(k, monetize.convert(v))
                                         for (k, v) in parameters.items()])
            elif type(parameters) == list or type(parameters) == tuple:
                query = operation % tuple([monetize.convert(item) for item
                                           in parameters])
            elif isinstance(parameters, str):
                query = operation % monetize.convert(parameters)
            else:
                msg = "Parameters should be None, dict or list, now it is %s"
                self.__exception_handler(ValueError, msg % type(parameters))
        else:
            query = operation

        block = self.connection.execute(query)
        self.__store_result(block)
        self.rownumber = 0
        self.__executed = operation
        return self.rowcount
コード例 #6
0
ファイル: cursors.py プロジェクト: sstalin/pymonetdb
    def execute(self, operation, parameters=None):
        # type: (str, Optional[Dict]) -> int
        """Prepare and execute a database operation (query or
        command).  Parameters may be provided as mapping and
        will be bound to variables in the operation.
        """

        if not self.connection:
            self._exception_handler(ProgrammingError, "cursor is closed")

        # clear message history
        self.messages = []

        if PY2:
            operation = ensure_binary(operation)

        # set the number of rows to fetch
        if self.arraysize != self.connection.replysize:
            self.connection.set_replysize(self.arraysize)

        if operation == self.operation:
            # same operation, DBAPI mentioned something about reuse
            # but monetdb doesn't support this
            pass
        else:
            self.operation = operation

        query = ""
        if parameters:
            if isinstance(parameters, dict):
                query = operation % {
                    k: monetize.convert(v)
                    for (k, v) in parameters.items()
                }
            elif type(parameters) == list or type(parameters) == tuple:
                query = operation % tuple(
                    [monetize.convert(item) for item in parameters])
            elif isinstance(parameters, str):
                query = operation % monetize.convert(parameters)
            else:
                msg = "Parameters should be None, dict or list, now it is %s"
                self._exception_handler(ValueError, msg % type(parameters))
        else:
            query = operation

        block = self.connection.execute(query)
        self._store_result(block)
        self.rownumber = 0
        self._executed = operation
        return self.rowcount
コード例 #7
0
ファイル: mapi_async.py プロジェクト: madgik/exareme2
 def bind(self, operation, parameters):
     if parameters:
         if isinstance(parameters, dict):
             query = operation % {
                 k: monetize.convert(v)
                 for (k, v) in parameters.items()
             }
         elif type(parameters) == list or type(parameters) == tuple:
             query = operation % tuple(
                 [monetize.convert(item) for item in parameters])
         elif isinstance(parameters, str):
             query = operation % monetize.convert(parameters)
         else:
             msg = "Parameters should be None, dict or list, now it is %s"
     else:
         query = operation
     return query
コード例 #8
0
ファイル: mapi_async.py プロジェクト: madgik/exareme2
 def bindsingle(self, parameter):
     return monetize.convert(parameter)
コード例 #9
0
 def test_customtype(self):
     t = ["list", "test"]
     self.assertRaises(ProgrammingError, monetize.convert, t)
     monetize.mapping_dict[list] = str
     self.assertEqual(monetize.convert(t), "['list', 'test']")
コード例 #10
0
ファイル: test_monetize.py プロジェクト: tandreas/pymonetdb
 def test_timedelta(self):
     x = datetime.timedelta(days=5, hours=2, minutes=10)
     self.assertEqual(convert(x), "INTERVAL '439800' SECOND")
コード例 #11
0
ファイル: test_monetize.py プロジェクト: tandreas/pymonetdb
 def test_time(self):
     x = datetime.time(12, 5)
     self.assertEqual(convert(x), "TIME '12:05:00'")
コード例 #12
0
ファイル: test_monetize.py プロジェクト: tandreas/pymonetdb
 def test_date(self):
     x = datetime.date(2017, 12, 6)
     self.assertEqual(convert(x), "DATE '2017-12-06'")
コード例 #13
0
ファイル: test_monetize.py プロジェクト: tandreas/pymonetdb
 def test_datetime(self):
     x = datetime.datetime(2017, 12, 6, 12, 30)
     self.assertEqual(convert(x), "TIMESTAMP '2017-12-06 12:30:00'")