Check firebird.log [no messages found for interval when this test was running]
Jump to: output_first_mismatch    outcomes_full_history    elapsed_time_chart
Show cross-report outcomes.

Annotation type Annotation details
1 @message
firebird.driver.types.DatabaseError: SQL error code = -104
-Datatypes are not comparable in expression

LOG DETAILS:

2024-11-22 14:41:16.412
2024-11-22 14:41:16.412 act = <firebird.qa.plugin.Action object at [hex]>
2024-11-22 14:41:16.412 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2024-11-22 14:41:16.412
2024-11-22 14:41:16.412     @pytest.mark.version('>=2.5')
2024-11-22 14:41:16.412     def test_1(act: Action, capsys):
2024-11-22 14:41:16.412         with act.db.connect() as con:
2024-11-22 14:41:16.412             con.execute_immediate(proc_ddl)
2024-11-22 14:41:16.412             con.commit()
2024-11-22 14:41:16.412             c = con.cursor()
2024-11-22 14:41:16.412 >           for row in c.execute("select o_dts from test_proc('2019-'|| COALESCE( ?, 1) ||'-01' )", [3]):
2024-11-22 14:41:16.412
2024-11-22 14:41:16.412 tests\bugs\core_6108_test.py:37:
2024-11-22 14:41:16.412 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2024-11-22 14:41:16.412
2024-11-22 14:41:16.412 self = <firebird.driver.core.Cursor object at [hex]>
2024-11-22 14:41:16.413 operation = "select o_dts from test_proc('2019-'|| COALESCE( ?, 1) ||'-01' )"
2024-11-22 14:41:16.413 parameters = [3]
2024-11-22 14:41:16.413
2024-11-22 14:41:16.413     def execute(self, operation: Union[str, Statement], parameters: Sequence[Any]=None) -> Cursor:
2024-11-22 14:41:16.413         """Executes SQL command or prepared `Statement`.
2024-11-22 14:41:16.413
2024-11-22 14:41:16.413         Starts new transaction if transaction manager associated with cursor is not active.
2024-11-22 14:41:16.413
2024-11-22 14:41:16.413         Arguments:
2024-11-22 14:41:16.413             operation: SQL command or prepared `Statement`.
2024-11-22 14:41:16.413             parameters: Sequence of parameters. Must contain one entry for each argument
2024-11-22 14:41:16.413                         that the operation expects.
2024-11-22 14:41:16.413
2024-11-22 14:41:16.413         Returns:
2024-11-22 14:41:16.413             `self` so call to execute could be used as iterator over returned rows.
2024-11-22 14:41:16.413
2024-11-22 14:41:16.413         Note:
2024-11-22 14:41:16.413             If `operation` is a string with SQL command that is exactly the same as the
2024-11-22 14:41:16.413             last executed command, the internally prepared `Statement` from last execution
2024-11-22 14:41:16.414             is reused.
2024-11-22 14:41:16.414
2024-11-22 14:41:16.414             If cursor is open, it's closed before new statement is executed.
2024-11-22 14:41:16.414         """
2024-11-22 14:41:16.414 >       self._execute(operation, parameters)
2024-11-22 14:41:16.414
2024-11-22 14:41:16.414 C:\Python3x\Lib\site-packages\firebird\driver\core.py:3755:
2024-11-22 14:41:16.414 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2024-11-22 14:41:16.414
2024-11-22 14:41:16.414 self = <firebird.driver.core.Cursor object at [hex]>
2024-11-22 14:41:16.414 operation = "select o_dts from test_proc('2019-'|| COALESCE( ?, 1) ||'-01' )"
2024-11-22 14:41:16.414 parameters = [3], flags = <CursorFlag.NONE: 0>
2024-11-22 14:41:16.414
2024-11-22 14:41:16.414     def _execute(self, operation: Union[str, Statement],
2024-11-22 14:41:16.414                  parameters: Sequence=None, flags: CursorFlag=CursorFlag.NONE) -> None:
2024-11-22 14:41:16.414         if not self._transaction.is_active():
2024-11-22 14:41:16.414             self._transaction.begin()
2024-11-22 14:41:16.414         if isinstance(operation, Statement):
2024-11-22 14:41:16.414             if operation._connection() is not self._connection:
2024-11-22 14:41:16.415                 raise InterfaceError('Cannot execute Statement that was created by different Connection.')
2024-11-22 14:41:16.415             self.close()
2024-11-22 14:41:16.415             self._stmt = operation
2024-11-22 14:41:16.415             self.__internal = False
2024-11-22 14:41:16.415         elif self._stmt is not None and self._stmt.sql == operation:
2024-11-22 14:41:16.415             # We should execute the same SQL string again
2024-11-22 14:41:16.415             self._clear()
2024-11-22 14:41:16.415         else:
2024-11-22 14:41:16.415             self.close()
2024-11-22 14:41:16.415 >           self._stmt = self._connection._prepare(operation, self._transaction)
2024-11-22 14:41:16.415
2024-11-22 14:41:16.415 C:\Python3x\Lib\site-packages\firebird\driver\core.py:3625:
2024-11-22 14:41:16.415 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2024-11-22 14:41:16.415
2024-11-22 14:41:16.415 self = Connection[6382]
2024-11-22 14:41:16.415 sql = "select o_dts from test_proc('2019-'|| COALESCE( ?, 1) ||'-01' )"
2024-11-22 14:41:16.415 tra = <firebird.driver.core.TransactionManager object at [hex]>
2024-11-22 14:41:16.415
2024-11-22 14:41:16.415     def _prepare(self, sql: str, tra: TransactionManager) -> Statement:
2024-11-22 14:41:16.416         if _commit := not tra.is_active():
2024-11-22 14:41:16.416             tra.begin()
2024-11-22 14:41:16.416 >       stmt = self._att.prepare(tra._tra, sql, self.__sql_dialect)
2024-11-22 14:41:16.416
2024-11-22 14:41:16.416 C:\Python3x\Lib\site-packages\firebird\driver\core.py:1713:
2024-11-22 14:41:16.416 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2024-11-22 14:41:16.416
2024-11-22 14:41:16.416 self = <firebird.driver.interfaces.iAttachment_v3 object at [hex]>
2024-11-22 14:41:16.416 transaction = <firebird.driver.interfaces.iTransaction_v3 object at [hex]>
2024-11-22 14:41:16.416 stmt = "select o_dts from test_proc('2019-'|| COALESCE( ?, 1) ||'-01' )"
2024-11-22 14:41:16.416 dialect = 3, flags = <PreparePrefetchFlag.METADATA: 71>
2024-11-22 14:41:16.416
2024-11-22 14:41:16.416         def prepare(self, transaction: iTransaction, stmt: str, dialect: int,
2024-11-22 14:41:16.416                     flags: PreparePrefetchFlag = PreparePrefetchFlag.METADATA) -> iStatement:
2024-11-22 14:41:16.416             """Replaces `isc_dsql_prepare()`. Additional parameter flags makes it
2024-11-22 14:41:16.416     possible to control what information will be preloaded from engine at once
2024-11-22 14:41:16.416     (i.e. in single network packet for remote operation)."""
2024-11-22 14:41:16.416             b_stmt: bytes = stmt.encode(self.encoding)
2024-11-22 14:41:16.416             result = self.vtable.prepare(self, self.status, transaction, len(b_stmt), b_stmt,
2024-11-22 14:41:16.417                                          dialect, flags)
2024-11-22 14:41:16.417 >           self._check()
2024-11-22 14:41:16.417
2024-11-22 14:41:16.417 C:\Python3x\Lib\site-packages\firebird\driver\interfaces.py:1134:
2024-11-22 14:41:16.417 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2024-11-22 14:41:16.417
2024-11-22 14:41:16.417 self = <firebird.driver.interfaces.iAttachment_v3 object at [hex]>
2024-11-22 14:41:16.417
2024-11-22 14:41:16.417     def _check(self) -> None:
2024-11-22 14:41:16.417         state = self.status.get_state()
2024-11-22 14:41:16.417         if StateFlag.ERRORS in state:
2024-11-22 14:41:16.417 >           raise self.__report(DatabaseError, self.status.get_errors())
2024-11-22 14:41:16.417 E           firebird.driver.types.DatabaseError: SQL error code = -104
2024-11-22 14:41:16.417 E           -Datatypes are not comparable in expression
2024-11-22 14:41:16.417
2024-11-22 14:41:16.417 C:\Python3x\Lib\site-packages\firebird\driver\interfaces.py:113: DatabaseError
2024-11-22 14:41:16.417 ---------------------------- Captured stdout setup ----------------------------
2024-11-22 14:41:16.417 Creating db: localhost:H:\QA\temp\qa2024.tmp\fbqa\test_11219\test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
2 #text
act = <firebird.qa.plugin.Action pytest object at [hex]>
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>

    @pytest.mark.version('>=2.5')
    def test_1(act: Action, capsys):
        with act.db.connect() as con:
            con.execute_immediate(proc_ddl)
            con.commit()
            c = con.cursor()
