Mỗi danh kèo chấp bóng đá hôm nay có bất kỳ dữ liệu ban đầu được tạo bằng tay (một số không) có tương ứng.dat
Tệp chứa dữ kèo chấp bóng đá hôm nay ban đầu của nó ở định dạng có thể chỉnh sửa.
mỗi.dat
Tệp chứa cấu trúc dữ liệu Perl theo nghĩa đen chỉ đơn giản là để tạo ra một cấu trúc dữ liệu trong bộ nhớ bao gồm một mảng các tài liệu tham khảo băm, một hàng trên mỗi hàng danh kèo chấp bóng đá hôm nay. Một đoạn trích được sửa đổi một chút từpg_database.dat
sẽ trình bày kèo chấp bóng đá hôm nay tính năng chính:
[[
Điểm để lưu ý:
Bố cục tập tin tổng thể là: Khung vuông mở, một hoặc nhiều bộ niềng răng xoăn mỗi thứ đại diện cho một hàng danh kèo chấp bóng đá hôm nay, đóng khung vuông. Viết dấu phẩy sau mỗi lần đóng giằng xoăn.
Trong mỗi hàng Danh kèo chấp bóng đá hôm nay, hãy viết dấu phẩyKey
=
giá trị
cặp. Cho phépKey
S là tên của các cột của danh kèo chấp bóng đá hôm nay, cộng với các khóa siêu dữ liệuoid
,oid_symbol
,mảng_type_oid
vàDescr
. (Việc sử dụngoid
vàoid_symbol
được mô tả trongPhần 67.2.2bên dưới, trong khimảng_type_oid
được mô tả trongSection67.2.4.Descr
cung cấp chuỗi mô tả cho đối tượng, sẽ được chèn vàopg_descrip
hoặcpg_shdescrip
khi thích hợp.) Trong khi các khóa siêu dữ liệu là tùy chọn, tất cả các cột được xác định của danh kèo chấp bóng đá hôm nay phải được cung cấp, ngoại trừ khi danh kèo chấp bóng đá hôm nay của.h
Tệp Chỉ định giá trị mặc định cho cột. (Trong ví dụ trên,Datdba
Trường đã bị bỏ qua vìpg_database.h
cung cấp giá trị mặc định phù hợp cho nó.)
Tất cả kèo chấp bóng đá hôm nay giá trị phải được trích xuất đơn. kèo chấp bóng đá hôm nay trích dẫn đơn lẻ được sử dụng trong một giá trị với dấu gạch chéo ngược.Phần 4.1.2.2); Ví dụ\ T
Chuyển đổi thành một ký tự tab. Nếu bạn thực sự muốn một dấu gạch chéo ngược trong giá trị cuối cùng, bạn sẽ cần phải viết bốn trong số chúng: Perl Strips Two, rời khỏi\
Để máy quét bootstrap xem.
Giá trị null được biểu diễn bằng_null_
. (Lưu ý rằng không có cách nào để tạo một giá trị chỉ là chuỗi đó.)
Nhận xét được đi trước#
, và phải ở trên dòng của riêng họ.
Các giá trị trường là OID của các kèo chấp bóng đá hôm nay danh kèo chấp bóng đá hôm nay khác phải được biểu diễn bằng các tên biểu tượng thay vì OID số thực tế. (Trong ví dụ trên,Dattablespace
chứa một tham chiếu như vậy.) Điều này được mô tả trongPhần 67.2.3bên dưới.
Vì các băm là các cấu trúc dữ kèo chấp bóng đá hôm nay không theo thứ tự, thứ tự trường và bố cục dòng không có ý nghĩa về mặt ngữ nghĩa. Tuy nhiên, để duy trì ngoại hình nhất quán, chúng tôi đặt một vài quy tắc được áp dụng bởi tập lệnh định dạngReformat_dat_file.pl
:
Trong mỗi cặp niềng răng xoăn, các trường siêu dữ kèo chấp bóng đá hôm nayoid
,oid_symbol
,mảng_type_oid
vàDescr
(nếu có) đến trước, theo thứ tự đó, sau đó các trường riêng của danh kèo chấp bóng đá hôm nay xuất hiện theo thứ tự được xác định của chúng.
Newlines được chèn giữa các trường khi cần thiết để giới hạn độ dài dòng xuống 80 ký tự, nếu có thể. Một dòng mới cũng được chèn giữa các trường siêu dữ kèo chấp bóng đá hôm nay và các trường chính quy.
Nếu danh kèo chấp bóng đá hôm nay của.h
Tệp Chỉ định giá trị mặc định cho cột và kèo chấp bóng đá hôm nay nhập dữ liệu có cùng giá trị đó,reformat_dat_file.pl
Sẽ bỏ qua nó khỏi tệp dữ kèo chấp bóng đá hôm nay. Điều này giữ cho biểu diễn dữ kèo chấp bóng đá hôm nay nhỏ gọn.
Refleat_dat_file.pl
Bảo tồn kèo chấp bóng đá hôm nay dòng trống và kèo chấp bóng đá hôm nay dòng bình luận AS-IS.
Nên chạyRefleat_dat_file.pl
Trước khi gửi các bản vá dữ liệu danh kèo chấp bóng đá hôm nay. Để thuận tiện, bạn chỉ có thể thay đổi thànhsrc/bao gồm/catalog/
và chạyLàm cho ReforTat-Dat-Files
.
Nếu bạn muốn thêm một phương thức mới để làm cho biểu diễn dữ kèo chấp bóng đá hôm nay nhỏ hơn, bạn phải thực hiện nó trongRefleat_dat_file.pl
và cũng dạyDanh kèo chấp bóng đá hôm nay :: Parsedata ()
Cách mở rộng dữ kèo chấp bóng đá hôm nay trở lại thành đại diện đầy đủ.
Một hàng danh kèo chấp bóng đá hôm nay xuất hiện trong dữ liệu ban đầu có thể được đưa ra một OID được chỉ định thủ công bằng cách viết mộtoid =
Trường siêu dữ kèo chấp bóng đá hôm nay. Hơn nữa, nếu một OID được gán, một macro C cho OID đó có thể được tạo bằng cách viết mộtnnnn
oid_symbol =
Trường siêu dữ kèo chấp bóng đá hôm nay.name
Các hàng danh kèo chấp bóng đá hôm nay được tải sẵn phải có OID được chỉ định trước nếu có các tham chiếu OID cho chúng trong các hàng được tải sẵn khác. Một OID được chỉ định trước cũng cần thiết nếu OID của hàng phải được tham chiếu từ mã C.OID
Trường siêu dữ liệu có thể được bỏ qua, trong trường hợp đó, mã bootstrap gán một OID tự động. Trong thực tế, chúng tôi thường chỉ định các OID cho tất cả hoặc không có hàng được tải sẵn trong một danh kèo chấp bóng đá hôm nay nhất định, ngay cả khi chỉ một số trong số chúng thực sự được tham chiếu chéo.
Viết giá trị số thực tế của bất kỳ OID nào trong mã C được coi là dạng rất xấu; Thay vào đó, luôn luôn sử dụng một macro.PG_PROC
OIDS đủ phổ biến để có một cơ chế đặc biệt để tạo ra kèo chấp bóng đá hôm nay macro cần thiết tự động; nhìn thấysrc/backend/utils/gen_fmgrtab.pl
. Tương tự - nhưng, vì lý do lịch sử, không được thực hiện theo cùng một cách - có một phương thức tự động để tạo macro choPG_TYPE
oids.oid_symbol
Do đó không cần thiết trong hai danh kèo chấp bóng đá hôm nay đó. Tương tự như vậy, macro chopg_ class
OIDS của các danh mục và chỉ kèo chấp bóng đá hôm nay được thiết lập tự động. Đối với tất cả các danh kèo chấp bóng đá hôm nay khác, bạn phải chỉ định thủ công bất kỳ macro nào bạn cần quaoid_symbol
entries.
Để tìm một OID có sẵn cho một hàng mới được tải sẵn, hãy chạy tập lệnhsrc/bao gồm/catalog/unude_oids
. Nó in phạm vi bao gồm kèo chấp bóng đá hôm nay OID chưa sử dụng (ví dụ: dòng đầu ra45-900
có nghĩa là OIDS 45 đến 900 chưa được phân bổ). Hiện tại, OIDS 1 Ném9999 được dành riêng để phân công thủ công;uned_oids
Tập lệnh chỉ cần xem qua các tiêu đề danh kèo chấp bóng đá hôm nay và.dat
Tệp để xem cái nào không xuất hiện. Bạn cũng có thể sử dụngtrùng lặp_oids
tập lệnh để kiểm tra kèo chấp bóng đá hôm nay lỗi. (Genbki.pl
18553_18685
Khi chọn OIDS cho một bản vá không được dự kiến sẽ được thực hiện ngay lập tức, thực tiễn tốt nhất là sử dụng một nhóm OID liên tiếp nhiều hơn liên tiếp bắt đầu với một số lựa chọn ngẫu nhiên trong phạm vi 8000. Điều này giảm thiểu nguy cơ va chạm OID với kèo chấp bóng đá hôm nay bản vá khác đang được phát triển đồng thời.Renumber_oids.pl
có thể được sử dụng cho kèo chấp bóng đá hôm nay đích này. Nếu một bản vá không cam kết được tìm thấy có xung đột OID với một số bản vá được cam kết gần đây,Renumber_oids.pl
cũng có thể hữu ích cho việc phục hồi từ tình huống đó.
Vì quy ước này có thể đánh số lại kèo chấp bóng đá hôm nay OID được gán bởi kèo chấp bóng đá hôm nay bản vá, kèo chấp bóng đá hôm nay OID được chỉ định bởi một bản vá không nên được coi là ổn định cho đến khi bản vá được đưa vào bản phát hành chính thức. Tuy nhiên, chúng tôi không thay đổi đối tượng được chỉ định thủ công một khi được phát hành, vì điều đó sẽ tạo ra kèo chấp bóng đá hôm nay vấn đề tương thích kèo chấp bóng đá hôm nay loại.
nếuGenbki.pl
Cần gán OID cho kèo chấp bóng đá hôm nay nhập danh kèo chấp bóng đá hôm nay không có OID được chỉ định thủ công, nó sẽ sử dụng một giá trị trong phạm vi 10000 Wap11999. Bộ đếm OID của máy chủ được đặt thành 10000 khi bắt đầu chạy bootstrap, để bất kỳ đối tượng nào được tạo trên đường trong quá trình xử lý bootstrap cũng nhận được OID trong phạm vi này.
Objects with OIDs belowFirstUnpinNedObjectID
(12000) được coi làGhim, Ngăn chặn chúng bị xóa. (Có một số lượng nhỏ kèo chấp bóng đá hôm nay trường hợp ngoại lệ, được dây cứng thànhispinnedObject ()
.)initDBBuộc bộ đếm OID lên đếnFirstUnpinNedObjectID
Ngay sau khi nó sẵn sàng tạo kèo chấp bóng đá hôm nay đối tượng chưa được khai thác. Do đó kèo chấp bóng đá hôm nay đối tượng được tạo trong kèo chấp bóng đá hôm nay giai đoạn sau củainitDB, chẳng hạn như kèo chấp bóng đá hôm nay đối tượng được tạo trong khi chạythông tin_schema.sql
script, sẽ không được ghim, trong khi tất cả kèo chấp bóng đá hôm nay đối tượng được biết đếnGenbki.pl
sẽ là.
OID được gán trong hoạt động cơ sở dữ kèo chấp bóng đá hôm nay thông thường bị hạn chế là 16384 trở lên. Điều này đảm bảo rằng phạm vi 10000 Wap16383 miễn phí cho các OID được gán tự động bởiGenbki.pl
hoặc tronginitDB. kèo chấp bóng đá hôm nay OID được chỉ định tự động này không được coi là ổn định và có thể thay đổi từ cài đặt này sang cài đặt khác.
Về nguyên tắc, các tham chiếu chéo từ hàng danh kèo chấp bóng đá hôm nay ban đầu này sang hàng khác có thể được viết chỉ bằng cách viết OID được chỉ định trước của hàng được tham chiếu trong trường tham chiếu. Tuy nhiên, điều đó chống lại chính sách dự án, bởi vì nó dễ bị lỗi, khó đọc và bị vỡ nếu OID mới được chỉ định.Genbki.pl
cung cấp các cơ chế để viết các tài kèo chấp bóng đá hôm nay tham khảo tượng trưng thay thế. Các quy tắc như sau:
Use of symbolic references is enabled in a particular catalog column by attachingBKI_Lookup (
Theo định nghĩa của cột, trong đóLookUprule
)LookUprule
is the name of the referenced catalog, e.g.,PG_PROC
.BKI_Lookup
có thể được gắn vào kèo chấp bóng đá hôm nay cột loạiOID
,regproc
,oidvector
hoặcoid []
; Trong hai trường hợp sau, nó ngụ ý thực hiện tra cứu trên từng phần tử của mảng.
Nó cũng được phép đính kèmbki_lookup (mã hóa)
23217_23364Genbki.pl
.
Trong một số cột danh kèo chấp bóng đá hôm nay, nó được phép các kèo chấp bóng đá hôm nay nhập bằng không thay vì tham chiếu hợp lệ. Nếu điều này được cho phép, hãy viếtBKI_LOOKUP_OPT
thay vìBKI_LOOKUP
. Sau đó, bạn có thể viết0
cho một kèo chấp bóng đá hôm nay. (Nếu cột được khai báoRegProc
, bạn có thể viết tùy ý-
instead of0
.) Ngoại trừ trường hợp đặc biệt này, tất cả các kèo chấp bóng đá hôm nay trong ABKI_Lookup
Cột phải là tài kèo chấp bóng đá hôm nay tham khảo tượng trưng.Genbki.pl
Sẽ cảnh báo về kèo chấp bóng đá hôm nay tên không được công nhận.
Hầu hết các loại đối tượng danh kèo chấp bóng đá hôm nay được tham chiếu đơn giản bằng tên của chúng. Lưu ý rằng tên loại phải khớp chính xác với tham chiếupg_type
Entry'sTYPNAME
; Bạn không được sử dụng bất kỳ bí kèo chấp bóng đá hôm nay nào nhưSố nguyên
choINT4
.
Một hàm có thể được biểu diễn bằng của nóproname
, nếu đó là duy nhất trong sốpg_proc.dat
kèo chấp bóng đá hôm nay nhập (hoạt động như đầu vào regproc). Nếu không, hãy viết nó dưới dạngproname (argtypename, argtypename, ...)
, giống như regprocedure. Tên loại đối số phải được đánh vần chính xác như trongpg_proc.dat
Entry'sproargtypes
Trường. Không chèn bất kỳ khoảng trống nào.
toán tử được biểu diễn bằng, writing the type names exactly as they appear in the
pg_operator.dat
Entry'sOprleft
vàoprright
Trường. (Viết0
Đối với toán hạng bị bỏ qua của một toán tử Unary.)
25570_25678access_method_name
/
object_name
.
Trong không có trường hợp nào trong số này có bất kỳ điều khoản nào cho trình độ sơ đồ lược đồ; Tất cả kèo chấp bóng đá hôm nay đối tượng được tạo trong bootstrap dự kiến sẽ nằm trongpg_catalog
lược đồ.
Genbki.pl
Giải quyết tất cả các tham chiếu tượng trưng trong khi nó chạy và đặt các OID số đơn giản vào tệp BKI phát ra. Do đó, không cần phụ trợ bootstrap để đối phó với các tài kèo chấp bóng đá hôm nay tham khảo tượng trưng.
mong muốn đánh dấu kèo chấp bóng đá hôm nay cột tham chiếu OID bằngBKI_Lookup
hoặcBKI_LOOKUP_OPT
Ngay cả khi danh kèo chấp bóng đá hôm nay không có dữ liệu ban đầu yêu cầu tra cứu. Điều này cho phépGenbki.pl
Để ghi lại các mối quan hệ khóa nước ngoài tồn tại trong các danh kèo chấp bóng đá hôm nay. Thông tin đó được sử dụng trong các bài kiểm tra hồi quy để kiểm tra các mục không chính xác.Declare_foreign_key
,Declare_forign_key_opt
,Declare_array_forign_key
vàDeclare_array_forign_key_opt
, được sử dụng để tuyên bố kèo chấp bóng đá hôm nay mối quan hệ khóa nước ngoài quá phức tạp đối vớiBKI_Lookup
(Thông thường, kèo chấp bóng đá hôm nay khóa nước ngoài nhiều cột).
Hầu hết các loại dữ kèo chấp bóng đá hôm nay vô hướng nên có loại mảng tương ứng (nghĩa là loại mảng varlena tiêu chuẩn có loại phần tử là loại vô hướng và được tham chiếu bởiTyparray
Trường thuộc loại vô hướngPG_TYPE
kèo chấp bóng đá hôm nay nhập).Genbki.pl
Có thể tạoPG_TYPE
kèo chấp bóng đá hôm nay nhập cho loại mảng trong hầu hết các trường hợp.
Để sử dụng cơ sở này, chỉ cần viết mộtmảng_type_oid =
Trường siêu dữ kèo chấp bóng đá hôm nay trong loại vô hướngnnnn
pg_type
kèo chấp bóng đá hôm nay nhập, chỉ định OID để sử dụng cho loại mảng. Sau đó bạn có thể bỏ quaTyparray
Trường, vì nó sẽ được điền tự động bằng oid đó.
Tên của loại mảng được tạo là tên loại vô hướng với một dấu gạch dưới được chuẩn bị. Các trường khác của kèo chấp bóng đá hôm nay khác được lấp đầy từBKI_Array_Default (
Chú thích tronggiá trị
)pg_type.h
hoặc nếu không có, được sao chép từ loại vô hướng. (Cũng có một trường hợp đặc biệt choTypalign
.) Sau đóTypelem
vàTyparray
Trường của hai kèo chấp bóng đá hôm nay được đặt thành tham chiếu chéo nhau.
Dưới đây là một số gợi ý về các cách dễ nhất để thực hiện các tác vụ phổ biến khi cập nhật các tệp dữ liệu danh kèo chấp bóng đá hôm nay.
Thêm cột mới với mặc định vào một danh kèo chấp bóng đá hôm nay:Thêm cột vào tệp tiêu đề vớiBKI_DEFAULT (
Chú thích. Tệp dữ kèo chấp bóng đá hôm nay chỉ cần được điều chỉnh bằng cách thêm trường vào các hàng hiện tại khi cần giá trị không mặc định.giá trị
)
Thêm giá trị mặc định vào cột hiện có không có:Thêm ABKI_DEFAULT
Chú thích vào tệp tiêu đề, sau đó chạyLàm cho Reformat-Dat-Files
Để xóa các kèo chấp bóng đá hôm nay nhập trường hiện đang có.
Xóa một cột, cho dù nó có mặc định hay không:Xóa cột khỏi tiêu đề, sau đó chạyLàm cho Reformat-Dat-Files
Để xóa các kèo chấp bóng đá hôm nay nhập trường không có.
Thay đổi hoặc xóa giá trị mặc định hiện có:Bạn không thể đơn giản thay đổi tệp tiêu đề, vì điều đó sẽ khiến dữ kèo chấp bóng đá hôm nay hiện tại được giải thích không chính xác. Chạy đầu tiênLàm cho mở rộng-DAT-FILES
Để viết lại các tệp dữ kèo chấp bóng đá hôm nay với tất cả các giá trị mặc định được chèn rõ ràng, sau đó thay đổi hoặc xóaBKI_DEFAULT
chú thích, sau đó chạyLàm cho Reformat-Dat-Files
Để xóa kèo chấp bóng đá hôm nay trường thừa.
Chỉnh sửa số lượng lớn ad-hoc: Reformat_dat_file.pl
có thể được điều chỉnh để thực hiện nhiều loại thay đổi số lượng lớn. Tìm kiếm kèo chấp bóng đá hôm nay bình luận khối của nó hiển thị nơi có thể chèn mã một lần.PG_PROC
thành trường char:
Add the new column, with a default, topg_proc.h
:
+ / * Xem các danh kèo chấp bóng đá hôm nay prokind_ bên dưới * /
Tạo tập lệnh mới dựa trênRefleat_dat_file.pl
Để chèn kèo chấp bóng đá hôm nay giá trị thích hợp trên đường bay:
- # Tại thời điểm này, chúng ta có hàng đầy đủ trong bộ nhớ dưới dạng băm
Chạy tập lệnh mới:
$ cd src/bao gồm/danh kèo chấp bóng đá hôm nay
At this pointpg_proc.dat
Có cả ba cột,Prokind
,proisagg
vàProisWindow
, mặc dù chúng sẽ chỉ xuất hiện trong kèo chấp bóng đá hôm nay hàng mà chúng có kèo chấp bóng đá hôm nay giá trị không mặc định.
Xóa kèo chấp bóng đá hôm nay cột cũ khỏipg_proc.h
:
- /* Nó có phải là một tổng hợp không? */
Cuối cùng, chạyLàm cho ReforTat-Dat-Files
Để loại bỏ các kèo chấp bóng đá hôm nay cũ vô dụng khỏipg_proc.dat
.
Để biết thêm kèo chấp bóng đá hôm nay ví dụ về tập lệnh được sử dụng để chỉnh sửa số lượng lớn, xemConvert_oid2Name.pl
vàremove_pg_type_oid_symbols.pl
Được đính kèm với tin nhắn này:33611_33691
Nếu bạn thấy bất cứ điều gì trong tài kèo chấp bóng đá hôm nay không chính xác, không khớpMẫu nàyĐể báo cáo vấn đề tài kèo chấp bóng đá hôm nay.