@@ -1704,9 +1704,19 @@ const char *databasevm_sql (dbvm_t *vm) {
17041704
17051705// MARK: - BINDING -
17061706
1707+ static int databasevm_bind_null_type (dbvm_t * vm , int index , Oid t ) {
1708+ int rc = databasevm_bind_null (vm , index );
1709+ if (rc != DBRES_OK ) return rc ;
1710+ int idx = index - 1 ;
1711+
1712+ pg_stmt_t * stmt = (pg_stmt_t * )vm ;
1713+ stmt -> types [idx ] = t ;
1714+ return rc ;
1715+ }
1716+
17071717int databasevm_bind_blob (dbvm_t * vm , int index , const void * value , uint64_t size ) {
17081718 if (!vm || index < 1 ) return DBRES_ERROR ;
1709- if (!value ) return databasevm_bind_null (vm , index );
1719+ if (!value ) return databasevm_bind_null_type (vm , index , BYTEAOID );
17101720
17111721 // validate size fits Size and won't overflow
17121722 if (size > (uint64 ) (MaxAllocSize - VARHDRSZ )) return DBRES_NOMEM ;
@@ -1770,7 +1780,7 @@ int databasevm_bind_null (dbvm_t *vm, int index) {
17701780
17711781 pg_stmt_t * stmt = (pg_stmt_t * )vm ;
17721782 stmt -> values [idx ] = (Datum )0 ;
1773- stmt -> types [idx ] = UNKNOWNOID ;
1783+ stmt -> types [idx ] = BYTEAOID ;
17741784 stmt -> nulls [idx ] = 'n' ;
17751785
17761786 if (stmt -> nparams < idx + 1 ) stmt -> nparams = idx + 1 ;
@@ -1779,7 +1789,7 @@ int databasevm_bind_null (dbvm_t *vm, int index) {
17791789
17801790int databasevm_bind_text (dbvm_t * vm , int index , const char * value , int size ) {
17811791 if (!vm || index < 1 ) return DBRES_ERROR ;
1782- if (!value ) return databasevm_bind_null (vm , index );
1792+ if (!value ) return databasevm_bind_null_type (vm , index , TEXTOID );
17831793
17841794 // validate size fits Size and won't overflow
17851795 if (size < 0 ) size = (int )strlen (value );
@@ -1804,7 +1814,7 @@ int databasevm_bind_text (dbvm_t *vm, int index, const char *value, int size) {
18041814
18051815int databasevm_bind_value (dbvm_t * vm , int index , dbvalue_t * value ) {
18061816 if (!vm ) return DBRES_ERROR ;
1807- if (!value ) return databasevm_bind_null (vm , index );
1817+ if (!value ) return databasevm_bind_null_type (vm , index , TEXTOID );
18081818
18091819 // validate index bounds properly (1-based index)
18101820 if (index < 1 ) return DBRES_ERROR ;
0 commit comments