>           for row in c.execute("select o_dts from test_proc('2019-'|| COALESCE( ?, 1) ||'-01' )", [3]):

tests\bugs\core_6108_test.py:37: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <firebird.driver.core.Cursor pytest object at [hex]>
operation = "select o_dts from test_proc('2019-'|| COALESCE( ?, 1) ||'-01' )"
parameters = [3]

    def execute(self, operation: Union[str, Statement], parameters: Sequence[Any]=None) -> Cursor:
        """Executes SQL command or prepared `Statement`.
    
        Starts new transaction if transaction manager associated with cursor is not active.
    
        Arguments:
            operation: SQL command or prepared `Statement`.
            parameters: Sequence of parameters. Must contain one entry for each argument
                        that the operation expects.
    
        Returns:
            `self` so call to execute could be used as iterator over returned rows.
    
        Note:
            If `operation` is a string with SQL command that is exactly the same as the
            last executed command, the internally prepared `Statement` from last execution
            is reused.
    
            If cursor is open, it's closed before new statement is executed.
        """
>       self._execute(operation, parameters)

C:\Python3x\Lib\site-packages\firebird\driver\core.py:3755: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <firebird.driver.core.Cursor pytest object at [hex]>
operation = "select o_dts from test_proc('2019-'|| COALESCE( ?, 1) ||'-01' )"
parameters = [3], flags = <CursorFlag.NONE: 0>

    def _execute(self, operation: Union[str, Statement],
                 parameters: Sequence=None, flags: CursorFlag=CursorFlag.NONE) -> None:
        if not self._transaction.is_active():
            self._transaction.begin()
        if isinstance(operation, Statement):
            if operation._connection() is not self._connection:
                raise InterfaceError('Cannot execute Statement that was created by different Connection.')
            self.close()
            self._stmt = operation
            self.__internal = False
        elif self._stmt is not None and self._stmt.sql == operation:
            # We should execute the same SQL string again
            self._clear()
        else:
            self.close()
