Skip to content

feat(database): use different integer types declaration with mysql and postgresql according to field length#1978

Open
DevPandi wants to merge 9 commits intotempestphp:3.xfrom
DevPandi:3.x
Open

feat(database): use different integer types declaration with mysql and postgresql according to field length#1978
DevPandi wants to merge 9 commits intotempestphp:3.xfrom
DevPandi:3.x

Conversation

@DevPandi
Copy link

Extends #1972

SQLite: "INTEGER. The value is a signed integer, stored in 0, 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value."

PostgreSQL supports SMALLINT, INTEGER and BIGINT.

MySQL supporty TINY*, SMALL*, MEDIUM*, INTEGER and BITINT.

For simplicity's sake: SMALLINT, INTEGER, BIGINT. Less code, less complexity.

I also picked up on the ideas from the suggestion for text types.

…bytes), integer (4 bytes) and smallint (2 bytes). Tiny INT is SQL.
* Adds an `INTEGER` column to the table.
*/
public function integer(string $name, bool $unsigned = false, bool $nullable = false, ?int $default = null): self
public function integer(string $name, bool $unsigned = false, bool $nullable = false, int $bytes = 4, ?int $default = null): self
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we do it with a union type? int|IntergerBytes $size?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea, done with next commit.


namespace Tempest\Database\QueryStatements;

enum IntegerBytes: int
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be consistent, with the other PR, let's call it DatabaseIntegerSize

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea, done with next commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants