- Apr 21, 2025
-
-
-
Artem Shmelev authored
-
Nikita Strygin authored
This will correctly detect invalid queries like `ALTER TABLE test_table ADD COLUMN age INT, ADD COLUMN age TEXT;`
-
Nikita Strygin authored
-
Nikita Strygin authored
Currently, `ChangeFormat` will lock the DML to the table by setting `operable` flag to false, so this should be accounted in the CAS
-
-
- Apr 18, 2025
-
-
Кирилл Безуглый authored
Many of our's workspace crates were living without explicit license field in a manifest. This commit adds them.
-
Кирилл Безуглый authored
Previously (03b53839), we have introduced incorrect indication of a license for a Cargo: only one of either `license` or `license-file` fields should be stated, while we added both. This commit fixes it by removing `license-file` field and rewrites `license` field with correct name for a license we use.
-
Maksim Kaitmazian authored
-
Andrey Strochuk authored
-
Andrey Strochuk authored
-
Maksim Kaitmazian authored
-
Вартан Бабаян authored
-
- Apr 17, 2025
-
-
Кирилл Безуглый authored
This commit introduces a test on conflicting ports for PostgreSQL protocol server in a scenario, when multiple instances try to use it on a single host machine. Closes #1610. Follow-up for !1698.
-
Now, we won't produce `picodata-PID.backtrace` files by default. If you want to dump panic backtraces, set `PICODATA_INTERNAL_BACKTRACE_DUMP`, it is automatically set in our tests, though. Also, before that commit, if we have panicked with some strange condition, and cannot dump the backtrace to a file (e.g. out of disk space), the file writing error was just ignored. Now, the error is logged and printed to the user. This is technically a breaking change, because the observable behavior changes, but this was never documented, so let's remove it silently. Closes #1661
-
Alexander Tolstoy authored
-
- Apr 16, 2025
-
-
`ALTER TABLE ADD COLUMN` is now nullable by default, unless otherwise specified explicitly. This is default behavior in PostgreSQL and MySQL, and we want to be in line with industry standards. Also, nullability as a default behavior works better with concurrent DML (less constraints). Closes #1696.
-
This commit addresses two issues in ALTER TABLE handling: 1. Lack of explicit `IF [NOT] EXISTS` for each action, leading to ambiguity. 2. Incorrect assumption that all subsequent actions are identical to the first, preventing mixed-action ALTER TABLE statements as supported by PostgreSQL. Now, each action explicitly tracks its own existence clause, and the parser supports multiple distinct actions in a single ALTER TABLE statement. Closes #1617.
-
-
Artem Shmelev authored
Using the test test_joining.py::test_replication as an example, I’ll break down what’s happening. Test logic: 2 instances, i1 and i2. i1 is the master of the replicaset, and i2 is promoted to Raft leader. Then we restart i1 and check that the replication settings have been delivered to i1. Governor steps on i2 for this test: 1. update instance state to offline 2. update target replication leader 3. configure replication 4. transfer replication leader 5. configure replication 6. update current sharding configuration 7. update instance state to online The problem occurs when governor i2 performs step 5, and i1 starts up and sends an update_request from postjoin. Here’s what happens in detail: • At step 5, the governor performs a CAS (compare-and-swap) to update the current_config_version of the replicaset (to make it equal to target_config_version) and waits for the operation’s index to be applied (in the test example, this operation has index=38, while commit_index=37). • At this moment, an rpc update_instance arrives at i2, and a CAS is done to change the state to Online (index=39, commit_index=37), and we also wait for this operation’s index to be applied. • At the moment we calculate the ops for CAS inside update_instance, commit_index=37, and we don’t see the change to current_config_version with index=38, so we assume that the bump of the replicaset config version has already been done (the versions already differ), and we don’t change this version in the ops (we only change target_state=Online). • Commits and applies for indices 38 and 39 happen, both instances are online, replication is only configured for i2. current_config_version == target_config_version, so the governor doesn’t trigger a retry for replication setup. My fix removes the conditions for bumping the config versions of replicaset and vshard from update_instance, and the test stops being flaky. My fix additionally removes the conditions for bumping the config version from other locations, because they are unnecessary too.
-
Kurdakov Alexander authored
For instance name with length < 4 column name was trimmed.
-
No matter how cool the value validation is, a bad value may one day pass and break cluster, but it's just a dynamic configuration.
-
-
- Apr 15, 2025
-
-
- Apr 14, 2025
-
-
In rust, we always write const & mut before an identifier. Let's use the same logic in the helper macro, too.
-
Виталий Шунков authored
-
-
-
-
-
- Apr 11, 2025
-
-
Georgy Moshkin authored
Closes #1659
-
-
Виталий Шунков authored
-
- Apr 10, 2025
-
-
Kurdakov Alexander authored
-
-
-
-
-
-
-