<commit_before>* SQL is the best way for specification what data to retrieve
* switching from one DBMS to another in an existing project is unrealistic even if a database abstraction layer is used
* it is natural to use the full feature set of the DBMS being used, not just CRUD or standardized SQL
* relations shall be the first-class citizens of a good database layer
** data retrieved from a relational database are always relations, no matter if they were selected from a table or view, a join, a set-returning function or write queries using the RETURNING clause
** retrieving data shall be independent of from where the data comes - it always is just a relation
** a relation may be defined in terms of other relations - e.g., JOIN rel, EXISTS(rel), field IN (rel), etc.
<commit_msg>some motivation<commit_after>* SQL is the best way for specification what data to retrieve
* switching from one DBMS to another in an existing project is unrealistic even if a database abstraction layer is used
* it is natural to use the full feature set of the DBMS being used, not just CRUD or standardized SQL
* relations shall be the first-class citizens of a good database layer
** data retrieved from a relational database are always relations, no matter if they were selected from a table or view, a join, a set-returning function or write queries using the RETURNING clause
** retrieving data shall be independent of from where the data comes - it always is just a relation
** a relation may be defined in terms of other relations - e.g., JOIN rel, EXISTS(rel), field IN (rel), etc.
* PostgreSQL is a mature database management system with plenty of features, both standard and extensions, and the database layer shall support them
** inheritance
** array types
** EXPLAIN and processing of its results
** VACUUM - database maintenance
** LISTEN, NOTIFY
** asynchronous execution
** common table expressions
** OIDs
** large objects
** type system features (user-defined types, special types such as HSTORE or JSON, range types, ...)
* strive for specification compliance so that any non-standard cases are handled correctly
** array item delimiters really according to the subtype, not hard-wired comma

{'fraction_non_alphanumeric': 0.04725124943207633, 'fraction_numerical': 0.0, 'mean_word_length': 4.574683544303798, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '567410', 'n_tokens_mistral': 527, 'n_tokens_neox': 496, 'n_words': 342}