diff --git a/ext/sqlite/libsqlite/src/os.c b/ext/sqlite/libsqlite/src/os.c index 2c57078305b..12761bb2a32 100644 --- a/ext/sqlite/libsqlite/src/os.c +++ b/ext/sqlite/libsqlite/src/os.c @@ -34,6 +34,9 @@ # ifndef O_BINARY # define O_BINARY 0 # endif +# ifndef EISDIR +# define EISDIR 21 +# endif #endif @@ -464,6 +467,9 @@ int sqliteOsOpenReadWrite( id->dirfd = -1; id->fd = open(zFilename, O_RDWR|O_CREAT|O_LARGEFILE|O_BINARY, 0644); if( id->fd<0 ){ + if (errno == EISDIR) { + return SQLITE_CANTOPEN; + } id->fd = open(zFilename, O_RDONLY|O_LARGEFILE|O_BINARY); if( id->fd<0 ){ return SQLITE_CANTOPEN;