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
2 @message
ValueError: Incorrect ARRAY field value.

LOG DETAILS:

2025-07-03 05:18:54.998
2025-07-03 05:18:55.008 act = <firebird.qa.plugin.Action object at [hex]>
2025-07-03 05:18:55.019 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-07-03 05:18:55.030
2025-07-03 05:18:55.040 @pytest.mark.version('>=3.0.12')
2025-07-03 05:18:55.049 def test_1(act: Action, capsys):
2025-07-03 05:18:55.060 with act.db.connect() as con:
2025-07-03 05:18:55.067 cur = con.cursor()
2025-07-03 05:18:55.073
2025-07-03 05:18:55.079 arrayIn = [
2025-07-03 05:18:55.084 [1, 2, 3, 4],
2025-07-03 05:18:55.090 [5, 6, 7, 8],
2025-07-03 05:18:55.100 [9,10,11,12]
2025-07-03 05:18:55.109 ]
2025-07-03 05:18:55.117
2025-07-03 05:18:55.123 >           cur.execute("insert into array_table values (?)", (arrayIn,))
2025-07-03 05:18:55.129
2025-07-03 05:18:55.134 tests/bugs/gh_7647_test.py:44:
2025-07-03 05:18:55.143 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-07-03 05:18:55.151
2025-07-03 05:18:55.157 self = <firebird.driver.core.Cursor object at [hex]>
2025-07-03 05:18:55.163 operation = 'insert into array_table values (?)'
2025-07-03 05:18:55.168 parameters = ([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],)
2025-07-03 05:18:55.174
2025-07-03 05:18:55.185 def execute(self, operation: Union[str, Statement], parameters: Sequence[Any]=None) -> Cursor:
2025-07-03 05:18:55.194 """Executes SQL command or prepared `Statement`.
2025-07-03 05:18:55.205
2025-07-03 05:18:55.214 Starts new transaction if transaction manager associated with cursor is not active.
2025-07-03 05:18:55.221
2025-07-03 05:18:55.227 Arguments:
2025-07-03 05:18:55.233 operation: SQL command or prepared `Statement`.
2025-07-03 05:18:55.241 parameters: Sequence of parameters. Must contain one entry for each argument
2025-07-03 05:18:55.247 that the operation expects.
2025-07-03 05:18:55.254
2025-07-03 05:18:55.264 Returns:
2025-07-03 05:18:55.275 `self` so call to execute could be used as iterator over returned rows.
2025-07-03 05:18:55.284
2025-07-03 05:18:55.290 Note:
2025-07-03 05:18:55.296 If `operation` is a string with SQL command that is exactly the same as the
2025-07-03 05:18:55.302 last executed command, the internally prepared `Statement` from last execution
2025-07-03 05:18:55.307 is reused.
2025-07-03 05:18:55.313
2025-07-03 05:18:55.319 If cursor is open, it's closed before new statement is executed.
2025-07-03 05:18:55.326 """
2025-07-03 05:18:55.334 >       self._execute(operation, parameters)
2025-07-03 05:18:55.342
2025-07-03 05:18:55.349 ../lib/python3.11/site-packages/firebird/driver/core.py:3861:
2025-07-03 05:18:55.357 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-07-03 05:18:55.363
2025-07-03 05:18:55.370 self = <firebird.driver.core.Cursor object at [hex]>
2025-07-03 05:18:55.377 operation = 'insert into array_table values (?)'
2025-07-03 05:18:55.383 parameters = ([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],)
2025-07-03 05:18:55.389 flags = <CursorFlag.NONE: 0>
2025-07-03 05:18:55.396
2025-07-03 05:18:55.402 def _execute(self, operation: Union[str, Statement],
2025-07-03 05:18:55.410 parameters: Sequence=None, flags: CursorFlag=CursorFlag.NONE) -> None:
2025-07-03 05:18:55.421 if not self._transaction.is_active():
2025-07-03 05:18:55.432 self._transaction.begin()
2025-07-03 05:18:55.439 if isinstance(operation, Statement):
2025-07-03 05:18:55.449 if operation._connection() is not self._connection:
2025-07-03 05:18:55.456 raise InterfaceError('Cannot execute Statement that was created by different Connection.')
2025-07-03 05:18:55.462 self.close()
2025-07-03 05:18:55.468 self._stmt = operation
2025-07-03 05:18:55.474 self.__internal = False
2025-07-03 05:18:55.481 elif self._stmt is not None and self._stmt.sql == operation:
2025-07-03 05:18:55.487 # We should execute the same SQL string again
2025-07-03 05:18:55.493 self._clear()
2025-07-03 05:18:55.499 else:
2025-07-03 05:18:55.507 self.close()
2025-07-03 05:18:55.514 self._stmt = self._connection._prepare(operation, self._transaction)
2025-07-03 05:18:55.521 self.__internal = True
2025-07-03 05:18:55.528 self._cursor_flags = flags
2025-07-03 05:18:55.534 in_meta = None
2025-07-03 05:18:55.541 # Execute the statement
2025-07-03 05:18:55.548 try:
2025-07-03 05:18:55.558 if self._stmt._in_cnt > 0:
2025-07-03 05:18:55.572 >               in_meta, self._stmt._in_buffer = self._pack_input(self._stmt._in_meta,
2025-07-03 05:18:55.583 self._stmt._in_buffer,
2025-07-03 05:18:55.592 parameters)
2025-07-03 05:18:55.600
2025-07-03 05:18:55.607 ../lib/python3.11/site-packages/firebird/driver/core.py:3738:
2025-07-03 05:18:55.614 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-07-03 05:18:55.625
2025-07-03 05:18:55.639 self = <firebird.driver.core.Cursor object at [hex]>
2025-07-03 05:18:55.648 meta = <firebird.driver.interfaces.iMessageMetadata object at [hex]>
2025-07-03 05:18:55.656 buffer = <ctypes.c_char_Array_10 object at [hex]>
2025-07-03 05:18:55.663 parameters = ([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],)
2025-07-03 05:18:55.670
2025-07-03 05:18:55.676 def _pack_input(self, meta: iMessageMetadata, buffer: bytes,
2025-07-03 05:18:55.681 parameters: Sequence) -> Tuple[iMessageMetadata, bytes]:
2025-07-03 05:18:55.685 # pylint: disable=R1702
2025-07-03 05:18:55.690 in_cnt = meta.get_count()
2025-07-03 05:18:55.694 if len(parameters) != in_cnt:
2025-07-03 05:18:55.699 raise InterfaceError(f"Statement parameter sequence contains"
2025-07-03 05:18:55.705 f" {len(parameters)} items,"
2025-07-03 05:18:55.712 f" but exactly {in_cnt} are required")
2025-07-03 05:18:55.718 #
2025-07-03 05:18:55.725 buf_size = len(buffer)
2025-07-03 05:18:55.736 memset(buffer, 0, buf_size)
2025-07-03 05:18:55.746 # Adjust metadata where needed
2025-07-03 05:18:55.754 with meta.get_builder() as builder:
2025-07-03 05:18:55.766 for i in range(in_cnt):
2025-07-03 05:18:55.777 value = parameters[i]
2025-07-03 05:18:55.786 if _is_str_param(value, meta.get_type(i)):
2025-07-03 05:18:55.795 builder.set_type(i, SQLDataType.TEXT)
2025-07-03 05:18:55.803 if not isinstance(value, (str, bytes, bytearray)):
2025-07-03 05:18:55.811 value = str(value)
2025-07-03 05:18:55.822 builder.set_length(i, len(value.encode(self._encoding)) if isinstance(value, str) else len(value))
2025-07-03 05:18:55.832 in_meta = builder.get_metadata()
2025-07-03 05:18:55.843 new_size = in_meta.get_message_length()
2025-07-03 05:18:55.855 in_buffer = create_string_buffer(new_size) if buf_size < new_size else buffer
2025-07-03 05:18:55.864 buf_addr = addressof(in_buffer)
2025-07-03 05:18:55.873 with in_meta:
2025-07-03 05:18:55.880 for i in range(in_cnt):
2025-07-03 05:18:55.887 value = parameters[i]
2025-07-03 05:18:55.894 datatype = in_meta.get_type(i)
2025-07-03 05:18:55.899 length = in_meta.get_length(i)
2025-07-03 05:18:55.906 offset = in_meta.get_offset(i)
2025-07-03 05:18:55.912 # handle NULL value
2025-07-03 05:18:55.918 in_buffer[in_meta.get_null_offset(i)] = 1 if value is None else 0
2025-07-03 05:18:55.928 if value is None:
2025-07-03 05:18:55.937 continue
2025-07-03 05:18:55.945 # store parameter value
2025-07-03 05:18:55.957 if _is_str_param(value, datatype):
2025-07-03 05:18:55.968 # Implicit conversion to string
2025-07-03 05:18:55.983 if not isinstance(value, (str, bytes, bytearray)):
2025-07-03 05:18:55.992 value = str(value)
2025-07-03 05:18:55.999 if isinstance(value, str) and self._encoding:
2025-07-03 05:18:56.007 value = value.encode(self._encoding)
2025-07-03 05:18:56.015 if (datatype in (SQLDataType.TEXT, SQLDataType.VARYING)
2025-07-03 05:18:56.027 and len(value) > length):
2025-07-03 05:18:56.036 raise ValueError(f"Value of parameter ({i}) is too long,"
2025-07-03 05:18:56.044 f" expected {length}, found {len(value)}")
2025-07-03 05:18:56.051 memmove(buf_addr + offset, value, len(value))
2025-07-03 05:18:56.058 elif datatype in (SQLDataType.SHORT, SQLDataType.LONG, SQLDataType.INT64):
2025-07-03 05:18:56.064 # It's scalled integer?
2025-07-03 05:18:56.070 scale = in_meta.get_scale(i)
2025-07-03 05:18:56.077 if in_meta.get_subtype(i) or scale:
2025-07-03 05:18:56.086 if isinstance(value, decimal.Decimal):
2025-07-03 05:18:56.095 value = int((value * _tenTo[abs(scale)]).to_integral())
2025-07-03 05:18:56.101 elif isinstance(value, (int, float)):
2025-07-03 05:18:56.107 value = int(value * _tenTo[abs(scale)])
2025-07-03 05:18:56.114 else:
2025-07-03 05:18:56.124 raise TypeError(f'Objects of type {type(value)} are not '
2025-07-03 05:18:56.132 f' acceptable input for'
2025-07-03 05:18:56.139 f' a fixed-point column.')
2025-07-03 05:18:56.145 _check_integer_range(value, self._dialect, datatype,
2025-07-03 05:18:56.157 in_meta.get_subtype(i), scale)
2025-07-03 05:18:56.167 memmove(buf_addr + offset, value.to_bytes(length, 'little', signed=True), length)
2025-07-03 05:18:56.179 elif datatype == SQLDataType.DATE:
2025-07-03 05:18:56.189 memmove(buf_addr + offset, _util.encode_date(value).to_bytes(length, 'little', signed=True), length)
2025-07-03 05:18:56.199 elif datatype == SQLDataType.TIME:
2025-07-03 05:18:56.205 memmove(buf_addr + offset, _util.encode_time(value).to_bytes(length, 'little'), length)
2025-07-03 05:18:56.211 elif datatype == SQLDataType.TIME_TZ:
2025-07-03 05:18:56.217 memmove(buf_addr + offset, _util.encode_time_tz(value), length)
2025-07-03 05:18:56.229 elif datatype == SQLDataType.TIMESTAMP:
2025-07-03 05:18:56.239 memmove(buf_addr + offset, _encode_timestamp(value), length)
2025-07-03 05:18:56.249 elif datatype == SQLDataType.TIMESTAMP_TZ:
2025-07-03 05:18:56.262 memmove(buf_addr + offset, _util.encode_timestamp_tz(value), length)
2025-07-03 05:18:56.272 elif datatype == SQLDataType.DEC16:
2025-07-03 05:18:56.280 memmove(buf_addr + offset, byref(_util.get_decfloat16().from_str(str(value))), length)
2025-07-03 05:18:56.286 elif datatype == SQLDataType.DEC34:
2025-07-03 05:18:56.292 memmove(buf_addr + offset, _util.get_decfloat34().from_str(str(value)), length)
2025-07-03 05:18:56.305 elif datatype == SQLDataType.INT128:
2025-07-03 05:18:56.316 memmove(buf_addr + offset, _util.get_int128().from_str(str(value), in_meta.get_scale(i)), length)
2025-07-03 05:18:56.325 elif datatype == SQLDataType.FLOAT:
2025-07-03 05:18:56.332 memmove(buf_addr + offset, struct.pack('f', value), length)
2025-07-03 05:18:56.340 elif datatype == SQLDataType.DOUBLE:
2025-07-03 05:18:56.347 memmove(buf_addr + offset, struct.pack('d', value), length)
2025-07-03 05:18:56.359 elif datatype == SQLDataType.BOOLEAN:
2025-07-03 05:18:56.369 memmove(buf_addr + offset, (1 if value else 0).to_bytes(length, 'little'), length)
2025-07-03 05:18:56.382 elif datatype == SQLDataType.BLOB:
2025-07-03 05:18:56.393 blobid = a.ISC_QUAD(0, 0)
2025-07-03 05:18:56.405 if hasattr(value, 'read'):
2025-07-03 05:18:56.414 # It seems we've got file-like object, use stream BLOB
2025-07-03 05:18:56.423 blob_buf = _create_blob_buffer()
2025-07-03 05:18:56.430 blob: iBlob = self._connection._att.create_blob(self._transaction._tra,
2025-07-03 05:18:56.437 blobid, _bpb_stream)
2025-07-03 05:18:56.443 try:
2025-07-03 05:18:56.448 memmove(buf_addr + offset, addressof(blobid), length)
2025-07-03 05:18:56.461 while value_chunk := value.read(MAX_BLOB_SEGMENT_SIZE):
2025-07-03 05:18:56.474 blob_buf.raw = value_chunk.encode(self._encoding) if isinstance(value_chunk, str) else value_chunk
2025-07-03 05:18:56.484 blob.put_segment(len(value_chunk), blob_buf)
2025-07-03 05:18:56.493 memset(blob_buf, 0, MAX_BLOB_SEGMENT_SIZE)
2025-07-03 05:18:56.500 finally:
2025-07-03 05:18:56.506 blob.close()
2025-07-03 05:18:56.517 del blob_buf
2025-07-03 05:18:56.526 else:
2025-07-03 05:18:56.534 # Non-stream BLOB
2025-07-03 05:18:56.543 if isinstance(value, str):
2025-07-03 05:18:56.552 if in_meta.get_subtype(i) == 1:
2025-07-03 05:18:56.559 value = value.encode(self._encoding)
2025-07-03 05:18:56.571 else:
2025-07-03 05:18:56.581 raise TypeError('String value is not'
2025-07-03 05:18:56.593 ' acceptable type for'
2025-07-03 05:18:56.605 ' a non-textual BLOB column.')
2025-07-03 05:18:56.615 blob_buf = create_string_buffer(value)
2025-07-03 05:18:56.624 blob: iBlob = self._connection._att.create_blob(self._transaction._tra,
2025-07-03 05:18:56.631 blobid)
2025-07-03 05:18:56.638 try:
2025-07-03 05:18:56.646 memmove(buf_addr + offset, addressof(blobid), length)
2025-07-03 05:18:56.659 total_size = len(value)
2025-07-03 05:18:56.670 bytes_written_so_far = 0
2025-07-03 05:18:56.677 bytes_to_write_this_time = MAX_BLOB_SEGMENT_SIZE
2025-07-03 05:18:56.683 while bytes_written_so_far < total_size:
2025-07-03 05:18:56.688 if (total_size - bytes_written_so_far) < MAX_BLOB_SEGMENT_SIZE:
2025-07-03 05:18:56.694 bytes_to_write_this_time = (total_size - bytes_written_so_far)
2025-07-03 05:18:56.700 blob.put_segment(bytes_to_write_this_time,
2025-07-03 05:18:56.706 addressof(blob_buf) + bytes_written_so_far)
2025-07-03 05:18:56.712 bytes_written_so_far += bytes_to_write_this_time
2025-07-03 05:18:56.717 finally:
2025-07-03 05:18:56.723 blob.close()
2025-07-03 05:18:56.733 del blob_buf
2025-07-03 05:18:56.746 elif datatype == SQLDataType.ARRAY:
2025-07-03 05:18:56.757 arrayid = a.ISC_QUAD(0, 0)
2025-07-03 05:18:56.769 arrayid_ptr = pointer(arrayid)
2025-07-03 05:18:56.781 arraydesc = a.ISC_ARRAY_DESC(0)
2025-07-03 05:18:56.794 isc_status = a.ISC_STATUS_ARRAY()
2025-07-03 05:18:56.806 db_handle = self._connection._get_handle()
2025-07-03 05:18:56.818 tr_handle = self._transaction._get_handle()
2025-07-03 05:18:56.828 relname = in_meta.get_relation(i).encode(self._encoding)
2025-07-03 05:18:56.837 sqlname = in_meta.get_field(i).encode(self._encoding)
2025-07-03 05:18:56.847 api = a.get_api()
2025-07-03 05:18:56.858 sqlsubtype = self._connection._get_array_sqlsubtype(relname, sqlname)
2025-07-03 05:18:56.866 api.isc_array_lookup_bounds(isc_status, db_handle, tr_handle,
2025-07-03 05:18:56.873 relname, sqlname, arraydesc)
2025-07-03 05:18:56.879 if a.db_api_error(isc_status):  # pragma: no cover
2025-07-03 05:18:56.884 raise a.exception_from_status(DatabaseError,
2025-07-03 05:18:56.889 isc_status,
2025-07-03 05:18:56.895 "Error in Cursor._pack_input:isc_array_lookup_bounds()")
2025-07-03 05:18:56.901 value_type = arraydesc.array_desc_dtype
2025-07-03 05:18:56.908 value_scale = arraydesc.array_desc_scale
2025-07-03 05:18:56.914 value_size = arraydesc.array_desc_length
2025-07-03 05:18:56.920 if value_type in (a.blr_varying, a.blr_varying2):
2025-07-03 05:18:56.926 value_size += 2
2025-07-03 05:18:56.936 dimensions = []
2025-07-03 05:18:56.950 total_num_elements = 1
2025-07-03 05:18:56.961 for dimension in range(arraydesc.array_desc_dimensions):
2025-07-03 05:18:56.969 bounds = arraydesc.array_desc_bounds[dimension]
2025-07-03 05:18:56.976 dimensions.append((bounds.array_bound_upper + 1) - bounds.array_bound_lower)
2025-07-03 05:18:56.983 total_num_elements *= dimensions[dimension]
2025-07-03 05:18:56.988 total_size = total_num_elements * value_size
2025-07-03 05:18:56.995 # Validate value to make sure it matches the array structure
2025-07-03 05:18:57.003 if not self._validate_array_value(0, dimensions, value_type,
2025-07-03 05:18:57.013 sqlsubtype, value_scale, value):
2025-07-03 05:18:57.022 >                       raise ValueError("Incorrect ARRAY field value.")
2025-07-03 05:18:57.031 E                       ValueError: Incorrect ARRAY field value.
2025-07-03 05:18:57.041
2025-07-03 05:18:57.051 ../lib/python3.11/site-packages/firebird/driver/core.py:3541: ValueError
2025-07-03 05:18:57.064 ---------------------------- Captured stdout setup -----------------------------
2025-07-03 05:18:57.077 Creating db: localhost:/var/tmp/qa_2024/test_11597/test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
3 #text
act = <firebird.qa.plugin.Action pytest object at [hex]>
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>

    @pytest.mark.version('>=3.0.12')
    def test_1(act: Action, capsys):
        with act.db.connect() as con:
            cur = con.cursor()
    
            arrayIn = [
                [1, 2, 3, 4],
                [5, 6, 7, 8],
                [9,10,11,12]
              ]
    