>           self._stmt = self._connection._prepare(operation, self._transaction)

C:\Python3x\Lib\site-packages\firebird\driver\core.py:3625: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Connection[6382]
sql = "select o_dts from test_proc('2019-'|| COALESCE( ?, 1) ||'-01' )"
tra = <firebird.driver.core.TransactionManager pytest object at [hex]>

    def _prepare(self, sql: str, tra: TransactionManager) -> Statement:
        if _commit := not tra.is_active():
            tra.begin()
>       stmt = self._att.prepare(tra._tra, sql, self.__sql_dialect)

C:\Python3x\Lib\site-packages\firebird\driver\core.py:1713: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <firebird.driver.interfaces.iAttachment_v3 pytest object at [hex]>
transaction = <firebird.driver.interfaces.iTransaction_v3 pytest object at [hex]>
stmt = "select o_dts from test_proc('2019-'|| COALESCE( ?, 1) ||'-01' )"
dialect = 3, flags = <PreparePrefetchFlag.METADATA: 71>

        def prepare(self, transaction: iTransaction, stmt: str, dialect: int,
                    flags: PreparePrefetchFlag = PreparePrefetchFlag.METADATA) -> iStatement:
            """Replaces `isc_dsql_prepare()`. Additional parameter flags makes it
    possible to control what information will be preloaded from engine at once
    (i.e. in single network packet for remote operation)."""
            b_stmt: bytes = stmt.encode(self.encoding)
            result = self.vtable.prepare(self, self.status, transaction, len(b_stmt), b_stmt,
                                         dialect, flags)
>           self._check()

C:\Python3x\Lib\site-packages\firebird\driver\interfaces.py:1134: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <firebird.driver.interfaces.iAttachment_v3 pytest object at [hex]>

    def _check(self) -> None:
        state = self.status.get_state()
        if StateFlag.ERRORS in state:
>           raise self.__report(DatabaseError, self.status.get_errors())
E           firebird.driver.types.DatabaseError: SQL error code = -104
E           -Datatypes are not comparable in expression

