Search code examples
sqlitesizevarchar

What is the maximum size limit of varchar data type in sqlite?


I'm new to sqlite. I want to know the maximum size limit of varchar data type in sqlite?

can anybody suggest me some information related to this? I searched on sqlite.org site and they give the answer as:

Q. What is the maximum size of a VARCHAR in SQLite?

A. SQLite does not enforce the length of a VARCHAR. You can declare a VARCHAR(10) and SQLite will be happy to let you put 500 characters in it. And it will keep all 500 characters intact - it never truncates.

but I want to know the exact max size limit of varchar datatype in sqlite.


Solution

  • from http://www.sqlite.org/limits.html

    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.