You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
167: Added more types, reworked cast framework
This adds several new types, and also reworks type serialization and casting, among a few other things. This is not nearly as tested as I'd want it to be, as I discovered that the implicit/explicit casting is fundamentally incompatible with how we use sql.Type.Convert, so that entire system needs to be "removed" for Doltgres (that is, it functionally should not do anything).
In addition, in an effort to be a little forward-thinking since I'm assuming we'll be breaking things a bit once the conversion system is removed, I added a form of type versions so that we can update types as we discover deficiencies. For example, let's say a type uses -1 to mean "no limit", and then we later find out that -1 is a valid value. We can make that distinction using type versions. In addition, this will break all existing databases due to the type serialization change, but I think it's fine as all currently known users should be able to rebuild the database since their replicas.
166: add parsing support for OUT and INOUT argmode for routines
Aggregate only allows IN and VARIADIC argument modes. Routines including functions and procedures allows IN, VARIADIC, OUT and INOUT modes. The parser will allow OUT and INOUT for aggregates, so TODO there needs a check during ast evaluation/conversion for these modes in aggregate statements.
small fix for supporting SETOF modifier option for CREATE FUNCTION statement.
small fix for supporting db.aggregate_name syntax for AGGREGATE statements.
165: Removed inline VarChar implementation
This removes the inline VarChar variable. It's not used anywhere, so it's best to remove it before we use it in a location that we don't mean to. We still retain the inline characteristics for user-defined columns that define a limit below the inline max though.
164: Reworked array serialization format
This is building off of the following PR comment: #162 (comment)
In Postgres, there seems to be a field size limit of 1GB, so I've used that to determine that we can just use uint32s everywhere, rather than having two formats with uint16 and uint64 (which were attempts at conserving space).
163: use auto_increment for SERIAL type
This PR reverts the latest change on using auto_increment for SERIAL type column definition.
Note: INSERT on SERIAL type as primary key does not work for now.
162: All Array Types
This PR adds array types for all existing types. This is done by providing a wrapper that handles all of the array-functionality over the base type. In addition, this removes the mock array functionality that only worked to demonstrate the viability of boolean[], replacing the functionality with fully working equivalents.
161: remove usage of auto_increment for SERIAL type for column definition
159: small fix for SET syntax accepting multiple values as a single value