Coverage for mindsdb / api / mysql / mysql_proxy / data_types / mysql_packets / stmt_prepare_header.py: 30%

18 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-01-21 00:36 +0000

1""" 

2******************************************************* 

3 * Copyright (C) 2017 MindsDB Inc. <copyright@mindsdb.com> 

4 * 

5 * This file is part of MindsDB Server. 

6 * 

7 * MindsDB Server can not be copied and/or distributed without the express 

8 * permission of MindsDB Inc 

9 ******************************************************* 

10""" 

11 

12 

13from mindsdb.api.mysql.mysql_proxy.data_types.mysql_packet import Packet 

14from mindsdb.api.mysql.mysql_proxy.data_types.mysql_datum import Datum 

15 

16 

17class STMTPrepareHeaderPacket(Packet): 

18 ''' 

19 Implementation based on description: 

20 https://dev.mysql.com/doc/internals/en/com-stmt-prepare-response.html#packet-COM_STMT_PREPARE_OK 

21 ''' 

22 

23 def setup(self): 

24 self.status = Datum('int<1>', 0) 

25 self.stmt_id = Datum('int<4>', self._kwargs.get('stmt_id', 1)) 

26 self.num_columns = Datum('int<2>', self._kwargs.get('num_columns', 0)) 

27 self.num_params = Datum('int<2>', self._kwargs.get('num_params', 0)) 

28 self.filler = Datum('int<1>', 0) 

29 self.warning_count = Datum('int<2>', 0) 

30 

31 @property 

32 def body(self): 

33 order = [ 

34 'status', 

35 'stmt_id', 

36 'num_columns', 

37 'num_params', 

38 'filler', 

39 'warning_count' 

40 ] 

41 string = b'' 

42 for key in order: 

43 string += getattr(self, key).toStringPacket() 

44 

45 self.setBody(string) 

46 return self._body