Changes between Version 3 and Version 4 of FGDBSpecification
- Timestamp:
- Oct 8, 2013, 4:18:31 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FGDBSpecification
v3 v4 65 65 ||'''Format'''||'''Content'''|| 66 66 || int32 || maximum length of string || 67 || ubyte || unknown role||67 || ubyte || flag || 68 68 || ubyte || unknown role || 69 69 … … 114 114 ||'''Format'''||'''Content'''|| 115 115 || ubyte || width : 38 || 116 || ubyte || unknown role||116 || ubyte || flag || 117 117 118 118 … … 121 121 ||'''Format'''||'''Content'''|| 122 122 || ubyte || width in bytes (e.g. 2 for int16, 4 for int32, 4 for float32, 8 for float64, 8 for datetime) || 123 || ubyte || unknown role || 124 || ubyte || unknown role || 123 || ubyte || flag || 124 || ubyte || unknown role || 125 126 If the lsb of the flag field (when present) is set to 1, then the field can be null. 127 128 FIXME: find which byte is the flag field for geometry fields. They are supposed to be nullable for now. 129 125 130 126 131 == Rows section == … … 138 143 ||'''Format'''||'''Content'''|| 139 144 || int32 || length in bytes of the row blob ( this field excluded) || 140 || ceil(number_ fields / 8) * ubyte || flags describing if a field is null. See below explanation ||145 || ceil(number_nullable_fields / 8) * ubyte || flags describing if a field is null. See below explanation || 141 146 142 147 === Null fields flags === 143 148 144 Each bit of the flags field encode for the presence or absence of the field content for the row.149 Each bit of the flags field encode for the presence or absence of the field content, for a nullable field, for the row. 145 150 The flag is set to 1 if the field is missing/null, or 0 if the field is present/non-null (0 is used as well for spare bytes). 146 151 The flag for the first field, in the order of the fields of the field description section (typically the geometry), 147 152 is the least significant bit of the first byte of the flags field. 148 153 149 Note: there's no explicit data for OBJECTID and no flag bit for it. It must be ignored when considering 150 the list of fields (for number_fields value in particular). 154 There are no bits reserved for non-nullable fields. 155 156 If all fields are non-nullable, the flag field is absent. 157 158 Note: there's no explicit data for OBJECTID and no reserved flag bit for it. 151 159 152 160 For each non-null field, the field content is appended in the order of the fields of the field