1
0
Fork 0
mirror of https://github.com/DBD-SQLite/DBD-SQLite synced 2025-06-07 14:19:10 -04:00

Compare commits

..

31 commits

Author SHA1 Message Date
Kenichi Ishigaki
60515b30f8 Release 1.76 2024-10-19 13:46:02 +09:00
Kenichi Ishigaki
6f99c8ce41 Release 1.75_01 2024-09-17 23:04:35 +09:00
Kenichi Ishigaki
db7ea91d83 Bump bundled SQLite to 3.46.1 2024-09-17 22:54:53 +09:00
Kenichi Ishigaki
4ac600434f
Merge pull request #115 from sisyphus/win32_quadmath
Fix for Windows quadmath builds.
2024-09-17 22:50:16 +09:00
Kenichi Ishigaki
41957ce749
Merge pull request #116 from DBD-SQLite/use_checkout_v4
Use checkout v4
2024-09-17 22:48:10 +09:00
Kenichi Ishigaki
29167a0d65 Use buster images for older perls 2024-09-17 22:43:35 +09:00
Kenichi Ishigaki
fb80b73a8a Use checkout@v4 2024-09-17 22:37:20 +09:00
sisyphus
c5374438f4 dbdimp.c - Fix for Windows quadmath builds. 2024-09-17 22:03:29 +10:00
Kenichi Ishigaki
2ab93a4e41 Update constants 2024-03-17 22:32:36 +09:00
Kenichi Ishigaki
3e8df90227 Bump bundled SQLite to 3.45.2 2024-03-17 22:32:19 +09:00
Kenichi Ishigaki
b433d17436 Update SQLiteUtil 2024-03-17 22:31:23 +09:00
Kenichi Ishigaki
9014dd6f35
Merge pull request #112 from DBD-SQLite/fix/omit_load_extension_if_static
Omit load_extension if static perl
2024-03-17 22:18:46 +09:00
Kenichi Ishigaki
922c82b0ea Omit load_extension if static perl 2024-03-17 22:08:52 +09:00
Kenichi Ishigaki
01615f8630 Bump SQLite to 3.44.0 2023-11-03 15:08:24 +09:00
Kenichi Ishigaki
fea0e3268f Release 1.74 2023-09-20 02:24:48 +09:00
Kenichi Ishigaki
d4bb44460f Release 1.73_01 2023-07-09 10:03:24 +09:00
Kenichi Ishigaki
f9e3cb6b75 Update constants 2023-07-09 10:02:25 +09:00
Kenichi Ishigaki
3f66a57dd4 Update SQLiteUtil 2023-07-09 10:02:11 +09:00
Kenichi Ishigaki
7e63e18472 Bump sqlite3 from 3.41.0 to 3.42.0 2023-07-09 09:57:07 +09:00
Kenichi Ishigaki
c08f3400e8 Add a new constant 2023-02-23 11:20:23 +09:00
Kenichi Ishigaki
f764a74395 Upgrade SQLite to 3.41.0 2023-02-23 11:19:58 +09:00
Kenichi Ishigaki
ad5125d99d Ignore newly-added prepared_statement_scan_status constants 2023-02-23 11:19:14 +09:00
Kenichi Ishigaki
dd62355f48 Add year 2023 condition 2023-02-23 11:18:55 +09:00
Kenichi Ishigaki
0dc561d920
Merge pull request #105 from dboehmer/patch-1
Add missing possible table_type values to POD
2022-11-13 03:06:42 +09:00
Daniel Böhmer
1f413acd88 Add missing possible table_type values to POD
I noticed that table_info() returns table_types that are not listed in POD.
This copies every possible value from the SQLite documentation.
'LOCAL TEMPORARY' and 'SYSTEM TABLE' are not mentioned there
but come from SQLite.pm.

SQLite documentation on possible values:
https://www.sqlite.org/schematab.html#interpretation_of_the_schema_table
2022-11-12 18:42:30 +01:00
Kenichi Ishigaki
38e116df3f Release 1.72 2022-11-04 01:27:49 +09:00
Kenichi Ishigaki
a7e5af7397 Release 1.71_07 2022-10-26 03:35:56 +09:00
Kenichi Ishigaki
bacb65a77e Upgrade SQLite to 3.39.4 2022-10-26 03:33:21 +09:00
Kenichi Ishigaki
353f185cc5 Release 1.71_06 2022-03-12 11:51:36 +09:00
Kenichi Ishigaki
b03fd9980e
Merge pull request #99 from DBD-SQLite/set_utf8cache
Set UTF8CACHE to avoid slowdown with -DDEBUGGING
2022-03-12 11:49:24 +09:00
Kenichi Ishigaki
9c6cbfcc51 Set UTF8CACHE to avoid slowdown with -DDEBUGGING 2022-03-12 10:43:05 +09:00
13 changed files with 32075 additions and 12819 deletions

