/* {{{ MADB_DescGetInternalRecord */ MADB_DescRecord *MADB_DescGetInternalRecord(MADB_Desc *Desc, SQLINTEGER RecordNumber, SQLSMALLINT Type) { MADB_DescRecord *DescRecord; SQLINTEGER Start= Desc->Records.elements; if (RecordNumber > (SQLINTEGER)Desc->Records.elements && Type == MADB_DESC_READ) { MADB_SetError(&Desc->Error, MADB_ERR_07009, NULL, 0); return NULL; } while (RecordNumber >= (SQLINTEGER)Desc->Records.elements) { if (!(DescRecord= (MADB_DescRecord *)alloc_dynamic(&Desc->Records))) { MADB_SetError(&Desc->Error, MADB_ERR_HY001, NULL, 0); return NULL; } MADB_DescSetRecordDefaults(Desc, DescRecord); } if (RecordNumber + 1 > Desc->Header.Count) Desc->Header.Count= RecordNumber + 1; DescRecord= ((MADB_DescRecord *)Desc->Records.buffer) + RecordNumber; return DescRecord; }
my_bool insert_dynamic(DYNAMIC_ARRAY *array, uchar* element) { uchar* buffer; if (array->elements == array->max_element) { /* Call only when nessesary */ if (!(buffer=alloc_dynamic(array))) return TRUE; } else { buffer=array->buffer+(array->elements * array->size_of_element); array->elements++; } memcpy(buffer,element,(size_t) array->size_of_element); return FALSE; }