public static int GetSize(HScriptParser.TypeContext context, bool IsLocal) { CellAffinity t = GetAffinity(context); // double, int, date are 8 bytes // if (t == CellAffinity.INT || t == CellAffinity.DOUBLE || t == CellAffinity.DATE_TIME) return 8; // Bools are 1 byte // if (t == CellAffinity.BOOL) return 1; // Variable length with a predefined size // if (context.LITERAL_INT() != null) { int size = int.Parse(context.LITERAL_INT().GetText()); if (IsLocal) return Math.Min(size, Schema.MAX_VARIABLE_SIZE); else return Math.Min(size, Cell.MAX_STRING_LENGTH); } // Default the sizes // if (t == CellAffinity.STRING) return Schema.DEFAULT_STRING_SIZE; return Schema.DEFAULT_BLOB_SIZE; }