@@ -193,16 +193,10 @@ module sqlite3
193193 public :: sqlite3_close
194194 public :: sqlite3_close_
195195 public :: sqlite3_column_count
196- public :: sqlite3_column_database_name
197- public :: sqlite3_column_database_name_
198196 public :: sqlite3_column_double
199197 public :: sqlite3_column_int
200198 public :: sqlite3_column_int64
201199 public :: sqlite3_column_name
202- public :: sqlite3_column_origin_name
203- public :: sqlite3_column_origin_name_
204- public :: sqlite3_column_table_name
205- public :: sqlite3_column_table_name_
206200 public :: sqlite3_column_text
207201 public :: sqlite3_column_type
208202 public :: sqlite3_config
@@ -264,6 +258,21 @@ module sqlite3
264258 public :: sqlite3_threadsafe
265259 public :: sqlite3_update_hook
266260
261+ #if SQLITE_ENABLE_COLUMN_METADATA
262+ public :: sqlite3_column_database_name
263+ public :: sqlite3_column_database_name_
264+ public :: sqlite3_column_table_name
265+ public :: sqlite3_column_table_name_
266+ public :: sqlite3_column_origin_name
267+ public :: sqlite3_column_origin_name_
268+ #endif
269+
270+ interface sqlite3_config
271+ module procedure :: sqlite3_config_funptr_ptr
272+ module procedure :: sqlite3_config_int
273+ module procedure :: sqlite3_config_null
274+ end interface
275+
267276 interface
268277 ! int sqlite3_backup_finish(sqlite3_backup *p)
269278 function sqlite3_backup_finish (p ) bind(c, name= ' sqlite3_backup_finish' )
@@ -420,15 +429,6 @@ function sqlite3_column_count(stmt) bind(c, name='sqlite3_column_count')
420429 integer (kind= c_int) :: sqlite3_column_count
421430 end function sqlite3_column_count
422431
423- ! const char *sqlite3_column_database_name(sqlite3_stmt *stmt, int idx)
424- function sqlite3_column_database_name_ (stmt , idx ) bind(c, name= ' sqlite3_column_database_name' )
425- import :: c_int, c_ptr
426- implicit none
427- type (c_ptr), intent (in ), value :: stmt
428- integer (kind= c_int), intent (in ), value :: idx
429- type (c_ptr) :: sqlite3_column_database_name_
430- end function sqlite3_column_database_name_
431-
432432 ! double sqlite3_column_double(sqlite3_stmt *stmt, int idx)
433433 function sqlite3_column_double (stmt , idx ) bind(c, name= ' sqlite3_column_double' )
434434 import :: c_double, c_int, c_ptr
@@ -465,24 +465,6 @@ function sqlite3_column_name_(stmt, idx) bind(c, name='sqlite3_column_name')
465465 type (c_ptr) :: sqlite3_column_name_
466466 end function sqlite3_column_name_
467467
468- ! const char *sqlite3_column_origin_name(sqlite3_stmt *stmt, int idx)
469- function sqlite3_column_origin_name_ (stmt , idx ) bind(c, name= ' sqlite3_column_origin_name' )
470- import :: c_int, c_ptr
471- implicit none
472- type (c_ptr), intent (in ), value :: stmt
473- integer (kind= c_int), intent (in ), value :: idx
474- type (c_ptr) :: sqlite3_column_origin_name_
475- end function sqlite3_column_origin_name_
476-
477- ! const char *sqlite3_column_table_name(sqlite3_stmt *stmt, int idx)
478- function sqlite3_column_table_name_ (stmt , idx ) bind(c, name= ' sqlite3_column_table_name' )
479- import :: c_int, c_ptr
480- implicit none
481- type (c_ptr), intent (in ), value :: stmt
482- integer (kind= c_int), intent (in ), value :: idx
483- type (c_ptr) :: sqlite3_column_table_name_
484- end function sqlite3_column_table_name_
485-
486468 ! const unsigned char *sqlite3_column_text(sqlite3_stmt *stmt, int idx)
487469 function sqlite3_column_text_ (stmt , idx ) bind(c, name= ' sqlite3_column_text' )
488470 import :: c_int, c_ptr
@@ -898,11 +880,36 @@ subroutine sqlite3_str_reset(str) bind(c, name='slqite3_str_reset')
898880 end subroutine sqlite3_str_reset
899881 end interface
900882
901- interface sqlite3_config
902- module procedure :: sqlite3_config_funptr_ptr
903- module procedure :: sqlite3_config_int
904- module procedure :: sqlite3_config_null
883+ #if SQLITE_ENABLE_COLUMN_METADATA
884+ interface
885+ ! const char *sqlite3_column_database_name(sqlite3_stmt *stmt, int idx)
886+ function sqlite3_column_database_name_ (stmt , idx ) bind(c, name= ' sqlite3_column_database_name' )
887+ import :: c_int, c_ptr
888+ implicit none
889+ type (c_ptr), intent (in ), value :: stmt
890+ integer (kind= c_int), intent (in ), value :: idx
891+ type (c_ptr) :: sqlite3_column_database_name_
892+ end function sqlite3_column_database_name_
893+
894+ ! const char *sqlite3_column_origin_name(sqlite3_stmt *stmt, int idx)
895+ function sqlite3_column_origin_name_ (stmt , idx ) bind(c, name= ' sqlite3_column_origin_name' )
896+ import :: c_int, c_ptr
897+ implicit none
898+ type (c_ptr), intent (in ), value :: stmt
899+ integer (kind= c_int), intent (in ), value :: idx
900+ type (c_ptr) :: sqlite3_column_origin_name_
901+ end function sqlite3_column_origin_name_
902+
903+ ! const char *sqlite3_column_table_name(sqlite3_stmt *stmt, int idx)
904+ function sqlite3_column_table_name_ (stmt , idx ) bind(c, name= ' sqlite3_column_table_name' )
905+ import :: c_int, c_ptr
906+ implicit none
907+ type (c_ptr), intent (in ), value :: stmt
908+ integer (kind= c_int), intent (in ), value :: idx
909+ type (c_ptr) :: sqlite3_column_table_name_
910+ end function sqlite3_column_table_name_
905911 end interface
912+ #endif
906913contains
907914 function sqlite3_backup_init (dest , dest_name , source , source_name )
908915 type (c_ptr), intent (in ) :: dest
@@ -950,16 +957,6 @@ function sqlite3_close(db)
950957 if (sqlite3_close == SQLITE_OK) db = c_null_ptr
951958 end function sqlite3_close
952959
953- function sqlite3_column_database_name (stmt , idx )
954- type (c_ptr), intent (inout ) :: stmt
955- integer , intent (in ) :: idx
956- character (len= :), allocatable :: sqlite3_column_database_name
957- type (c_ptr) :: ptr
958-
959- ptr = sqlite3_column_database_name_(stmt, idx)
960- call c_f_str_ptr(ptr, sqlite3_column_database_name)
961- end function sqlite3_column_database_name
962-
963960 function sqlite3_column_name (stmt , idx )
964961 type (c_ptr), intent (inout ) :: stmt
965962 integer , intent (in ) :: idx
@@ -970,26 +967,6 @@ function sqlite3_column_name(stmt, idx)
970967 call c_f_str_ptr(ptr, sqlite3_column_name)
971968 end function sqlite3_column_name
972969
973- function sqlite3_column_origin_name (stmt , idx )
974- type (c_ptr), intent (inout ) :: stmt
975- integer , intent (in ) :: idx
976- character (len= :), allocatable :: sqlite3_column_origin_name
977- type (c_ptr) :: ptr
978-
979- ptr = sqlite3_column_origin_name_(stmt, idx)
980- call c_f_str_ptr(ptr, sqlite3_column_origin_name)
981- end function sqlite3_column_origin_name
982-
983- function sqlite3_column_table_name (stmt , idx )
984- type (c_ptr), intent (inout ) :: stmt
985- integer , intent (in ) :: idx
986- character (len= :), allocatable :: sqlite3_column_table_name
987- type (c_ptr) :: ptr
988-
989- ptr = sqlite3_column_table_name_(stmt, idx)
990- call c_f_str_ptr(ptr, sqlite3_column_table_name)
991- end function sqlite3_column_table_name
992-
993970 function sqlite3_column_text (stmt , idx )
994971 type (c_ptr), intent (inout ) :: stmt
995972 integer , intent (in ) :: idx
@@ -1173,4 +1150,36 @@ subroutine sqlite3_log(ierr_code, str)
11731150
11741151 call sqlite3_log_(ierr_code, str // c_null_char)
11751152 end subroutine sqlite3_log
1153+
1154+ #if SQLITE_ENABLE_COLUMN_METADATA
1155+ function sqlite3_column_database_name (stmt , idx )
1156+ type (c_ptr), intent (inout ) :: stmt
1157+ integer , intent (in ) :: idx
1158+ character (len= :), allocatable :: sqlite3_column_database_name
1159+ type (c_ptr) :: ptr
1160+
1161+ ptr = sqlite3_column_database_name_(stmt, idx)
1162+ call c_f_str_ptr(ptr, sqlite3_column_database_name)
1163+ end function sqlite3_column_database_name
1164+
1165+ function sqlite3_column_origin_name (stmt , idx )
1166+ type (c_ptr), intent (inout ) :: stmt
1167+ integer , intent (in ) :: idx
1168+ character (len= :), allocatable :: sqlite3_column_origin_name
1169+ type (c_ptr) :: ptr
1170+
1171+ ptr = sqlite3_column_origin_name_(stmt, idx)
1172+ call c_f_str_ptr(ptr, sqlite3_column_origin_name)
1173+ end function sqlite3_column_origin_name
1174+
1175+ function sqlite3_column_table_name (stmt , idx )
1176+ type (c_ptr), intent (inout ) :: stmt
1177+ integer , intent (in ) :: idx
1178+ character (len= :), allocatable :: sqlite3_column_table_name
1179+ type (c_ptr) :: ptr
1180+
1181+ ptr = sqlite3_column_table_name_(stmt, idx)
1182+ call c_f_str_ptr(ptr, sqlite3_column_table_name)
1183+ end function sqlite3_column_table_name
1184+ #endif
11761185end module sqlite3
0 commit comments