| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
|
| |
| |
| |
| |
| | |
Really should be the default everywhere by now, but doesn't hurt to be
extra explicit
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Specifically the index and more efficient delete.
These are however still in need of testing.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Using the new shift function in datamanager, either the oldest items are
removed or all the later items are moved into a new file that replaces
the old.
Hidden behind a feature flag for now.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
By padding items so that they do not cross block boundaries, it becomes
eaiser to delete whole blocks with fallocate() without cutting items
in half, improving efficiency of such operations.
Since list stores are used for message archives, where the most common
deletion operation would be of the oldest entires, at the top of the
file. With this, all blocks that contain items to be removed could be
deleted without needing to read, delete and write out the whole file.
|
| |
| |
| |
| |
| | |
Using the new pposix.remove_blocks() it should be very performant to
delete whole sections of a file, given a supporting file system.
|
| |
| |
| |
| |
| |
| | |
Allows implementing e.g. a FIFO
Will probably only work on some Linux file systems like ext4.
|
| |
| |
| |
| |
| | |
Copying data without parsing it should be more performant than parsing
it serializing back.
|
| |
| |
| |
| |
| |
| |
| |
| | |
If the first item does not start at position 0 then the index function
produces a phantom first entry covering position zero until where the
real first item starts. When using the index, this would make it either
appear as the first item was missing or cause an off-by-one issue with
remaining items.
|
| |
| |
| |
| |
| |
| | |
(thanks Trung)
These were mostly 'warn' to make them stand out from the debug noise
|
| | |
|
|\| |
|
| |
| |
| |
| | |
Ref https://github.com/mozilla/server-side-tls/issues/285
|
| |
| |
| |
| | |
Fixes use in PEP where the JID does not equal the bare domain.
|
| |
| |
| |
| |
| |
| | |
Removed in 536055476912 because it was not used anywhere else in the
file, but per the documentation it is meant to inform external upload
services of the expiry time of the upload itself.
|
| |
| |
| |
| |
| |
| |
| | |
Simplifies access to the cache without moving code around a lot given
the currently common pattern of
local some_cache = cache.new(size, function(k,v) end)
|
| |
| |
| |
| |
| | |
Previously either the old or the new values would be rejected, even if
the cache was resized to allow more items.
|
| | |
|
| |
| |
| |
| |
| | |
But anything that's not a table can't be resolved into, which could
happen in the middle, so eh.
|
| |
| |
| |
| | |
It seems to think 'table' never has array items, but we don't know that.
|
| |
| |
| |
| |
| |
| |
| | |
This gives us more granular control over different types of user account.
Accounts registered by IBR get assigned prosody:registered by default, while
accounts provisioned by an admin (e.g. via prosodyctl shell) will receive
prosody:member by default.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Overrides the util.jwt default of 1h with the intended TTL of 10
minutes. Because util.jwt now has its own expiry checks, so the 'expiry'
field is no longer used and can thus be removed.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Mostly thinking out loud about how various actions may use the shell
This enables the following sequence of commands:
prosodyctl install mod_example
prosodyctl reload mod_example
which is simpler than
prosodyctl shell module reload example
|
| |
| |
| |
| |
| | |
server_select only depending on LuaSocket generally makes it more
portable, so fall back to that if util.poll can't be found.
|
| | |
|
| |
| |
| |
| | |
This was to silence some Teal warning that seems to have gone away.
|
| |
| |
| |
| |
| |
| | |
Teal worries that we redefine the global.
Also that the fallback was missing type information.
|
| |
| |
| |
| |
| | |
Teal thinks that these are key-value maps which are always of length
zero, but that is not the case.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This makes it so that --admin and --role are no longer mutually
exclusive, they the former is simply treated as another --role.
This was likely a leftover from when only a single role was possible.
It does however become unclear which should be the primary, since the
order is not preserved by argparse.
Bonus: Loading of modules is avoided with only the --help is shown.
|
| |
| |
| |
| | |
These are gathered into arrays
|
| |
| |
| |
| | |
Forgot to change the column name in 9a7523ea45cb
|
| | |
|
| |
| |
| |
| | |
Avoids an error if the upgrade is performed twice..
|
| |
| |
| |
| |
| | |
Prevents false positives in the odd case where something other than an
index with this name might exist.
|
| |
| |
| |
| | |
The "pg_indexes" view is much simpler to inspect than "pg_class"
|
| |
| |
| |
| | |
Tested. Works.
|
| | |
|
| |
| |
| |
| | |
Because diffstat.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
No point in doing this expensive O(n) query if the result is not used
for anything.
Will still cache the total item count if an explicit query for this is
performed, then try to keep it updated with new items added. Will likely
forget eventually tho.
|
| |
| |
| |
| |
| | |
Notably the default journal_mode of DELETE is somewhat slow, some users
might want to catch up to the amazing performance of internal storage.
|
| |
| |
| |
| |
| | |
Knowing what features are available could be useful for future
experiments. For example, with the JSON module or full text search.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The :execute method is mainly used for one-off queries such as creating
tables and indices. There is no need to cache this prepared statement,
as those queries are only done on startup.
Further, prepared statements can't be reused without being reset, so
this was likely broken anyway.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There were 3 very similar methods:
- :execute()
- :execute_query()
- :execute_update()
The first one returns the prepared statement and is mainly used
internally in the library for CREATE statements.
The later two only really differ in how the results are returned.
Those two are one main method and one small one that only picks out the
iterator.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Removes the need for the shim in storagemanager.
The methods only really access the 'store' property of the first (self)
argument, so this is safe.
|