Max length of Android Sqlite String?

前端 未结 2 746
一整个雨季
一整个雨季 2021-02-13 11:19

In reference to this question:

How SQLite on Android handles long strings?

It says that default SQLite stores at 1 billion. This is the same as the actual site.<

相关标签:
2条回答
  • 2021-02-13 11:37

    Maximum length of a string or BLOB

    The maximum number of bytes in a string or BLOB in SQLite is defined by the preprocessor macro SQLITE_MAX_LENGTH. The default value of this macro is 1 billion (1 thousand million or 1,000,000,000). You can raise or lower this value at compile-time using a command-line option like this:

    -DSQLITE_MAX_LENGTH=123456789 
    

    The current implementation will only support a string or BLOB length up to 231-1 or 2147483647. And some built-in functions such as hex() might fail well before that point. In security-sensitive applications it is best not to try to increase the maximum string and blob length. In fact, you might do well to lower the maximum string and blob length to something more in the range of a few million if that is possible.

    During part of SQLite's INSERT and SELECT processing, the complete content of each row in the database is encoded as a single BLOB. So the SQLITE_MAX_LENGTH parameter also determines the maximum number of bytes in a row.

    From http://www.sqlite.org/limits.html.

    0 讨论(0)
  • 2021-02-13 11:42

    The is no way to read SQLite limits in Android at runtime. (SQLite has a function for this in its C API, but Android does not expose this.)

    In any case, I do not know of any Android vendor that has reduced any of SQLite's limits. (Usually, they increase some limit or enable some option when they need it in their own apps or when they try to optimize, but they never bother to change something otherwise.)

    0 讨论(0)
提交回复
热议问题