>           cur.execute("insert into array_table values (?)", (arrayIn,))

tests/bugs/gh_7647_test.py:44: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <firebird.driver.core.Cursor pytest object at [hex]>
operation = 'insert into array_table values (?)'
parameters = ([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],)

    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)

../lib/python3.11/site-packages/firebird/driver/core.py:3861: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <firebird.driver.core.Cursor pytest object at [hex]>
operation = 'insert into array_table values (?)'
parameters = ([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],)
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)
            self.__internal = True
        self._cursor_flags = flags
        in_meta = None
        # Execute the statement
        try:
            if self._stmt._in_cnt > 0:
>               in_meta, self._stmt._in_buffer = self._pack_input(self._stmt._in_meta,
                                                                  self._stmt._in_buffer,
                                                                  parameters)

../lib/python3.11/site-packages/firebird/driver/core.py:3738: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <firebird.driver.core.Cursor pytest object at [hex]>
meta = <firebird.driver.interfaces.iMessageMetadata pytest object at [hex]>
buffer = <ctypes.c_char_Array_10 pytest object at [hex]>
parameters = ([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],)

    def _pack_input(self, meta: iMessageMetadata, buffer: bytes,
                    parameters: Sequence) -> Tuple[iMessageMetadata, bytes]:
        # pylint: disable=R1702
        in_cnt = meta.get_count()
        if len(parameters) != in_cnt:
            raise InterfaceError(f"Statement parameter sequence contains"
                                 f" {len(parameters)} items,"
                                 f" but exactly {in_cnt} are required")
        #
        buf_size = len(buffer)
        memset(buffer, 0, buf_size)
        # Adjust metadata where needed
        with meta.get_builder() as builder:
            for i in range(in_cnt):
                value = parameters[i]
                if _is_str_param(value, meta.get_type(i)):
                    builder.set_type(i, SQLDataType.TEXT)
                    if not isinstance(value, (str, bytes, bytearray)):
                        value = str(value)
                    builder.set_length(i, len(value.encode(self._encoding)) if isinstance(value, str) else len(value))
            in_meta = builder.get_metadata()
            new_size = in_meta.get_message_length()
            in_buffer = create_string_buffer(new_size) if buf_size < new_size else buffer
        buf_addr = addressof(in_buffer)
        with in_meta:
            for i in range(in_cnt):
                value = parameters[i]
                datatype = in_meta.get_type(i)
                length = in_meta.get_length(i)
                offset = in_meta.get_offset(i)
                # handle NULL value
                in_buffer[in_meta.get_null_offset(i)] = 1 if value is None else 0
                if value is None:
                    continue
                # store parameter value
                if _is_str_param(value, datatype):
                    # Implicit conversion to string
                    if not isinstance(value, (str, bytes, bytearray)):
                        value = str(value)
                    if isinstance(value, str) and self._encoding:
                        value = value.encode(self._encoding)
                    if (datatype in (SQLDataType.TEXT, SQLDataType.VARYING)
                        and len(value) > length):
                        raise ValueError(f"Value of parameter ({i}) is too long,"
                                         f" expected {length}, found {len(value)}")
                    memmove(buf_addr + offset, value, len(value))
                elif datatype in (SQLDataType.SHORT, SQLDataType.LONG, SQLDataType.INT64):
                    # It's scalled integer?
                    scale = in_meta.get_scale(i)
                    if in_meta.get_subtype(i) or scale:
                        if isinstance(value, decimal.Decimal):
                            value = int((value * _tenTo[abs(scale)]).to_integral())
                        elif isinstance(value, (int, float)):
                            value = int(value * _tenTo[abs(scale)])
                        else:
                            raise TypeError(f'Objects of type {type(value)} are not '
                                            f' acceptable input for'
                                            f' a fixed-point column.')
                    _check_integer_range(value, self._dialect, datatype,
                                         in_meta.get_subtype(i), scale)
                    memmove(buf_addr + offset, value.to_bytes(length, 'little', signed=True), length)
                elif datatype == SQLDataType.DATE:
                    memmove(buf_addr + offset, _util.encode_date(value).to_bytes(length, 'little', signed=True), length)
                elif datatype == SQLDataType.TIME:
                    memmove(buf_addr + offset, _util.encode_time(value).to_bytes(length, 'little'), length)
                elif datatype == SQLDataType.TIME_TZ:
                    memmove(buf_addr + offset, _util.encode_time_tz(value), length)
                elif datatype == SQLDataType.TIMESTAMP:
                    memmove(buf_addr + offset, _encode_timestamp(value), length)
                elif datatype == SQLDataType.TIMESTAMP_TZ:
                    memmove(buf_addr + offset, _util.encode_timestamp_tz(value), length)
                elif datatype == SQLDataType.DEC16:
                    memmove(buf_addr + offset, byref(_util.get_decfloat16().from_str(str(value))), length)
                elif datatype == SQLDataType.DEC34:
                    memmove(buf_addr + offset, _util.get_decfloat34().from_str(str(value)), length)
                elif datatype == SQLDataType.INT128:
                    memmove(buf_addr + offset, _util.get_int128().from_str(str(value), in_meta.get_scale(i)), length)
                elif datatype == SQLDataType.FLOAT:
                    memmove(buf_addr + offset, struct.pack('f', value), length)
                elif datatype == SQLDataType.DOUBLE:
                    memmove(buf_addr + offset, struct.pack('d', value), length)
                elif datatype == SQLDataType.BOOLEAN:
                    memmove(buf_addr + offset, (1 if value else 0).to_bytes(length, 'little'), length)
                elif datatype == SQLDataType.BLOB:
                    blobid = a.ISC_QUAD(0, 0)
                    if hasattr(value, 'read'):
                        # It seems we've got file-like object, use stream BLOB
                        blob_buf = _create_blob_buffer()
                        blob: iBlob = self._connection._att.create_blob(self._transaction._tra,
                                                                        blobid, _bpb_stream)
                        try:
                            memmove(buf_addr + offset, addressof(blobid), length)
                            while value_chunk := value.read(MAX_BLOB_SEGMENT_SIZE):
                                blob_buf.raw = value_chunk.encode(self._encoding) if isinstance(value_chunk, str) else value_chunk
                                blob.put_segment(len(value_chunk), blob_buf)
                                memset(blob_buf, 0, MAX_BLOB_SEGMENT_SIZE)
                        finally:
                            blob.close()
                            del blob_buf
                    else:
                        # Non-stream BLOB
                        if isinstance(value, str):
                            if in_meta.get_subtype(i) == 1:
                                value = value.encode(self._encoding)
                            else:
                                raise TypeError('String value is not'
                                                ' acceptable type for'
                                                ' a non-textual BLOB column.')
                        blob_buf = create_string_buffer(value)
                        blob: iBlob = self._connection._att.create_blob(self._transaction._tra,
                                                                        blobid)
                        try:
                            memmove(buf_addr + offset, addressof(blobid), length)
                            total_size = len(value)
                            bytes_written_so_far = 0
                            bytes_to_write_this_time = MAX_BLOB_SEGMENT_SIZE
                            while bytes_written_so_far < total_size:
                                if (total_size - bytes_written_so_far) < MAX_BLOB_SEGMENT_SIZE:
                                    bytes_to_write_this_time = (total_size - bytes_written_so_far)
                                blob.put_segment(bytes_to_write_this_time,
                                                 addressof(blob_buf) + bytes_written_so_far)
                                bytes_written_so_far += bytes_to_write_this_time
                        finally:
                            blob.close()
                            del blob_buf
                elif datatype == SQLDataType.ARRAY:
                    arrayid = a.ISC_QUAD(0, 0)
                    arrayid_ptr = pointer(arrayid)
                    arraydesc = a.ISC_ARRAY_DESC(0)
                    isc_status = a.ISC_STATUS_ARRAY()
                    db_handle = self._connection._get_handle()
                    tr_handle = self._transaction._get_handle()
                    relname = in_meta.get_relation(i).encode(self._encoding)
                    sqlname = in_meta.get_field(i).encode(self._encoding)
                    api = a.get_api()
                    sqlsubtype = self._connection._get_array_sqlsubtype(relname, sqlname)
                    api.isc_array_lookup_bounds(isc_status, db_handle, tr_handle,
                                                relname, sqlname, arraydesc)
                    if a.db_api_error(isc_status):  # pragma: no cover
                        raise a.exception_from_status(DatabaseError,
                                                      isc_status,
                                                      "Error in Cursor._pack_input:isc_array_lookup_bounds()")
                    value_type = arraydesc.array_desc_dtype
                    value_scale = arraydesc.array_desc_scale
                    value_size = arraydesc.array_desc_length
                    if value_type in (a.blr_varying, a.blr_varying2):
                        value_size += 2
                    dimensions = []
                    total_num_elements = 1
                    for dimension in range(arraydesc.array_desc_dimensions):
                        bounds = arraydesc.array_desc_bounds[dimension]
                        dimensions.append((bounds.array_bound_upper + 1) - bounds.array_bound_lower)
                        total_num_elements *= dimensions[dimension]
                    total_size = total_num_elements * value_size
                    # Validate value to make sure it matches the array structure
                    if not self._validate_array_value(0, dimensions, value_type,
                                                      sqlsubtype, value_scale, value):