C:\Python3x\Lib\site-packages\firebird\driver\interfaces.py:113: DatabaseError
Full history of outcomes and elapsed time, ms:
NN SNAP_INFO CS_outcome SS_outcome CS_run_time SS_run_time CS_run_beg CS_run_end SS_run_beg SS_run_end
1 3.0.13.33809 2025.05.14 6638e F F 861 516 2025.06.29 14:42:35.075 2025.06.29 14:42:35.936 2025.06.29 14:05:57.905 2025.06.29 14:05:58.421
2 3.0.13.33809 2025.05.06 28ad0 F F 913 482 2025.05.14 08:24:13.467 2025.05.14 08:24:14.380 2025.05.14 07:45:56.269 2025.05.14 07:45:56.751
3 3.0.13.33808 2025.04.25 28426 F F 895 795 2025.05.06 13:34:59.753 2025.05.06 13:35:00.648 2025.05.06 12:58:35.904 2025.05.06 12:58:36.699
4 3.0.13.33803 2025.04.23 307b8 F F 880 811 2025.04.25 13:43:35.297 2025.04.25 13:43:36.177 2025.04.25 13:07:03.231 2025.04.25 13:07:04.042
5 3.0.13.33803 2025.03.25 ea22a F F 847 821 2025.04.20 08:14:53.490 2025.04.20 08:14:54.337 2025.04.20 07:16:36.584 2025.04.20 07:16:37.405
6 3.0.13.33803 2025.02.25 08ebd F F 880 904 2025.03.25 10:30:42.945 2025.03.25 10:30:43.825 2025.03.25 09:31:10.032 2025.03.25 09:31:10.936
7 3.0.13.33796 2025.01.29 0ab85 F F 1240 516 2025.02.25 12:21:14.864 2025.02.25 12:21:16.104 2025.02.25 11:44:20.199 2025.02.25 11:44:20.715
8 3.0.13.33796 2025.01.14 99b3b F F 1176 816 2025.01.24 11:25:43.987 2025.01.24 11:25:45.163 2025.01.24 10:49:03.634 2025.01.24 10:49:04.450
9 3.0.13.33795 2024.12.13 fbbd9 F F 860 480 2025.01.01 12:36:49.044 2025.01.01 12:36:49.904 2025.01.01 11:59:39.827 2025.01.01 11:59:40.307
10 3.0.13.33795 2024.11.24 b8847 F F 861 481 2024.12.11 12:34:33.756 2024.12.11 12:34:34.617 2024.12.11 11:57:35.650 2024.12.11 11:57:36.131
11 3.0.13.33794 2024.10.15 abe09 F F 915 482 2024.11.22 12:10:57.734 2024.11.22 12:10:58.649 2024.11.22 11:33:51.824 2024.11.22 11:33:52.306
12 3.0.13.33793 2024.10.14 f831a F F 852 459 2024.10.15 12:38:30.714 2024.10.15 12:38:31.566 2024.10.15 12:01:17.769 2024.10.15 12:01:18.228
13 3.0.13.33793 2024.10.04 82ccc F F 894 794 2024.10.12 12:37:28.493 2024.10.12 12:37:29.387 2024.10.12 12:00:34.391 2024.10.12 12:00:35.185
14 3.0.13.33792 2024.08.31 d8791 F F 1186 517 2024.10.03 12:45:47.710 2024.10.03 12:45:48.896 2024.10.03 12:07:51.092 2024.10.03 12:07:51.609
15 3.0.13.33787 2024.08.23 8ee81 F F 1235 576 2024.09.01 12:56:04.511 2024.09.01 12:56:05.746 2024.09.01 12:15:07.364 2024.09.01 12:15:07.940
16 3.0.13.33787 2024.08.09 df740 F F 958 914 2024.08.23 12:52:13.267 2024.08.23 12:52:14.225 2024.08.23 12:11:19.336 2024.08.23 12:11:20.250
17 3.0.12.33746 2024.07.15 11dd4 F F 961 606 2024.08.09 12:12:31.869 2024.08.09 12:12:32.830 2024.08.09 11:31:59.286 2024.08.09 11:31:59.892
18 3.0.12.33746 2024.06.11 8a5eb F F 774 459 2024.07.15 11:05:41.268 2024.07.15 11:05:42.042 2024.07.15 10:29:56.073 2024.07.15 10:29:56.532
19 3.0.12.33745 2024.05.21 301a7 F F 562 438 2024.05.25 08:03:20.366 2024.05.25 08:03:20.928 2024.05.25 07:29:38.720 2024.05.25 07:29:39.158
20 3.0.12.33745 2024.05.09 9cf37 F F 656 438 2024.05.21 08:03:44.385 2024.05.21 08:03:45.041 2024.05.21 07:29:55.212 2024.05.21 07:29:55.650
21 3.0.12.33744 2024.04.20 af6b2 F F 610 437 2024.05.11 08:00:09.994 2024.05.11 08:00:10.604 2024.05.11 07:27:06.544 2024.05.11 07:27:06.981
22 3.0.12.33740 2024.04.06 c6cdd F F 609 406 2024.04.21 02:14:20.453 2024.04.21 02:14:21.062 2024.04.21 01:41:39.459 2024.04.21 01:41:39.865
23 3.0.12.33726 2024.03.29 1fac6 F F 625 406 2024.04.05 07:09:52.929 2024.04.05 07:09:53.554 2024.04.05 06:37:48.200 2024.04.05 06:37:48.606
24 3.0.12.33726 2024.03.11 456ca F F 593 405 2024.03.29 12:50:07.759 2024.03.29 12:50:08.352 2024.03.29 12:20:05.450 2024.03.29 12:20:05.855

Elapsed time, ms. Chart for last 24 runs:

Last commits information (all timestamps in UTC):