View file

@ -15,10 +15,10 @@ jobs:
strategy:
matrix:
perl-version:
- '5.8'
- '5.10'
- '5.18'
- '5.20'
- '5.8-buster'
- '5.10-buster'
- '5.18-buster'
- '5.20-buster'
- '5.26'
- 'latest'
@ -26,7 +26,7 @@ jobs:
image: perl:${{ matrix.perl-version }}
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
- name: perl -V
run: perl -V
- name: Install dependencies

24
Changes
View file

@ -1,5 +1,29 @@
Changes for Perl extension DBD-SQLite
1.76 2024-10-19
- Switched to a production version
1.75_01 2024-09-17
- Upgraded SQLite to 3.46.1
- Fix for Windows quadmath builds (GH#115, sisyphus++)
- Omit load_extension if static build
1.74 2023-09-20
- Switched to a production version
1.73_01 2023-07-09
- Upgraded SQLite to 3.42.0
- Add missing possible table_type values to POD (GH#105, dboehmer++)
1.72 2022-11-04
- Switched to a production version
1.71_07 2022-10-26
- Upgraded SQLite to 3.39.4
1.71_06 2022-03-12
- Set UTF8CACHE to avoid slowdown with -DDEBUGGING (andk, Leont, FGasper)
1.71_05 2022-02-26
- Fix another test failure on perl built with -DDEBUGGING
- Lowercase datatype in table column metadata for backcompat

View file

@ -288,6 +288,10 @@ if ($^O =~ /bsd/i && $^O !~ /(?:open|net)bsd/) {
push @CC_DEFINE, '-D_XOPEN_SOURCE';
}
if (!$Config{usedl}) {
push @CC_DEFINE, '-DSQLITE_OMIT_LOAD_EXTENSION';
}
my (@CCFLAGS, @LDFLAGS, @LDDLFLAGS);
if ($ENV{TEST_DBD_SQLITE_WITH_ASAN}) {

View file

@ -493,6 +493,32 @@ _const_database_connection_configuration_options_3031000_zero()
#endif
#if SQLITE_VERSION_NUMBER >= 3042000
IV
_const_database_connection_configuration_options_3042000()
ALIAS:
SQLITE_DBCONFIG_STMT_SCANSTATUS = SQLITE_DBCONFIG_STMT_SCANSTATUS
SQLITE_DBCONFIG_REVERSE_SCANORDER = SQLITE_DBCONFIG_REVERSE_SCANORDER
CODE:
RETVAL = ix;
OUTPUT:
RETVAL
#else
IV
_const_database_connection_configuration_options_3042000_zero()
ALIAS:
SQLITE_DBCONFIG_STMT_SCANSTATUS = 1
SQLITE_DBCONFIG_REVERSE_SCANORDER = 2
CODE:
RETVAL = 0;
OUTPUT:
RETVAL
#endif
#if SQLITE_VERSION_NUMBER >= 3006002
IV
@ -1213,6 +1239,54 @@ _const_extended_result_codes_3037000_zero()
#endif
#if SQLITE_VERSION_NUMBER >= 3041000
IV
_const_extended_result_codes_3041000()
ALIAS:
SQLITE_NOTICE_RBU = SQLITE_NOTICE_RBU
CODE:
RETVAL = ix;
OUTPUT:
RETVAL
#else
IV
_const_extended_result_codes_3041000_zero()
ALIAS:
SQLITE_NOTICE_RBU = 1
CODE:
RETVAL = 0;
OUTPUT:
RETVAL
#endif
#if SQLITE_VERSION_NUMBER >= 3043000
IV
_const_extended_result_codes_3043000()
ALIAS:
SQLITE_IOERR_IN_PAGE = SQLITE_IOERR_IN_PAGE
CODE:
RETVAL = ix;
OUTPUT:
RETVAL
#else
IV
_const_extended_result_codes_3043000_zero()
ALIAS:
SQLITE_IOERR_IN_PAGE = 1
CODE:
RETVAL = 0;
OUTPUT:
RETVAL
#endif
IV
_const_flags_for_file_open_operations()
ALIAS:
@ -1469,6 +1543,30 @@ _const_function_flags_3031000_zero()
#endif
#if SQLITE_VERSION_NUMBER >= 3044001
IV
_const_function_flags_3044001()
ALIAS:
SQLITE_RESULT_SUBTYPE = SQLITE_RESULT_SUBTYPE
CODE:
RETVAL = ix;
OUTPUT:
RETVAL
#else
IV
_const_function_flags_3044001_zero()
ALIAS:
SQLITE_RESULT_SUBTYPE = 1
CODE:
RETVAL = 0;
OUTPUT:
RETVAL
#endif
IV
_const_fundamental_datatypes()
ALIAS:

View file

@ -407,10 +407,16 @@ sqlite_is_number(pTHX_ const char *v, int sql_type)
if (sql_type != SQLITE_INTEGER) {
#ifdef USE_QUADMATH
sprintf(format, (has_plus ? "+%%.%dQf" : "%%.%dQf"), precision);
# if defined(WIN32)
/* On Windows quadmath, we need to use strtoflt128(), not atov() */
if (strEQ(form(format, strtoflt128(v, NULL)), v)) return 2;
# else
if (strEQ(form(format, atof(v)), v)) return 2;
# endif
#else
sprintf(format, (has_plus ? "+%%.%df" : "%%.%df" ), precision);
#endif
if (strEQ(form(format, atof(v)), v)) return 2;
#endif
}
return 0;
}

View file

@ -5,7 +5,7 @@ use strict;
use DBI 1.57 ();
use XSLoader ();
our $VERSION = '1.71_05';
our $VERSION = '1.76';
# sqlite_version cache (set in the XS bootstrap)
our ($sqlite_version, $sqlite_version_number);
@ -1074,7 +1074,7 @@ are limited by the typeless nature of the SQLite database.
=head1 SQLITE VERSION
DBD::SQLite is usually compiled with a bundled SQLite library
(SQLite version S<3.38.0> as of this release) for consistency.
(SQLite version S<3.46.1> as of this release) for consistency.
However, a different version of SQLite may sometimes be used for
some reasons like security, or some new experimental features.
@ -1749,7 +1749,8 @@ Returns all tables and schemas (databases) as specified in L<DBI/table_info>.
The schema and table arguments will do a C<LIKE> search. You can specify an
ESCAPE character by including an 'Escape' attribute in \%attr. The C<$type>
argument accepts a comma separated list of the following types 'TABLE',
'VIEW', 'LOCAL TEMPORARY' and 'SYSTEM TABLE' (by default all are returned).
'INDEX', 'VIEW', 'TRIGGER', 'LOCAL TEMPORARY' and 'SYSTEM TABLE'
(by default all are returned).
Note that a statement handle is returned, and not a direct list of tables.
The following fields are returned:
@ -1762,8 +1763,8 @@ databases will be in the name given when the database was attached.
B<TABLE_NAME>: The name of the table or view.
B<TABLE_TYPE>: The type of object returned. Will be one of 'TABLE', 'VIEW',
'LOCAL TEMPORARY' or 'SYSTEM TABLE'.
B<TABLE_TYPE>: The type of object returned. Will be one of 'TABLE', 'INDEX',
'VIEW', 'TRIGGER', 'LOCAL TEMPORARY' or 'SYSTEM TABLE'.
=head2 primary_key, primary_key_info

View file

@ -87,6 +87,8 @@ our @EXPORT_OK = (
SQLITE_DBCONFIG_MAX
SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE
SQLITE_DBCONFIG_RESET_DATABASE
SQLITE_DBCONFIG_REVERSE_SCANORDER
SQLITE_DBCONFIG_STMT_SCANSTATUS
SQLITE_DBCONFIG_TRIGGER_EQP
SQLITE_DBCONFIG_TRUSTED_SCHEMA
SQLITE_DBCONFIG_WRITABLE_SCHEMA
@ -140,6 +142,7 @@ our @EXPORT_OK = (
SQLITE_IOERR_FSTAT
SQLITE_IOERR_FSYNC
SQLITE_IOERR_GETTEMPPATH
SQLITE_IOERR_IN_PAGE
SQLITE_IOERR_LOCK
SQLITE_IOERR_MMAP
SQLITE_IOERR_NOMEM
@ -158,6 +161,7 @@ our @EXPORT_OK = (
SQLITE_IOERR_WRITE
SQLITE_LOCKED_SHAREDCACHE
SQLITE_LOCKED_VTAB
SQLITE_NOTICE_RBU
SQLITE_NOTICE_RECOVER_ROLLBACK
SQLITE_NOTICE_RECOVER_WAL
SQLITE_OK_SYMLINK
@ -191,6 +195,7 @@ our @EXPORT_OK = (
SQLITE_DETERMINISTIC
SQLITE_DIRECTONLY
SQLITE_INNOCUOUS
SQLITE_RESULT_SUBTYPE
SQLITE_SUBTYPE
/,
@ -320,6 +325,8 @@ our %EXPORT_TAGS = (
SQLITE_DBCONFIG_MAX
SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE
SQLITE_DBCONFIG_RESET_DATABASE
SQLITE_DBCONFIG_REVERSE_SCANORDER
SQLITE_DBCONFIG_STMT_SCANSTATUS
SQLITE_DBCONFIG_TRIGGER_EQP
SQLITE_DBCONFIG_TRUSTED_SCHEMA
SQLITE_DBCONFIG_WRITABLE_SCHEMA
@ -376,6 +383,7 @@ our %EXPORT_TAGS = (
SQLITE_IOERR_FSTAT
SQLITE_IOERR_FSYNC
SQLITE_IOERR_GETTEMPPATH
SQLITE_IOERR_IN_PAGE
SQLITE_IOERR_LOCK
SQLITE_IOERR_MMAP
SQLITE_IOERR_NOMEM
@ -414,6 +422,7 @@ our %EXPORT_TAGS = (
SQLITE_NOTADB
SQLITE_NOTFOUND
SQLITE_NOTICE
SQLITE_NOTICE_RBU
SQLITE_NOTICE_RECOVER_ROLLBACK
SQLITE_NOTICE_RECOVER_WAL
SQLITE_NULL
@ -445,6 +454,7 @@ our %EXPORT_TAGS = (
SQLITE_READONLY_ROLLBACK
SQLITE_RECURSIVE
SQLITE_REINDEX
SQLITE_RESULT_SUBTYPE
SQLITE_ROW
SQLITE_SAVEPOINT
SQLITE_SCHEMA
@ -531,6 +541,8 @@ our %EXPORT_TAGS = (
SQLITE_DBCONFIG_MAX
SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE
SQLITE_DBCONFIG_RESET_DATABASE
SQLITE_DBCONFIG_REVERSE_SCANORDER
SQLITE_DBCONFIG_STMT_SCANSTATUS
SQLITE_DBCONFIG_TRIGGER_EQP
SQLITE_DBCONFIG_TRUSTED_SCHEMA
SQLITE_DBCONFIG_WRITABLE_SCHEMA
@ -591,6 +603,7 @@ our %EXPORT_TAGS = (
SQLITE_IOERR_FSTAT
SQLITE_IOERR_FSYNC
SQLITE_IOERR_GETTEMPPATH
SQLITE_IOERR_IN_PAGE
SQLITE_IOERR_LOCK
SQLITE_IOERR_MMAP
SQLITE_IOERR_NOMEM
@ -609,6 +622,7 @@ our %EXPORT_TAGS = (
SQLITE_IOERR_WRITE
SQLITE_LOCKED_SHAREDCACHE
SQLITE_LOCKED_VTAB
SQLITE_NOTICE_RBU
SQLITE_NOTICE_RECOVER_ROLLBACK
SQLITE_NOTICE_RECOVER_WAL
SQLITE_OK_SYMLINK
@ -640,6 +654,7 @@ our %EXPORT_TAGS = (
SQLITE_DETERMINISTIC
SQLITE_DIRECTONLY
SQLITE_INNOCUOUS
SQLITE_RESULT_SUBTYPE
SQLITE_SUBTYPE
/],
@ -873,6 +888,10 @@ This module does not export anything by default.
=item SQLITE_DBCONFIG_TRUSTED_SCHEMA
=item SQLITE_DBCONFIG_STMT_SCANSTATUS
=item SQLITE_DBCONFIG_REVERSE_SCANORDER
=back
=head2 dbd_sqlite_string_mode
@ -1043,6 +1062,10 @@ This module does not export anything by default.
=item SQLITE_CONSTRAINT_DATATYPE
=item SQLITE_NOTICE_RBU
=item SQLITE_IOERR_IN_PAGE
=back
=head2 file_open (flags_for_file_open_operations)
@ -1087,6 +1110,8 @@ This module does not export anything by default.
=item SQLITE_INNOCUOUS
=item SQLITE_RESULT_SUBTYPE
=back
=head2 datatypes (fundamental_datatypes)

View file

@ -5,7 +5,7 @@ use strict;
use warnings;
use Scalar::Util qw/weaken/;
our $VERSION = '1.71_05';
our $VERSION = '1.76';
our @ISA;

43577
sqlite3.c

File diff suppressed because it is too large Load diff

1089
sqlite3.h

File diff suppressed because it is too large Load diff

View file

@ -331,9 +331,9 @@ struct sqlite3_api_routines {
const char *(*filename_journal)(const char*);
const char *(*filename_wal)(const char*);
/* Version 3.32.0 and later */
char *(*create_filename)(const char*,const char*,const char*,
const char *(*create_filename)(const char*,const char*,const char*,
int,const char**);
void (*free_filename)(char*);
void (*free_filename)(const char*);
sqlite3_file *(*database_file_object)(const char*);
/* Version 3.34.0 and later */
int (*txn_state)(sqlite3*,const char*);
@ -351,6 +351,21 @@ struct sqlite3_api_routines {
int (*vtab_in)(sqlite3_index_info*,int,int);
int (*vtab_in_first)(sqlite3_value*,sqlite3_value**);
int (*vtab_in_next)(sqlite3_value*,sqlite3_value**);
/* Version 3.39.0 and later */
int (*deserialize)(sqlite3*,const char*,unsigned char*,
sqlite3_int64,sqlite3_int64,unsigned);
unsigned char *(*serialize)(sqlite3*,const char *,sqlite3_int64*,
unsigned int);
const char *(*db_name)(sqlite3*,int);
/* Version 3.40.0 and later */
int (*value_encoding)(sqlite3_value*);
/* Version 3.41.0 and later */
int (*is_interrupted)(sqlite3*);
/* Version 3.43.0 and later */
int (*stmt_explain)(sqlite3_stmt*,int);
/* Version 3.44.0 and later */
void *(*get_clientdata)(sqlite3*,const char*);
int (*set_clientdata)(sqlite3*, const char*, void*, void(*)(void*));
};
/*
@ -669,6 +684,21 @@ typedef int (*sqlite3_loadext_entry)(
#define sqlite3_vtab_in sqlite3_api->vtab_in
#define sqlite3_vtab_in_first sqlite3_api->vtab_in_first
#define sqlite3_vtab_in_next sqlite3_api->vtab_in_next
/* Version 3.39.0 and later */
#ifndef SQLITE_OMIT_DESERIALIZE
#define sqlite3_deserialize sqlite3_api->deserialize
#define sqlite3_serialize sqlite3_api->serialize
#endif
#define sqlite3_db_name sqlite3_api->db_name
/* Version 3.40.0 and later */
#define sqlite3_value_encoding sqlite3_api->value_encoding
/* Version 3.41.0 and later */
#define sqlite3_is_interrupted sqlite3_api->is_interrupted
/* Version 3.43.0 and later */
#define sqlite3_stmt_explain sqlite3_api->stmt_explain
/* Version 3.44.0 and later */
#define sqlite3_get_clientdata sqlite3_api->get_clientdata
#define sqlite3_set_clientdata sqlite3_api->set_clientdata
#endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */
#if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION)

View file

@ -8,6 +8,9 @@ use if -d ".git", "Test::FailWarnings";
use DBD::SQLite;
use DBD::SQLite::Constants ':dbd_sqlite_string_mode';
# Avoid slowdown with -DDEBUGGING:
${^UTF8CACHE} = 1;
my @texts = ("il était une bergère",
"qui gardait ses moutons",
"elle fit un fromage",

View file

@ -187,6 +187,11 @@ my %since = (
SESSION_OBJCONFIG_SIZE => '3036000',
CONSTRAINT_DATATYPE => '3037000',
OPEN_EXRESCODE => '3037000',
NOTICE_RBU => '3041000',
DBCONFIG_STMT_SCANSTATUS => '3042000',
DBCONFIG_REVERSE_SCANORDER => '3042000',
IOERR_IN_PAGE => '3043000',
RESULT_SUBTYPE => '3044001',
status_parameters_for_prepared_statements => '3006004',
extended_result_codes => '3006005',
@ -233,6 +238,7 @@ my $ignore_tag_re = join '|', (
'prepare_flags', # for sqlite3_prepare_v3
'delete_a_session_object',
'prepared_statement_scan_status',
# status flags (status methods are read-only at the moment)
'status_parameters',
@ -259,6 +265,7 @@ my $ignore_tag_re = join '|', (
'text_encodings',
'virtual_table_constraint_operator_codes',
'virtual_table_indexing_information',
'options_for_sqlite3session_object_config',
);
my %compat = map {$_ => 1} qw/
@ -471,6 +478,8 @@ sub year {
my $self = shift;
return "snapshot" if $self->is_snapshot;
my $version = $self->as_num;
return 2024 if $version >= 3450000;
return 2023 if $version >= 3410000;
return 2022 if $version >= 3370200;
return 2021 if $version >= 3340100;
return 2020 if $version >= 3310000;