diff --git a/src/dbi_impl.jl b/src/dbi_impl.jl index a1e2fae..3a95734 100644 --- a/src/dbi_impl.jl +++ b/src/dbi_impl.jl @@ -130,7 +130,7 @@ function copy_from(db::PostgresDatabaseHandle, table::AbstractString, return checkerrclear(PQgetResult(db.ptr)) end -hashsql(sql::AbstractString) = unsafe_string(string("__", hash(sql), "__")) +hashsql(sql::AbstractString) = String(string("__", hash(sql), "__")) function getparamtypes(result::Ptr{PGresult}) nparams = PQnparams(result) diff --git a/src/libpq_common.jl b/src/libpq_common.jl index 02fe849..407a93d 100644 --- a/src/libpq_common.jl +++ b/src/libpq_common.jl @@ -50,14 +50,14 @@ const PGF_BINARY = 1 # Skipping MacroDefinition: PQsetdb(M_PGHOST,M_PGPORT,M_PGOPT,M_PGTTY,M_DBNAME)PQsetdbLogin(M_PGHOST,M_PGPORT,M_PGOPT,M_PGTTY,M_DBNAME,NULL,NULL) # Skipping MacroDefinition: PQfreeNotify(ptr)PQfreemem(ptr) const PQnoPasswordSupplied = "fe_sendauth: no password supplied\n" -typealias _IO_lock_t Union{} -typealias va_list Cint +const _IO_lock_t = Union{} +const va_list = Cint # typealias off_t __off_t # typealias ssize_t __ssize_t # typealias fpos_t _G_fpos_t -typealias Oid UInt32 +const Oid = UInt32 # begin enum ConnStatusType -typealias ConnStatusType UInt32 +const ConnStatusType = UInt32 const CONNECTION_OK = 0 const CONNECTION_BAD = 1 const CONNECTION_STARTED = 2 @@ -69,7 +69,7 @@ const CONNECTION_SSL_STARTUP = 7 const CONNECTION_NEEDED = 8 # end enum ConnStatusType # begin enum PostgresPollingStatusType -typealias PostgresPollingStatusType UInt32 +const PostgresPollingStatusType = UInt32 const PGRES_POLLING_FAILED = 0 const PGRES_POLLING_READING = 1 const PGRES_POLLING_WRITING = 2 @@ -77,7 +77,7 @@ const PGRES_POLLING_OK = 3 const PGRES_POLLING_ACTIVE = 4 # end enum PostgresPollingStatusType # begin enum ExecStatusType -typealias ExecStatusType UInt32 +const ExecStatusType = UInt32 const PGRES_EMPTY_QUERY = 0 const PGRES_COMMAND_OK = 1 const PGRES_TUPLES_OK = 2 @@ -90,7 +90,7 @@ const PGRES_COPY_BOTH = 8 const PGRES_SINGLE_TUPLE = 9 # end enum ExecStatusType # begin enum PGTransactionStatusType -typealias PGTransactionStatusType UInt32 +const PGTransactionStatusType = UInt32 const PQTRANS_IDLE = 0 const PQTRANS_ACTIVE = 1 const PQTRANS_INTRANS = 2 @@ -98,21 +98,30 @@ const PQTRANS_INERROR = 3 const PQTRANS_UNKNOWN = 4 # end enum PGTransactionStatusType # begin enum PGVerbosity -typealias PGVerbosity UInt32 +const PGVerbosity = UInt32 const PQERRORS_TERSE = 0 const PQERRORS_DEFAULT = 1 const PQERRORS_VERBOSE = 2 # end enum PGVerbosity # begin enum PGPing -typealias PGPing UInt32 +const PGPing = UInt32 const PQPING_OK = 0 const PQPING_REJECT = 1 const PQPING_NO_RESPONSE = 2 const PQPING_NO_ATTEMPT = 3 # end enum PGPing -typealias PQnoticeReceiver Ptr{Void} -typealias PQnoticeProcessor Ptr{Void} -typealias pqbool UInt8 -typealias pgthreadlock_t Ptr{Void} -typealias PGconn Void -typealias PGresult Void +const PQnoticeReceiver = Ptr{Void} +const PQnoticeProcessor = Ptr{Void} +const pqbool = UInt8 +const pgthreadlock_t = Ptr{Void} +const PGconn = Void +const PGresult = Void + +const _IO_FILE = Void +const FILE = Void +const PQconninfoOption = Void +const PGcancel = Void +const PGnotify = Void +const PQArgBlock = Void +const PGresAttDesc = Void +const PQprintOpt = Void diff --git a/src/libpq_interface.jl b/src/libpq_interface.jl index 89a7840..1c816b5 100644 --- a/src/libpq_interface.jl +++ b/src/libpq_interface.jl @@ -94,8 +94,6 @@ module libpq_interface @c Cint _IO_vfprintf (Ptr{_IO_FILE}, Ptr{UInt8}, Cint) libpq # @c __ssize_t _IO_padn (Ptr{_IO_FILE}, Cint, __ssize_t) libpq @c Cint _IO_sgetn (Ptr{_IO_FILE}, Ptr{Void}, Cint) libpq - @c __off64_t _IO_seekoff (Ptr{_IO_FILE}, __off64_t, Cint, Cint) libpq - @c __off64_t _IO_seekpos (Ptr{_IO_FILE}, __off64_t, Cint) libpq @c Void _IO_free_backup_area (Ptr{_IO_FILE},) libpq @c Cint remove (Ptr{UInt8},) libpq @c Cint rename (Ptr{UInt8}, Ptr{UInt8}) libpq diff --git a/src/types.jl b/src/types.jl index 2970f6b..c8d5f3a 100644 --- a/src/types.jl +++ b/src/types.jl @@ -2,10 +2,10 @@ import DataArrays: NAtype import JSON import Compat: Libc, unsafe_convert, parse, @compat, String, unsafe_string -abstract AbstractPostgresType +@compat abstract type AbstractPostgresType end type PostgresType{Name} <: AbstractPostgresType end -abstract AbstractOID +@compat abstract type AbstractOID end type OID{N} <: AbstractOID end oid{T<:AbstractPostgresType}(t::Type{T}) = convert(OID, t) @@ -55,7 +55,7 @@ newpgtype(:_varchar, 1015, (Vector{String},)) newpgtype(:_text, 1009, (Vector{String},)) -typealias PGStringTypes Union{Type{PostgresType{:bpchar}}, +const PGStringTypes = Union{Type{PostgresType{:bpchar}}, Type{PostgresType{:varchar}}, Type{PostgresType{:text}}, Type{PostgresType{:date}}} @@ -153,24 +153,24 @@ function pgdata(::Type{PostgresType{:numeric}}, ptr::Ptr{UInt8}, data::Number) end function pgdata(::PGStringTypes, ptr::Ptr{UInt8}, data::AbstractString) - ptr = storestring!(ptr, data) + ptr = storestring!(ptr, String(data)) end function pgdata(::PostgresType{:date}, ptr::Ptr{UInt8}, data::AbstractString) - ptr = storestring!(ptr, data) + ptr = storestring!(ptr, String(data)) ptr = Dates.DateFormat(ptr) end function pgdata(::PostgresType{:timestamp}, ptr::Ptr{UInt8}, data::AbstractString) - ptr = storestring!(ptr, data) + ptr = storestring!(ptr, String(data)) end function pgdata(::PostgresType{:timestamptz}, ptr::Ptr{UInt8}, data::AbstractString) - ptr = storestring!(ptr, data) + ptr = storestring!(ptr, String(data)) end function pgdata(::Type{PostgresType{:bytea}}, ptr::Ptr{UInt8}, data::Vector{UInt8}) - ptr = storestring!(ptr, string("\\x", bytes2hex(data))) + ptr = storestring!(ptr, String(string("\\x", bytes2hex(data)))) end function pgdata(::Type{PostgresType{:unknown}}, ptr::Ptr{UInt8}, data) @@ -178,11 +178,11 @@ function pgdata(::Type{PostgresType{:unknown}}, ptr::Ptr{UInt8}, data) end function pgdata{T<:AbstractString}(::Type{PostgresType{:json}}, ptr::Ptr{UInt8}, data::Dict{T,Any}) - ptr = storestring!(ptr, JSON.json(data)) + ptr = storestring!(ptr, String(JSON.json(data))) end function pgdata{T<:AbstractString}(::Type{PostgresType{:jsonb}}, ptr::Ptr{UInt8}, data::Dict{T,Any}) - ptr = storestring!(ptr, JSON.json(data)) + ptr = storestring!(ptr, String(JSON.json(data))) end function pgdata(::Type{PostgresType{:_bool}}, ptr::Ptr{UInt8}, data::Vector{Bool}) @@ -218,7 +218,7 @@ function pgdata(::Type{PostgresType{:_text}}, ptr::Ptr{UInt8}, data::Vector{Stri end # dbi -abstract Postgres <: DBI.DatabaseSystem +@compat abstract type Postgres<:DBI.DatabaseSystem end type PostgresDatabaseHandle <: DBI.DatabaseHandle ptr::Ptr{PGconn}