>                       raise ValueError("Incorrect ARRAY field value.")
E                       ValueError: Incorrect ARRAY field value.

../lib/python3.11/site-packages/firebird/driver/core.py:3541: ValueError
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 6.0.0.892 2025.07.02 10f7d F F 1189 1131 2025.07.03 01:42:15.511 2025.07.03 01:42:16.700 2025.07.02 23:06:39.386 2025.07.02 23:06:40.517
2 6.0.0.889 2025.07.01 969ac F F 1181 1244 2025.07.02 02:10:05.782 2025.07.02 02:10:06.963 2025.07.01 23:20:03.977 2025.07.01 23:20:05.221
3 6.0.0.884 2025.06.30 f7e5f F F 1040 1024 2025.07.01 02:10:29.949 2025.07.01 02:10:30.989 2025.06.30 23:28:29.926 2025.06.30 23:28:30.950
4 6.0.0.881 2025.06.27 7035d F F 1439 1288 2025.06.30 02:00:31.446 2025.06.30 02:00:32.885 2025.06.29 23:15:27.466 2025.06.29 23:15:28.754
5 6.0.0.877 2025.06.26 8e38f F F 1229 915 2025.06.27 01:39:47.499 2025.06.27 01:39:48.728 2025.06.26 23:06:43.139 2025.06.26 23:06:44.054
6 6.0.0.876 2025.06.25 b1bec F F 1198 1038 2025.06.26 01:43:37.385 2025.06.26 01:43:38.583 2025.06.25 23:08:32.724 2025.06.25 23:08:33.762
7 6.0.0.863 2025.06.24 c3c20 F F 1157 1070 2025.06.25 01:43:56.012 2025.06.25 01:43:57.169 2025.06.24 23:08:19.784 2025.06.24 23:08:20.854
8 6.0.0.858 2025.06.23 8d6f7 F F 1021 892 2025.06.24 01:44:17.069 2025.06.24 01:44:18.090 2025.06.23 23:08:28.362 2025.06.23 23:08:29.254
9 6.0.0.849 2025.06.20 7b79c F F 1192 968 2025.06.21 01:55:47.906 2025.06.21 01:55:49.098 2025.06.20 23:17:26.105 2025.06.20 23:17:27.073
10 6.0.0.848 2025.06.19 c483c F F 931 965 2025.06.20 01:52:10.492 2025.06.20 01:52:11.423 2025.06.19 23:14:19.153 2025.06.19 23:14:20.118
11 6.0.0.845 2025.06.18 22b12 F F 1243 1291 2025.06.19 02:00:47.424 2025.06.19 02:00:48.667 2025.06.18 23:17:22.970 2025.06.18 23:17:24.261
12 6.0.0.843 2025.06.16 995f4 F F 1024 1343 2025.06.18 01:59:01.082 2025.06.18 01:59:02.106 2025.06.17 23:20:07.395 2025.06.17 23:20:08.738
13 6.0.0.840 2025.06.14 29bca F F 1075 979 2025.06.16 01:50:48.748 2025.06.16 01:50:49.823 2025.06.15 23:11:45.798 2025.06.15 23:11:46.777
14 6.0.0.838 2025.06.13 0e28a F F 1225 1189 2025.06.14 02:03:47.876 2025.06.14 02:03:49.101 2025.06.13 23:19:18.822 2025.06.13 23:19:20.011
15 6.0.0.835 2025.06.12 2cf29 F F 991 594 2025.06.13 02:03:53.669 2025.06.13 02:03:54.660 2025.06.12 23:24:31.914 2025.06.12 23:24:32.508
16 6.0.0.834 2025.06.11 e889f F F 1056 967 2025.06.12 01:59:00.371 2025.06.12 01:59:01.427 2025.06.11 23:19:44.202 2025.06.11 23:19:45.169
17 6.0.0.800 2025.06.10 1f226 P P 699 642 2025.06.11 00:25:56.439 2025.06.11 00:25:57.138 2025.06.10 22:18:35.632 2025.06.10 22:18:36.274
18 6.0.0.799 2025.06.07 be644 P P 1202 575 2025.06.10 00:27:18.565 2025.06.10 00:27:19.767 2025.06.09 22:18:10.092 2025.06.09 22:18:10.667
19 6.0.0.797 2025.06.06 303e8 P P 768 347 2025.06.07 00:30:55.783 2025.06.07 00:30:56.551 2025.06.06 22:17:56.070 2025.06.06 22:17:56.417
20 6.0.0.795 2025.05.29 7a71a P P 702 398 2025.06.06 00:26:22.129 2025.06.06 00:26:22.831 2025.06.05 22:17:23.347 2025.06.05 22:17:23.745
21 6.0.0.792 2025.05.28 b4327 P P 730 423 2025.05.29 00:39:43.645 2025.05.29 00:39:44.375 2025.05.28 22:19:27.934 2025.05.28 22:19:28.357
22 6.0.0.791 2025.05.27 02db8 P P 698 356 2025.05.28 00:37:08.881 2025.05.28 00:37:09.579 2025.05.27 22:18:53.502 2025.05.27 22:18:53.858
23 6.0.0.789 2025.05.21 64051 P P 1233 383 2025.05.25 00:29:53.429 2025.05.25 00:29:54.662 2025.05.24 22:18:15.043 2025.05.24 22:18:15.426
24 6.0.0.787 2025.05.20 230ad P P 726 527 2025.05.21 00:27:10.353 2025.05.21 00:27:11.079 2025.05.20 22:17:04.603 2025.05.20 22:17:05.130
25 6.0.0.783 2025.05.12 37320 P P 895 516 2025.05.19 12:00:39.139 2025.05.19 12:00:40.034 2025.05.19 10:05:52.146 2025.05.19 10:05:52.662
26 6.0.0.779 2025.05.11 136fa P P 1247 687 2025.05.12 00:22:44.225 2025.05.12 00:22:45.472 2025.05.11 22:16:52.326 2025.05.11 22:16:53.013
27 6.0.0.778 2025.05.07 d735e P P 1308 564 2025.05.08 00:24:46.954 2025.05.08 00:24:48.262 2025.05.07 22:15:36.799 2025.05.07 22:15:37.363
28 6.0.0.776 2025.05.06 007cd P P 754 376 2025.05.07 00:18:52.698 2025.05.07 00:18:53.452 2025.05.06 22:15:24.240 2025.05.06 22:15:24.616
29 6.0.0.770 2025.05.05 82c4a P P 727 516 2025.05.06 00:18:05.161 2025.05.06 00:18:05.888 2025.05.05 22:14:32.642 2025.05.05 22:14:33.158
30 6.0.0.767 2025.05.01 cdd29 P P 784 563 2025.05.02 00:15:51.037 2025.05.02 00:15:51.821 2025.05.01 22:14:06.368 2025.05.01 22:14:06.931
31 6.0.0.762 2025.04.30 5cb15 P P 713 676 2025.05.01 00:11:48.654 2025.05.01 00:11:49.367 2025.04.30 22:12:47.050 2025.04.30 22:12:47.726
32 6.0.0.755 2025.04.29 739c6 P P 1007 632 2025.04.30 00:13:56.366 2025.04.30 00:13:57.373 2025.04.29 22:14:07.078 2025.04.29 22:14:07.710
33 6.0.0.753 2025.04.27 29ab3 P P 790 656 2025.04.28 00:16:14.371 2025.04.28 00:16:15.161 2025.04.27 22:13:31.947 2025.04.27 22:13:32.603
34 6.0.0.745 2025.04.21 78ad8 P P 1117 501 2025.04.26 00:12:29.609 2025.04.26 00:12:30.726 2025.04.25 22:15:21.747 2025.04.25 22:15:22.248
35 6.0.0.744 2025.04.19 e883a P P 811 644 2025.04.20 00:14:05.270 2025.04.20 00:14:06.081 2025.04.19 22:14:23.386 2025.04.19 22:14:24.030
36 6.0.0.742 2025.04.17 abc3b P P 1312 734 2025.04.19 00:16:08.958 2025.04.19 00:16:10.270 2025.04.18 22:14:46.372 2025.04.18 22:14:47.106
37 6.0.0.737 2025.04.16 fe52b P P 661 657 2025.04.17 00:13:02.987 2025.04.17 00:13:03.648 2025.04.16 22:14:43.998 2025.04.16 22:14:44.655
38 6.0.0.736 2025.04.14 3e6be P P 601 316 2025.04.14 23:54:45.209 2025.04.14 23:54:45.810 2025.04.14 22:06:31.014 2025.04.14 22:06:31.330
39 6.0.0.735 2025.04.13 6635c P P 1220 584 2025.04.13 23:57:58.315 2025.04.13 23:57:59.535 2025.04.13 22:07:34.266 2025.04.13 22:07:34.850
40 6.0.0.734 2025.04.12 12f3f P P 671 601 2025.04.12 23:55:38.204 2025.04.12 23:55:38.875 2025.04.12 22:06:51.589 2025.04.12 22:06:52.190
41 6.0.0.730 2025.04.11 240b8 P P 686 366 2025.04.11 23:57:35.051 2025.04.11 23:57:35.737 2025.04.11 22:06:28.027 2025.04.11 22:06:28.393
42 6.0.0.726 2025.04.10 d79c6 P P 1312 328 2025.04.10 23:57:05.818 2025.04.10 23:57:07.130 2025.04.10 22:06:31.955 2025.04.10 22:06:32.283
43 6.0.0.725 2025.04.09 a2b05 P P 1243 468 2025.04.09 23:58:14.387 2025.04.09 23:58:15.630 2025.04.09 22:08:09.478 2025.04.09 22:08:09.946
44 6.0.0.722 2025.04.08 a8b86 P P 1408 536 2025.04.09 00:14:01.027 2025.04.09 00:14:02.435 2025.04.08 22:14:09.854 2025.04.08 22:14:10.390
45 6.0.0.719 2025.04.06 90fd9 P P 1164 621 2025.04.07 00:11:43.749 2025.04.07 00:11:44.913 2025.04.06 22:12:45.399 2025.04.06 22:12:46.020
46 6.0.0.717 2025.04.04 53d70 P P 1172 715 2025.04.05 00:06:09.630 2025.04.05 00:06:10.802 2025.04.04 22:12:10.715 2025.04.04 22:12:11.430
47 6.0.0.716 2025.04.03 fc636 P P 699 602 2025.04.04 00:11:00.627 2025.04.04 00:11:01.326 2025.04.03 22:13:39.399 2025.04.03 22:13:40.001
48 6.0.0.715 2025.04.02 907ed P P 1272 715 2025.04.03 00:10:57.262 2025.04.03 00:10:58.534 2025.04.02 22:13:46.911 2025.04.02 22:13:47.626
49 6.0.0.710 2025.04.01 40651 P P 684 628 2025.04.02 00:09:25.140 2025.04.02 00:09:25.824 2025.04.01 22:12:52.146 2025.04.01 22:12:52.774
50 6.0.0.708 2025.03.31 cb069 P P 924 626 2025.04.01 00:00:22.310 2025.04.01 00:00:23.234 2025.03.31 22:07:36.271 2025.03.31 22:07:36.897
51 6.0.0.707 2025.03.28 4bd4f P P 1383 452 2025.03.31 00:00:23.850 2025.03.31 00:00:25.233 2025.03.30 22:08:11.891 2025.03.30 22:08:12.343
52 6.0.0.698 2025.03.26 d72a7 P P 655 714 2025.03.28 00:22:20.651 2025.03.28 00:22:21.306 2025.03.27 22:14:04.185 2025.03.27 22:14:04.899
53 6.0.0.693 2025.03.24 0b559 P P 1182 699 2025.03.25 00:09:15.390 2025.03.25 00:09:16.572 2025.03.24 22:10:49.194 2025.03.24 22:10:49.893
54 6.0.0.687 2025.03.22 730aa P P 755 330 2025.03.24 00:19:52.875 2025.03.24 00:19:53.630 2025.03.23 22:17:21.948 2025.03.23 22:17:22.278
55 6.0.0.686 2025.03.20 71bf6 P P 710 368 2025.03.21 00:25:43.162 2025.03.21 00:25:43.872 2025.03.20 22:19:03.399 2025.03.20 22:19:03.767
56 6.0.0.685 2025.03.19 a8577 P P 1197 384 2025.03.20 00:28:15.258 2025.03.20 00:28:16.455 2025.03.19 22:17:38.537 2025.03.19 22:17:38.921
57 6.0.0.680 2025.03.18 90d29 P P 714 416 2025.03.19 10:48:41.668 2025.03.19 10:48:42.382 2025.03.19 09:03:51.067 2025.03.19 09:03:51.483
58 6.0.0.677 2025.03.16 c0a60 P P 983 375 2025.03.17 00:17:32.711 2025.03.17 00:17:33.694 2025.03.16 22:17:16.534 2025.03.16 22:17:16.909
59 6.0.0.676 2025.03.15 3034f P P 764 381 2025.03.16 15:50:34.768 2025.03.16 15:50:35.532 2025.03.16 14:08:34.856 2025.03.16 14:08:35.237
60 6.0.0.673 2025.03.13 40f5b P P 616 634 2025.03.14 00:16:09.099 2025.03.14 00:16:09.715 2025.03.13 22:16:24.758 2025.03.13 22:16:25.392
61 6.0.0.671 2025.03.12 a4fff P P 667 349 2025.03.13 00:20:13.050 2025.03.13 00:20:13.717 2025.03.12 22:18:38.686 2025.03.12 22:18:39.035
62 6.0.0.663 2025.03.11 daad2 P P 1135 312 2025.03.12 00:18:21.751 2025.03.12 00:18:22.886 2025.03.11 22:18:07.639 2025.03.11 22:18:07.951
63 6.0.0.661 2025.03.07 b9869 P P 922 565 2025.03.10 23:57:34.629 2025.03.10 23:57:35.551 2025.03.10 22:10:09.890 2025.03.10 22:10:10.455
64 6.0.0.660 2025.03.04 a6700 P P 606 512 2025.03.07 00:06:42.159 2025.03.07 00:06:42.765 2025.03.06 22:13:45.190 2025.03.06 22:13:45.702
65 6.0.0.658 2025.03.03 f15f8 P P 1073 502 2025.03.04 00:00:53.021 2025.03.04 00:00:54.094 2025.03.03 22:10:21.048 2025.03.03 22:10:21.550
66 6.0.0.656 2025.02.27 25fb4 P P 682 635 2025.03.03 00:28:43.847 2025.03.03 00:28:44.529 2025.03.02 22:19:50.974 2025.03.02 22:19:51.609
67 6.0.0.655 2025.02.25 6e3e0 P P 608 567 2025.02.27 00:05:43.919 2025.02.27 00:05:44.527 2025.02.26 22:12:14.083 2025.02.26 22:12:14.650
68 6.0.0.654 2025.02.24 b7141 P P 605 518 2025.02.25 00:08:03.520 2025.02.25 00:08:04.125 2025.02.24 22:13:42.333 2025.02.24 22:13:42.851
69 6.0.0.652 2025.02.22 22662 P P 721 503 2025.02.24 07:25:52.217 2025.02.24 07:25:52.938 2025.02.24 00:27:11.699 2025.02.24 00:27:12.202
70 6.0.0.647 2025.02.21 9fccb P P 592 406 2025.02.22 00:09:36.876 2025.02.22 00:09:37.468 2025.02.21 22:17:16.709 2025.02.21 22:17:17.115
71 6.0.0.640 2025.02.19 9b8ac P P 561 568 2025.02.20 00:07:58.542 2025.02.20 00:07:59.103 2025.02.19 22:12:04.942 2025.02.19 22:12:05.510
72 6.0.0.639 2025.02.18 201a4 P P 1113 547 2025.02.19 00:00:10.425 2025.02.19 00:00:11.538 2025.02.18 22:11:19.523 2025.02.18 22:11:20.070
73 6.0.0.637 2025.02.12 6d0f5 P P 1128 397 2025.02.14 00:16:51.130 2025.02.14 00:16:52.258 2025.02.13 22:17:21.746 2025.02.13 22:17:22.143
74 6.0.0.636 2025.02.11 0424f P P 610 605 2025.02.12 00:15:22.662 2025.02.12 00:15:23.272 2025.02.11 22:16:59.131 2025.02.11 22:16:59.736
75 6.0.0.635 2025.02.10 f640f P P 994 324 2025.02.11 00:13:04.679 2025.02.11 00:13:05.673 2025.02.10 22:17:24.569 2025.02.10 22:17:24.893
76 6.0.0.629 2025.02.07 194f9 P P 606 305 2025.02.08 00:12:35.888 2025.02.08 00:12:36.494 2025.02.07 22:16:10.087 2025.02.07 22:16:10.392
77 6.0.0.628 2025.02.06 859d5 P P 1019 531 2025.02.07 00:28:38.823 2025.02.07 00:28:39.842 2025.02.06 22:23:14.387 2025.02.06 22:23:14.918
78 6.0.0.621 2025.02.05 34fe7 P P 1115 621 2025.02.06 00:25:38.963 2025.02.06 00:25:40.078 2025.02.05 22:23:48.345 2025.02.05 22:23:48.966
79 6.0.0.609 2025.02.04 76d57 P P 624 600 2025.02.05 00:18:06.759 2025.02.05 00:18:07.383 2025.02.04 22:21:10.711 2025.02.04 22:21:11.311
80 6.0.0.607 2025.02.03 1985b P P 1000 582 2025.02.04 00:17:14.930 2025.02.04 00:17:15.930 2025.02.03 22:21:34.750 2025.02.03 22:21:35.332
81 6.0.0.601 2025.02.01 6af07 P P 605 659 2025.02.02 00:10:24.378 2025.02.02 00:10:24.983 2025.02.01 22:15:24.991 2025.02.01 22:15:25.650
82 6.0.0.600 2025.01.27 188de P P 660 394 2025.01.28 00:17:29.387 2025.01.28 00:17:30.047 2025.01.27 22:17:07.556 2025.01.27 22:17:07.950
83 6.0.0.599 2025.01.25 ba588 P P 633 386 2025.01.26 00:17:45.918 2025.01.26 00:17:46.551 2025.01.25 22:17:34.748 2025.01.25 22:17:35.134
84 6.0.0.598 2025.01.23 ddbc3 P P 652 594 2025.01.25 00:18:11.807 2025.01.25 00:18:12.459 2025.01.24 22:16:18.035 2025.01.24 22:16:18.629
85 6.0.0.595 2025.01.22 e62f3 P P 656 370 2025.01.23 00:09:45.668 2025.01.23 00:09:46.324 2025.01.22 22:13:35.029 2025.01.22 22:13:35.399
86 6.0.0.594 2025.01.21 47fb6 P P 729 525 2025.01.22 00:05:34.406 2025.01.22 00:05:35.135 2025.01.21 22:13:00.868 2025.01.21 22:13:01.393
87 6.0.0.590 2025.01.20 9dc1e P P 578 361 2025.01.21 00:12:20.435 2025.01.21 00:12:21.013 2025.01.20 22:16:40.586 2025.01.20 22:16:40.947
88 6.0.0.588 2025.01.19 b1c4e P P 695 537 2025.01.20 00:09:32.599 2025.01.20 00:09:33.294 2025.01.19 22:15:10.550 2025.01.19 22:15:11.087
89 6.0.0.587 2025.01.18 63e6e P P 1040 338 2025.01.19 00:14:08.310 2025.01.19 00:14:09.350 2025.01.18 22:16:47.587 2025.01.18 22:16:47.925
90 6.0.0.585 2025.01.16 2d6bb P P 673 332 2025.01.18 00:06:43.799 2025.01.18 00:06:44.472 2025.01.17 22:14:24.097 2025.01.17 22:14:24.429
91 6.0.0.584 2025.01.15 a0aa2 P P 644 614 2025.01.16 00:12:13.557 2025.01.16 00:12:14.201 2025.01.15 22:16:38.863 2025.01.15 22:16:39.477
92 6.0.0.581 2025.01.14 21e9e P P 652 362 2025.01.15 00:13:11.662 2025.01.15 00:13:12.314 2025.01.14 22:15:36.731 2025.01.14 22:15:37.093
93 6.0.0.577 2025.01.13 7e293 P P 720 627 2025.01.14 00:13:48.229 2025.01.14 00:13:48.949 2025.01.13 22:15:48.675 2025.01.13 22:15:49.302
94 6.0.0.576 2025.01.12 05898 P P 611 573 2025.01.13 00:09:18.645 2025.01.13 00:09:19.256 2025.01.12 22:14:15.237 2025.01.12 22:14:15.810
95 6.0.0.573 2025.01.10 c20f3 P P 536 335 2025.01.11 00:11:11.839 2025.01.11 00:11:12.375 2025.01.10 22:15:25.486 2025.01.10 22:15:25.821
96 6.0.0.571 2024.12.31 81bba P P 992 286 2024.12.31 23:47:57.935 2024.12.31 23:47:58.927 2024.12.31 21:59:33.165 2024.12.31 21:59:33.451
97 6.0.0.570 2024.12.30 c3c8d P P 546 294 2024.12.30 23:47:05.681 2024.12.30 23:47:06.227 2024.12.30 21:59:30.341 2024.12.30 21:59:30.635
98 6.0.0.565 2024.12.28 5fc59 P P 515 325 2024.12.30 12:23:41.118 2024.12.30 12:23:41.633 2024.12.30 11:08:19.476 2024.12.30 11:08:19.801
99 6.0.0.564 2024.12.26 12514 P P 965 282 2024.12.26 23:48:30.546 2024.12.26 23:48:31.511 2024.12.26 21:59:35.159 2024.12.26 21:59:35.441
100 6.0.0.560 2024.12.25 fa83e P P 546 303 2024.12.25 23:40:32.367 2024.12.25 23:40:32.913 2024.12.25 21:59:32.587 2024.12.25 21:59:32.890
101 6.0.0.559 2024.12.23 cc800 P P 525 295 2024.12.24 23:41:52.975 2024.12.24 23:41:53.500 2024.12.24 21:59:58.180 2024.12.24 21:59:58.475
102 6.0.0.556 2024.12.22 a0404 P P 520 290 2024.12.22 23:48:25.820 2024.12.22 23:48:26.340 2024.12.22 21:59:23.523 2024.12.22 21:59:23.813
103 6.0.0.555 2024.12.19 6990a P P 506 272 2024.12.21 12:59:08.867 2024.12.21 12:59:09.373 2024.12.21 11:44:08.154 2024.12.21 11:44:08.426
104 6.0.0.553 2024.12.17 d1f8a P P 615 324 2024.12.17 23:42:30.060 2024.12.17 23:42:30.675 2024.12.17 22:00:04.029 2024.12.17 22:00:04.353
105 6.0.0.552 2024.12.11 85e25 P P 556 296 2024.12.15 23:48:04.688 2024.12.15 23:48:05.244 2024.12.15 21:59:45.926 2024.12.15 21:59:46.222
106 6.0.0.550 2024.12.10 b37ac P P 541 324 2024.12.10 23:43:22.676 2024.12.10 23:43:23.217 2024.12.10 22:00:53.488 2024.12.10 22:00:53.812
107 6.0.0.548 2024.12.08 2cc77 P P 496 296 2024.12.08 23:38:57.527 2024.12.08 23:38:58.023 2024.12.08 21:58:46.262 2024.12.08 21:58:46.558
108 6.0.0.544 2024.12.05 96943 P P 671 323 2024.12.05 23:41:59.737 2024.12.05 23:42:00.408 2024.12.05 22:02:09.121 2024.12.05 22:02:09.444
109 6.0.0.543 2024.12.03 30b77 P P 581 291 2024.12.03 23:43:17.545 2024.12.03 23:43:18.126 2024.12.03 22:00:41.470 2024.12.03 22:00:41.761
110 6.0.0.540 2024.12.02 4a1f4 P P 544 305 2024.12.02 23:39:50.520 2024.12.02 23:39:51.064 2024.12.02 22:00:00.255 2024.12.02 22:00:00.560
111 6.0.0.539 2024.11.28 1f283 P P 525 331 2024.11.29 23:51:36.027 2024.11.29 23:51:36.552 2024.11.29 22:00:25.690 2024.11.29 22:00:26.021
112 6.0.0.535 2024.11.26 77b95 P P 994 293 2024.11.26 23:34:18.221 2024.11.26 23:34:19.215 2024.11.26 21:58:05.877 2024.11.26 21:58:06.170
113 6.0.0.534 2024.11.25 e9584 P P 637 289 2024.11.25 23:35:36.811 2024.11.25 23:35:37.448 2024.11.25 21:58:52.200 2024.11.25 21:58:52.489
114 6.0.0.533 2024.11.17 933ac P P 587 298 2024.11.22 09:40:57.507 2024.11.22 09:40:58.094 2024.11.22 08:28:19.838 2024.11.22 08:28:20.136
115 6.0.0.532 2024.11.16 9e263 P P 543 323 2024.11.16 23:23:43.651 2024.11.16 23:23:44.194 2024.11.16 21:58:49.103 2024.11.16 21:58:49.426
116 6.0.0.530 2024.11.15 49804 P P 943 309 2024.11.16 01:33:43.057 2024.11.16 01:33:44.000 2024.11.15 23:58:11.189 2024.11.15 23:58:11.498
117 6.0.0.528 2024.11.14 9625b P P 493 331 2024.11.15 01:36:58.469 2024.11.15 01:36:58.962 2024.11.14 23:59:29.938 2024.11.14 23:59:30.269
118 6.0.0.526 2024.11.12 65b80 P P 913 303 2024.11.14 01:36:03.849 2024.11.14 01:36:04.762 2024.11.13 23:59:01.526 2024.11.13 23:59:01.829
119 6.0.0.523 2024.11.08 8ca23 P P 950 326 2024.11.11 01:32:42.330 2024.11.11 01:32:43.280 2024.11.10 23:57:57.827 2024.11.10 23:57:58.153
120 6.0.0.520 2024.11.07 4eefa P P 1039 299 2024.11.08 01:30:00.887 2024.11.08 01:30:01.926 2024.11.07 23:57:36.467 2024.11.07 23:57:36.766
121 6.0.0.516 2024.11.04 b0c36 P P 943 305 2024.11.05 01:29:07.627 2024.11.05 01:29:08.570 2024.11.04 23:57:16.789 2024.11.04 23:57:17.094
122 6.0.0.515 2024.10.30 d53f3 P P 981 325 2024.11.04 01:31:39.866 2024.11.04 01:31:40.847 2024.11.03 23:57:47.824 2024.11.03 23:57:48.149
123 6.0.0.512 2024.10.29 833ef P P 981 307 2024.10.30 01:34:02.451 2024.10.30 01:34:03.432 2024.10.29 23:59:08.586 2024.10.29 23:59:08.893
124 6.0.0.511 2024.10.26 c4bc9 P P 981 320 2024.10.29 01:34:19.760 2024.10.29 01:34:20.741 2024.10.28 23:58:47.454 2024.10.28 23:58:47.774
125 6.0.0.509 2024.10.25 3aedb P P 995 324 2024.10.26 01:43:59.557 2024.10.26 01:44:00.552 2024.10.26 00:01:29.237 2024.10.26 00:01:29.561
126 6.0.0.508 2024.10.24 a8f5b P P 976 314 2024.10.25 01:38:17.605 2024.10.25 01:38:18.581 2024.10.24 23:59:55.018 2024.10.24 23:59:55.332
127 6.0.0.502 2024.10.22 6bfd7 P P 952 330 2024.10.23 01:37:47.385 2024.10.23 01:37:48.337 2024.10.22 23:59:34.348 2024.10.22 23:59:34.678
128 6.0.0.500 2024.10.21 be565 P P 566 330 2024.10.22 17:43:57.635 2024.10.22 17:43:58.201 2024.10.22 16:29:13.219 2024.10.22 16:29:13.549
129 6.0.0.499 2024.10.19 6214b P P 966 373 2024.10.20 01:39:10.397 2024.10.20 01:39:11.363 2024.10.20 00:00:34.799 2024.10.20 00:00:35.172
130 6.0.0.498 2024.10.18 591a7 P P 1041 318 2024.10.19 01:36:20.520 2024.10.19 01:36:21.561 2024.10.18 23:59:01.110 2024.10.18 23:59:01.428
131 6.0.0.494 2024.10.17 cf5a4 P P 948 307 2024.10.18 01:37:16.789 2024.10.18 01:37:17.737 2024.10.18 00:00:20.985 2024.10.18 00:00:21.292
132 6.0.0.491 2024.10.14 dc5fb P P 888 328 2024.10.15 01:33:27.409 2024.10.15 01:33:28.297 2024.10.14 23:58:15.639 2024.10.14 23:58:15.967
133 6.0.0.489 2024.10.11 2ba59 P P 1108 344 2024.10.12 01:40:01.994 2024.10.12 01:40:03.102 2024.10.12 00:00:11.924 2024.10.12 00:00:12.268
134 6.0.0.488 2024.10.09 1c93e P P 937 350 2024.10.10 01:48:32.869 2024.10.10 01:48:33.806 2024.10.10 00:02:46.096 2024.10.10 00:02:46.446
135 6.0.0.487 2024.10.06 065a3 P P 1076 358 2024.10.07 01:47:31.551 2024.10.07 01:47:32.627 2024.10.07 00:02:39.348 2024.10.07 00:02:39.706
136 6.0.0.485 2024.10.04 e95c1 P P 608 373 2024.10.05 01:49:46.804 2024.10.05 01:49:47.412 2024.10.05 00:02:32.216 2024.10.05 00:02:32.589
137 6.0.0.483 2024.10.02 5e5ae P P 572 326 2024.10.03 01:44:52.177 2024.10.03 01:44:52.749 2024.10.03 00:02:00.742 2024.10.03 00:02:01.068
138 6.0.0.478 2024.09.30 b5010 P P 940 308 2024.10.01 01:39:57.177 2024.10.01 01:39:58.117 2024.10.01 00:01:29.011 2024.10.01 00:01:29.319
139 6.0.0.474 2024.09.26 e4efb P P 969 277 2024.09.30 01:40:17.217 2024.09.30 01:40:18.186 2024.09.30 00:00:27.951 2024.09.30 00:00:28.228
140 6.0.0.471 2024.09.24 01b51 P P 1034 309 2024.09.25 23:43:34.723 2024.09.25 23:43:35.757 2024.09.25 22:00:56.932 2024.09.25 22:00:57.241
141 6.0.0.470 2024.09.23 77cc0 P P 901 326 2024.09.23 23:42:18.629 2024.09.23 23:42:19.530 2024.09.23 22:01:12.606 2024.09.23 22:01:12.932
142 6.0.0.467 2024.09.21 ea0b8 P P 966 347 2024.09.22 23:40:33.665 2024.09.22 23:40:34.631 2024.09.22 22:00:27.200 2024.09.22 22:00:27.547
143 6.0.0.466 2024.09.20 32dc6 P P 1108 296 2024.09.20 23:39:06.917 2024.09.20 23:39:08.025 2024.09.20 22:00:11.748 2024.09.20 22:00:12.044
144 6.0.0.461 2024.09.17 2c895 P P 747 438 2024.09.18 00:12:05.847 2024.09.18 00:12:06.594 2024.09.17 22:19:48.105 2024.09.17 22:19:48.543
145 6.0.0.460 2024.09.11 3c253 P P 791 615 2024.09.17 00:13:11.446 2024.09.17 00:13:12.237 2024.09.16 22:21:07.729 2024.09.16 22:21:08.344
146 6.0.0.457 2024.09.09 fdc6f P P 907 680 2024.09.10 00:35:46.748 2024.09.10 00:35:47.655 2024.09.09 22:29:57.045 2024.09.09 22:29:57.725
147 6.0.0.455 2024.09.07 500d8 P P 1152 566 2024.09.08 00:31:44.841 2024.09.08 00:31:45.993 2024.09.07 22:28:01.384 2024.09.07 22:28:01.950
148 6.0.0.454 2024.09.05 4d70f P P 1199 526 2024.09.06 00:15:15.920 2024.09.06 00:15:17.119 2024.09.05 22:23:24.110 2024.09.05 22:23:24.636
149 6.0.0.452 2024.09.04 9ff9c P P 1035 506 2024.09.05 00:12:42.095 2024.09.05 00:12:43.130 2024.09.04 22:21:29.497 2024.09.04 22:21:30.003
150 6.0.0.450 2024.09.02 27124 P P 1278 561 2024.09.04 01:21:04.530 2024.09.04 01:21:05.808 2024.09.03 22:48:00.704 2024.09.03 22:48:01.265
151 6.0.0.447 2024.09.01 056ec P P 776 491 2024.09.02 00:36:33.867 2024.09.02 00:36:34.643 2024.09.01 22:27:39.480 2024.09.01 22:27:39.971
152 6.0.0.446 2024.08.30 fe1b2 P P 724 524 2024.09.01 00:42:32.893 2024.09.01 00:42:33.617 2024.08.31 22:39:13.828 2024.08.31 22:39:14.352
153 6.0.0.444 2024.08.28 785d4 P P 984 620 2024.08.30 00:54:31.693 2024.08.30 00:54:32.677 2024.08.29 22:47:58.389 2024.08.29 22:47:59.009
154 6.0.0.442 2024.08.21 4a68f P P 798 607 2024.08.28 02:34:38.637 2024.08.28 02:34:39.435 2024.08.27 23:39:47.637 2024.08.27 23:39:48.244
155 6.0.0.441 2024.08.20 75042 P P 1360 557 2024.08.21 00:27:00.201 2024.08.21 00:27:01.561 2024.08.20 22:28:28.764 2024.08.20 22:28:29.321
156 6.0.0.438 2024.08.16 088b5 P P 626 488 2024.08.18 23:43:10.341 2024.08.18 23:43:10.967 2024.08.18 22:06:40.852 2024.08.18 22:06:41.340
157 6.0.0.437 2024.08.14 3c88b P P 629 351 2024.08.15 23:41:05.916 2024.08.15 23:41:06.545 2024.08.15 22:05:50.781 2024.08.15 22:05:51.132
158 6.0.0.432 2024.08.11 e82ac P P 608 451 2024.08.12 23:40:19.129 2024.08.12 23:40:19.737 2024.08.12 22:05:00.929 2024.08.12 22:05:01.380
159 6.0.0.431 2024.08.09 de5a7 P P 622 344 2024.08.09 23:41:52.020 2024.08.09 23:41:52.642 2024.08.09 22:05:54.245 2024.08.09 22:05:54.589
160 6.0.0.428 2024.08.08 9191b P P 632 502 2024.08.08 23:41:01.622 2024.08.08 23:41:02.254 2024.08.08 22:05:28.757 2024.08.08 22:05:29.259
161 6.0.0.423 2024.08.07 33b41 P P 710 492 2024.08.08 09:29:59.047 2024.08.08 09:29:59.757 2024.08.08 08:13:04.604 2024.08.08 08:13:05.096
162 6.0.0.421 2024.08.06 ed60d P P 672 256 2024.08.06 23:23:47.849 2024.08.06 23:23:48.521 2024.08.06 22:01:20.339 2024.08.06 22:01:20.595
163 6.0.0.419 2024.08.05 3505a P P 616 308 2024.08.05 23:25:59.137 2024.08.05 23:25:59.753 2024.08.05 22:01:20.285 2024.08.05 22:01:20.593
164 6.0.0.409 2024.08.02 ec18f P P 715 287 2024.08.04 23:30:18.811 2024.08.04 23:30:19.526 2024.08.04 22:02:10.403 2024.08.04 22:02:10.690
165 6.0.0.406 2024.08.01 b20be P P 745 315 2024.08.01 23:29:01.356 2024.08.01 23:29:02.101 2024.08.01 22:01:35.966 2024.08.01 22:01:36.281
166 6.0.0.405 2024.07.31 a62ac P P 736 261 2024.07.31 23:27:32.089 2024.07.31 23:27:32.825 2024.07.31 22:01:20.796 2024.07.31 22:01:21.057
167 6.0.0.403 2024.07.29 30f03 P P 697 281 2024.07.29 23:27:05.793 2024.07.29 23:27:06.490 2024.07.29 22:01:08.252 2024.07.29 22:01:08.533
168 6.0.0.401 2024.07.26 24e41 P P 786 264 2024.07.26 23:23:34.650 2024.07.26 23:23:35.436 2024.07.26 22:01:01.833 2024.07.26 22:01:02.097
169 6.0.0.400 2024.07.24 5bb78 P P 744 279 2024.07.24 23:23:16.383 2024.07.24 23:23:17.127 2024.07.24 22:01:17.657 2024.07.24 22:01:17.936
170 6.0.0.398 2024.07.23 85b18 P P 786 214 2024.07.23 23:31:24.285 2024.07.23 23:31:25.071 2024.07.23 22:06:19.635 2024.07.23 22:06:19.849
171 6.0.0.397 2024.07.22 c734c P P 789 312 2024.07.22 23:23:19.728 2024.07.22 23:23:20.517 2024.07.22 22:01:14.253 2024.07.22 22:01:14.565
172 6.0.0.396 2024.07.13 cf952 P P 740 290 2024.07.21 23:24:11.345 2024.07.21 23:24:12.085 2024.07.21 22:00:59.165 2024.07.21 22:00:59.455

Elapsed time, ms. Chart for last 150 runs:

Last commits information (all timestamps in UTC):