Skip to main content

rest_mysql

pypi version MIT License

Stand alone version of Record_MySQL from Rest-OC to facilitate updating code to newer librairies. Since forking off of Rest-OC numerous improvements and bug fixes have been done.

See Releases for changes from release to release.

Full Documentation

Install

Requires

rest_mysql requires python 3.10 or higher

Install via pip

pip install rest_mysql

Updating from Rest-OC

Instead of pulling Record_MySQL from RestOC as we did in the past, change any references to rest_mysql

Old:

from RestOC import Record_MySQL
from RestOC.Record_MySQL import db_create, Record
from RestOC.Record_Base import register_type

New:

from rest_mysql import Record_MySQL
from rest_mysql.Record_MySQL import db_create, Record
from rest_mysql.Record_Base import register_type

Binary UUID and UUIDv4

If you're using uuid or uuid4 define types and you run into problems with UUID_TO_BIN and BIN_TO_UUID, you will need to install the functions, or an alias

Note

Before continuing, I would suggest switching to tuuid or tuuid4 as these represent trimmed UUIDs, which can be turned to binary and back without the use of UUID_TO_BIN or BIN_TO_UUID. If you absolutely must have full UUIDs, then choose from the below server types to continue fixing the issue.

MySQL

MySQL provides the functions, but in order for rest_mysql to be supportive of all system, it defaults to assuming the function is part of the database schema. To solve this, make aliases to the global functons

from rest_mysql.Record_MySQL import Commands

db = 'your_db_name'
Commands.execute('primary', [ (

	"CREATE FUNCTION `%s`.`BIN_TO_UUID`(b BINARY(16)) "
	"RETURNS CHAR(36) DETERMINISTIC "
	"BEGIN "
	"	return BIN_TO_UUID(b); "
	"END" % db ), (

	"CREATE FUNCTION `%s`.`UUID_TO_BIN`(uuid CHAR(36)) "
	"RETURNS BINARY(16) DETERMINISTIC "
	"BEGIN "
	"	RETURN UUID_TO_BIN(uuid); "
	"END" % db
) ])

MariaDB

MariaDB does not provide UUID_TO_BIN and BIN_TO_UUID as it has its own uuid type which doesn't support the standard sql way of storing binary UUIDs. You can add the functions to the database schema like so

from rest_mysql.Record_MySQL import Commands

db = 'your_db_name'
Commands.execute('primary', [ (

	"CREATE FUNCTION `%s`.`BIN_TO_UUID`(b BINARY(16)) "
	"RETURNS CHAR(36) DETERMINISTIC "
	"BEGIN "
	"	DECLARE hexStr CHAR(32); "
	"	SET hexStr = HEX(b); "
	"	RETURN LOWER(CONCAT("
			"SUBSTR(hexStr, 1, 8), '-', "
			"SUBSTR(hexStr, 9, 4), '-', "
			"SUBSTR(hexStr, 13, 4), '-', "
			"SUBSTR(hexStr, 17, 4), '-', "
			"SUBSTR(hexStr, 21)"
		")); "
	"END" % db ), (

	"CREATE FUNCTION `%s`.`UUID_TO_BIN`(uuid CHAR(36)) "
	"RETURNS BINARY(16) DETERMINISTIC "
	"BEGIN "
		"RETURN UNHEX(REPLACE(uuid, '-', '')); "
	"END" % db
) ])

Metadata

Release files for rest-mysql 1.3.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rest-mysql 1.3.5
File Size Uploaded
rest_mysql-1.3.5.tar.gz 33.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rest-mysql 1.3.5
File Interpreter ABI Platform
rest_mysql-1.3.5-py3-none-any.whl Python 3 none any Details

Total release size: 66.9 kB

Release files / rest_mysql-1.3.5.tar.gz

Download URL rest_mysql-1.3.5.tar.gz
Size 33.2 kB
Tags Source
SHA-256 checksum
How to use checksums
858a1b3f0a826c8e361267aa106ced2121912490ed516af320278c2073dd87e5
BLAKE2b-256 checksum
How to use checksums
40cce214b609d5f974214529267214af053d4dc9b0f3536ee8fa4b21b42c395b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / rest_mysql-1.3.5-py3-none-any.whl

Download URL rest_mysql-1.3.5-py3-none-any.whl
Size 33.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9dc34ef692a6059972c19e6feea21669aa471c61c8f923c986091ec6f27db475
BLAKE2b-256 checksum
How to use checksums
2f46200c98444fc2b57fc6a64a132f33b09056c57f1622c78ca1ea1813183eff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

1.3.5 This release

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.5

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page