Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong kèo bóng đá c1 phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

32.12. kèo bóng đá c1#

Như mọi khi, có một số chức kèo bóng đá c1 không phù hợp ở bất cứ đâu.

pqfreemem #

Bộ nhớ giải phóng được phân bổ bởilibpq.

void pqfreemem (void *ptr);

Bộ nhớ giải phóng được phân bổ bởilibpq, đặc biệtpqescapyteaconn, pqescapytea, PQUNESCAPHERTEApqnotifyes. Điều đặc biệt quan trọng là chức kèo bóng đá c1 này, thay vìfree (), được sử dụng trên Microsoft Windows. Điều này là do phân bổ bộ nhớ trong DLL và phát hành nó trong ứng dụng chỉ hoạt động nếu Multerreaded/một luồng đơn, Phát hành/gỡ lỗi và Cờ tĩnh/động là giống nhau cho DLL và ứng dụng. Trên các nền tảng Windows không phải Microsoft, chức kèo bóng đá c1 này giống như chức kèo bóng đá c1 thư viện tiêu chuẩnfree ().

PQConnInfofree #

Giải phóng kèo bóng đá c1 cấu trúc dữ liệu được phân bổ bởiPQConnDefaultshoặcPQConnInfoparse.

12120_12175

Nếu đối số lànullCon trỏ, không có hoạt động nào được thực hiện.

A Đơn giảnPQFreememsẽ không làm điều này, vì mảng chứa kèo bóng đá c1 tham chiếu đến chuỗi công ty con.

pqencryptpasswordconn #

Chuẩn bị mẫu được mã hóa của APostgreSQLMật khẩu.

