Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Feature Request: Support session state tracking

Aberta
#372 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
42/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
mysql, python
Domínio
database

Direção de pesquisa

Start with MySQLdb.constants.CLIENT and the _mysql.connection API, then review the MySQL session-tracking documentation linked in the issue. Implementing the minimum means supporting SESSION_TRACK and get_session_track_gtids; completion for the broader request also includes the three variable, transaction-characteristic, and transaction-state methods with their documented return data.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

feature-request

Note: I may be able to work on putting together a pull request for this feature request, but I wanted to make sure you were okay with this feature request and the approach I'm taking before doing all that work, hence I am filing this feature request for discussion and approval.

MySQL has a feature enabling server tracking of client session state changes. When this is enabled on the server and client, the server can actually notify the connected client about changes to its session state. This enables the client to, for example (our use case), determine which Global Transaction ID (GTID) or GTIDs were created when the client commits a transaction.

You can read more about this here:

Here's what is needed to support this:

  1. A new constant in MySQLdb.constants.CLIENT: SESSION_TRACK = 1 << 23
  2. A new method on _mysql.connection named get_session_track_gtids which returns a list of GTIDs using C functions mysql_session_track_get_first/mysql_session_track_get_next and the enum value SESSION_TRACK_GTIDS.
  3. A new method on _mysql.connection named get_session_track_variables which returns a list of namedtuples containing the session variable names and values for changed variables using the same C functions and the enum value SESSION_TRACK_SYSTEM_VARIABLES.
  4. A new method on _mysql.connection named get_session_track_tx_characteristics which returns a list of strings of the characteristics that changed using the same C functions and the enum value SESSION_TRACK_TRANSACTION_CHARACTERISTICS.
  5. A new method on _mysql.connection named get_session_track_tx_state which returns a list of namedtuples containing information parsed from the data as described in the documentation for SESSION_TRACK_TRANSACTION_STATE using the same C functions and the enum value SESSION_TRACK_TRANSACTION_STATE.

The bare minimum that we need is items 1 and 2, but implementing also 3 through 5 would be more complete.

Linguagem predominante
Python
Estrelas
2.5k
Forks
443
Merge médio
18h 21min
PRs com merge (30d)
4

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de PyMySQL/mysqlclient

Todas as issues de PyMySQL/mysqlclient

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.