char *pqencryptpasswordconn (pgconn *Conn, const char *passwd, const char *user

Hàm này được dự định sẽ được sử dụng bởi kèo bóng đá c1 ứng dụng khách muốn gửi kèo bóng đá c1 lệnh nhưthay đổi mật khẩu joe của người dùng 'PWD'. Thật tốt khi không gửi mật khẩu ClearText ban đầu trong một lệnh như vậy, bởi vì nó có thể được hiển thị trong nhật ký lệnh, màn hình hoạt động, v.v. Thay vào đó, hãy sử dụng chức kèo bóng đá c1 này để chuyển đổi mật khẩu thành biểu mẫu được mã hóa trước khi nó được gửi.

ThepasswduserĐối số là mật khẩu Cleartext và tên SQL của người dùng.Thuật toánChỉ định thuật toán mã hóa để sử dụng để mã hóa mật khẩu. kèo bóng đá c1 thuật toán hiện được hỗ trợ làMD513833_13848(trênTẮTcũng được chấp nhận làm bí danh choMD5, để tương thích với kèo bóng đá c1 phiên bản máy chủ cũ). Lưu ý rằng hỗ trợ choScram-Sha-256đã được giới thiệu trongPostgreSQLPhiên bản 10 và sẽ không hoạt động chính xác với kèo bóng đá c1 phiên bản máy chủ cũ. Nếu nhưThuật toánnull, Hàm này sẽ truy vấn máy chủ cho giá trị hiện tại củapassword_encryptionCài đặt. Điều đó có thể chặn và sẽ thất bại nếu giao dịch hiện tại bị hủy bỏ hoặc nếu kết nối đang bận thực hiện một truy vấn khác. Nếu bạn muốn sử dụng thuật toán mặc định cho máy chủ nhưng muốn tránh chặn, truy vấnpassword_encryptionchính bạn trước khi gọiPQENCRYPTPASSWORDCONNvà chuyển giá trị đó làThuật toán.

Giá trị trả về là một chuỗi được phân bổ bởimalloc. Người gọi có thể giả sử chuỗi không chứa bất kỳ ký tự đặc biệt nào yêu cầu thoát. Sử dụngPQFreememĐể giải phóng kết quả khi thực hiện với nó. Trên lỗi, trả vềnull, và một thông báo phù hợp được lưu trữ trong đối tượng kết nối.

PQChangePassword #

thay đổi APostgreSQLMật khẩu.

pgresult *pqchangePassword (pgconn *Conn, const char *user

Hàm này sử dụngpqencryptpasswordconnĐể xây dựng và thực thi lệnhthay đổi người dùng ... mật khẩu '...', do đó thay đổi mật khẩu của người dùng. Nó tồn tại vì lý do tương tự nhưpqencryptpasswordconn, nhưng thuận tiện hơn vì nó cả hai xây dựng và chạy lệnh cho bạn.pqencryptpasswordconnđược truyền AnullĐối với đối số thuật toán, do đó mã hóa được thực hiện theo máy chủpassword_encryptionCài đặt.

Thengười dùngpasswdĐối số là tên SQL của người dùng đích và mật khẩu Cleartext mới.

Trả về APGRESULTCon trỏ biểu thị kết quả củangười dùng thay đổilệnh hoặc con trỏ null nếu thói quen không thành công trước khi ban hành bất kỳ lệnh nào. ThePQResultstatusHàm nên được gọi để kiểm tra giá trị trả về cho bất kỳ lỗi nào (bao gồm giá trị của con trỏ null, trong trường hợp đó nó sẽ trả vềPGRES_FATAL_ERROR). Sử dụngpqerrormessageĐể biết thêm thông tin về kèo bóng đá c1 lỗi đó.

pqencryptpassword #

Chuẩn bị hình thức được mã hóa MD5 của APostgreSQLMật khẩu.

17922_17988

pqencryptpasswordlà phiên bản cũ hơn, không dùng nữa củaPQENCRYPTPASSWORDCONN. Sự khác biệt làpqencryptpasswordKhông yêu cầu đối tượng kết nối vàMD5luôn được sử dụng làm thuật toán mã hóa.

PQMakeMpTypgresult #

Xây dựng trốngpgresultĐối tượng có trạng thái đã cho.

18956_19027

Đây làlibpq19089_19148PGRESULTĐối tượng. Hàm này trả vềnullNếu bộ nhớ không thể được phân bổ. Nó được xuất vì một số ứng dụng thấy hữu ích để tạo kèo bóng đá c1 đối tượng kết quả (đặc biệt là kèo bóng đá c1 đối tượng có trạng thái lỗi). Nếu nhưConnkhông phải là null vàtrạng tháiCho biết lỗi, thông báo lỗi hiện tại của kết nối được chỉ định được sao chép vàoPGRESULT. Ngoài ra, nếuConnkhông phải là null, bất kỳ quy trình sự kiện nào được đăng ký trong kết nối được sao chép vàopgresult. (Họ không nhận đượcPGEVT_RESULTCREATEcuộc gọi, nhưng xemPQFireresultCreateEevents.) Lưu ý rằngPQClearCuối cùng nên được gọi trên đối tượng, giống như vớipgresultĐược trả về bởilibpqchính nó.

PQFireresultCreateEvents #

Hỏa hoạn APGEVT_RESULTCREATESự kiện (xemPhần 32.14) cho mỗi quy trình sự kiện được đăng ký trongpgresultĐối tượng. Trả về không phải cho thành công, không, nếu có bất kỳ thủ tục sự kiện nào thất bại.

20986_21048

TheConnĐối số được chuyển qua kèo bóng đá c1 thủ tục sự kiện nhưng không được sử dụng trực tiếp. Nó có thể làNULLNếu quy trình sự kiện không sử dụng nó.

Quy trình sự kiện đã nhận đượcPGEVT_RESULTCREATEhoặcPGEVT_RESULTCOPYSự kiện cho đối tượng này không bị bắn nữa.

Lý do chính mà chức kèo bóng đá c1 này tách biệt vớiPQMakeMpTypgresultCó phải là không phù hợp để tạopgresultvà điền vào dữ liệu trước khi gọi kèo bóng đá c1 quy trình sự kiện.

PQCopyresult #

Tạo một bản sao của ApgresultĐối tượng. Bản sao không được liên kết với kết quả nguồn theo bất kỳ cách nào vàPQClearphải được gọi khi bản sao không còn cần thiết. Nếu chức kèo bóng đá c1 không thành công,nullđược trả về.

​​pgresult *pqcopyresult (const pgresult *src, int flags);

Điều này không nhằm tạo một bản sao chính xác. Kết quả trả về luôn được đặt vàoPGRES_TUDS_OKtrạng thái và không sao chép bất kỳ thông báo lỗi nào trong nguồn. (Tuy nhiên, nó sao chép chuỗi trạng thái lệnh.)cờĐối số xác định những gì khác được sao chép. Nó là một chút hoặc của một số cờ.PG_COPYRES_ATTRSChỉ định sao chép kèo bóng đá c1 thuộc tính của kết quả nguồn (định nghĩa cột).pg_copyres_tuplesChỉ định sao chép kèo bóng đá c1 bộ dữ liệu của kết quả nguồn. (Điều này cũng ngụ ý sao chép kèo bóng đá c1 thuộc tính.)pg_copyres_noticehooksChỉ định sao chép kèo bóng đá c1 móc thông báo của kết quả nguồn.pg_copyres_events23279_23423PGEVT_RESULTCOPYSự kiện.

PQSetResultattrs #

Đặt kèo bóng đá c1 thuộc tính của APGRESULTĐối tượng.

23870_23953

được cung cấpAttdescsđược sao chép vào kết quả. NếuAttdescsCon trỏ lànullhoặcnumattributnhỏ hơn một, yêu cầu bị bỏ qua và chức kèo bóng đá c1 thành công. Nếu nhưres24330_24490

PQSetValue #

Đặt giá trị trường Tuple của ApgresultĐối tượng.

24873_24957

Hàm sẽ tự động phát triển mảng Tuples nội bộ của kết quả khi cần thiết. Tuy nhiên,TUP_NUMĐối số phải nhỏ hơn hoặc bằngPQNTUMPLES, có nghĩa là hàm này chỉ có thể phát triển mảng Tuples một tuple cùng một lúc. Nhưng bất kỳ trường nào của bất kỳ tuple hiện có có thể được sửa đổi theo bất kỳ thứ tự nào. Nếu một giá trị tạifield_num25459_25505lenlà -1 hoặcgiá trịnull, giá trị trường sẽ được đặt thành giá trị null SQL. Thegiá trịđược sao chép vào bộ nhớ riêng của kết quả, do đó không còn cần thiết sau khi chức kèo bóng đá c1 trở lại. Nếu hàm không thành công, giá trị trả về bằng không. Nếu hàm thành công, giá trị trả về không khác.

PQResultalloc #

Phân bổ lưu trữ công ty con cho ApgresultĐối tượng.

void *pqresultalloc (pgresult *res, size_t nbytes);

Bất kỳ bộ nhớ nào được phân bổ với chức kèo bóng đá c1 này sẽ được giải phóng khiresđược xóa. Nếu hàm không thành công, giá trị trả về lànull. Kết quả được đảm bảo được căn chỉnh đầy đủ cho bất kỳ loại dữ liệu nào, giống như đối vớimalloc.

pqresultmemorysize #

Lấy số lượng byte được phân bổ cho a27089_27099Đối tượng.

size_t pqresultmemorysize (const pgresult *res);

Giá trị này là tổng của tất cảmallocYêu cầu liên quan đếnpgresultĐối tượng, nghĩa là, tất cả bộ nhớ sẽ được giải phóng bởiPQClear. Thông tin này có thể hữu ích để quản lý mức tiêu thụ bộ nhớ.

PQLibVersion #

27841_27865libpqĐiều đó đang được sử dụng.

int pqlibversion (void);

Kết quả của chức kèo bóng đá c1 này có thể được sử dụng để xác định, tại thời điểm chạy, liệu chức kèo bóng đá c1 cụ thể có sẵn trong phiên bản LIBPQ hiện đang được tải hay không. Chức kèo bóng đá c1 có thể được sử dụng, ví dụ, để xác định tùy chọn kết nối nào có sẵn trongPQConnectDB.

28368_28585

Trước phiên bản chính 10,PostgreSQLđã sử dụng số phiên bản ba phần trong đó hai phần đầu tiên cùng nhau đại diện cho phiên bản chính. Cho kèo bóng đá c1 phiên bản đó,PQLibVersionSử dụng hai chữ số cho mỗi phần; Ví dụ: Phiên bản 9.1.5 sẽ được trả lại là 90105 và phiên bản 9.2.0 sẽ được trả về là 90200.

Do đó, với mục đích xác định khả kèo bóng đá c1 tương thích tính kèo bóng đá c1, các ứng dụng nên chia kết quả củapqlibversion29247_29409

Lưu ý

Hàm này xuất hiện trongPostgreSQLPhiên bản 9.1, do đó không thể được sử dụng để phát hiện chức kèo bóng đá c1 cần thiết trong các phiên bản trước, vì gọi nó sẽ tạo ra sự phụ thuộc liên kết vào phiên bản 9.1 trở lên.

PQGetCienTimeUsec #

Lấy thời gian hiện tại, được biểu thị bằng số lượng micro giây kể từ thời đại unix (nghĩa làtime_tlần 1 triệu).


        

Điều này chủ yếu hữu ích để tính toán kèo bóng đá c1 giá trị thời gian chờ để sử dụng vớiPQSocketPoll.