Changeset: 24d3a2c59b62 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/24d3a2c59b62
Modified Files:
gdk/gdk_join.c
Branch: ustr
Log Message:
Merge with default branch.
diffs (truncated from 612 to 300 lines):
diff --git a/.clang-format b/.clang-format
new file mode 100644
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,161 @@
+---
+IndentWidth: 8
+TabWidth: 8
+UseTab: Always
+AlignAfterOpenBracket: Align
+AlignArrayOfStructures: Left
+AlignConsecutiveAssignments: None
+AlignConsecutiveBitFields: None
+AlignConsecutiveDeclarations: None
+AlignConsecutiveMacros: Consecutive
+AlignEscapedNewlines: LeftWithLastLine
+AlignOperands: Align
+AlignTrailingComments: Always
+AllowAllArgumentsOnNextLine: true
+AllowAllParametersOfDeclarationOnNextLine: true
+AllowShortBlocksOnASingleLine: Never
+AllowShortCaseExpressionOnASingleLine: false
+AllowShortCaseLabelsOnASingleLine: false
+AllowShortEnumsOnASingleLine: false
+AllowShortFunctionsOnASingleLine: None
+AllowShortIfStatementsOnASingleLine: Never
+AllowShortLoopsOnASingleLine: false
+# clang-format 23: AllowShortRecordOnASingleLine: Never
+AlwaysBreakBeforeMultilineStrings: false
+AttributeMacros: [_In_z_, _Printf_format_string_]
+BinPackArguments: true
+BinPackParameters: BinPack
+BitFieldColonSpacing: None
+BreakAdjacentStringLiterals: true
+BreakAfterAttributes: Always
+BreakAfterReturnType: AllDefinitions
+BreakBeforeBinaryOperators: None
+BreakBeforeBraces: Linux
+BreakBeforeTernaryOperators: true
+BreakBinaryOperations: RespectPrecedence
+BreakFunctionDefinitionParameters: false
+BreakStringLiterals: false
+ColumnLimit: 80
+ContinuationIndentWidth: 8
+EnumTrailingComma: Leave
+ForEachMacros:
+ - BATloop
+ - TIMEOUT_LOOP_IDX
+ - TIMEOUT_LOOP_IDX_DECL
+ - TIMEOUT_LOOP
+IfMacros:
+ - TRC_CRITICAL_IF
+ - TRC_ERROR_IF
+ - TRC_WARNING_IF
+ - TRC_INFO_IF
+ - TRC_DEBUG_IF
+IncludeCategories:
+ - Regex: '^"monetdb_config\.h"'
+ - Regex: '.*'
+IndentCaseBlocks: false
+IndentCaseLabels: false
+# clang-format 22: IndentGotoLabels: HalfIndent
+IndentGotoLabels: false
+IndentPPDirectives: AfterHash
+InsertNewlineAtEOF: true
+KeepEmptyLines:
+ AtEndOfFile: false
+ AtStartOfBlock: false
+ AtStartOfFile: false
+LineEnding: LF
+PPIndentWidth: 1
+PointerAlignment: Right
+QualifierAlignment: Leave
+ReflowComments: IndentOnly
+SpaceAfterCStyleCast: true
+SpaceAfterLogicalNot: false
+SpaceAroundPointerQualifiers: Default
+SpaceBeforeAssignmentOperators: true
+SpaceBeforeCaseColon: false
+SpaceBeforeParens: ControlStatementsExceptControlMacros
+SpaceBeforeSquareBrackets: false
+SpaceInEmptyParentheses: false
+SpacesInParens: Never
+SpacesInSquareBrackets: false
+StatementAttributeLikeMacros:
+ - fits_export
+ - gdk_export
+ - generator_export
+ - geom_export
+ - libgeom_export
+ - mal_export
+ - mapi_export
+ - monetdbe_export
+ - moptions_export
+ - mutils_export
+ - mvc_export
+ - netcdf_export
+ - orderidx_export
+ - pyapi_export
+ - shp_export
+ - sql5_export
+ - sql_export
+ - udf_export
+TypeNames:
+ - allocator
+ - ATOMIC_BASE_TYPE
+ - ATOMIC_TYPE
+ - bat
+ - BAT
+ - BATiter
+ - bit
+ - bte
+ - BUN
+ - BUN2type
+ - BUN4type
+ - BUN8type
+ - date
+ - daytime
+ - dbl
+ - FILE
+ - flt
+ - gdk_callback_func
+ - gdk_return
+ - Hash
+ - Heap
+ - hge
+ - __int128_t
+ - int16_t
+ - int32_t
+ - int64_t
+ - int8_t
+ - lng
+ - log_bid
+ - logger
+ - log_id
+ - Mapi
+ - MapiHdl
+ - MapiMsg
+ - msk
+ - MT_Cond
+ - MT_Id
+ - MT_Lock
+ - MT_Sema
+ - off_t
+ - oid
+ - old_logger
+ - PROPrec
+ - ptr
+ - QryCtx
+ - RTree
+ - sht
+ - str
+ - stream
+ - stridx_t
+ - Strimps
+ - timestamp
+ - time_t
+ - trans
+ - uint16_t
+ - uint32_t
+ - uint64_t
+ - uint8_t
+ - ulng
+ - url
+ - ValRecord
+ - var_t
diff --git a/.indent.pro b/.indent.pro
new file mode 100644
--- /dev/null
+++ b/.indent.pro
@@ -0,0 +1,102 @@
+--no-blank-before-sizeof
+--no-blank-lines-after-commas
+--no-blank-lines-after-declarations
+--blank-lines-after-procedures
+--braces-after-func-def-line
+--braces-on-if-line
+--braces-on-struct-decl-line
+--break-after-boolean-operator
+--case-brace-indentation0
+--case-indentation0
+--no-comment-delimiters-on-blank-lines
+--comment-indentation33
+--continuation-indentation8
+--continue-at-parentheses
+--cuddle-do-while
+--cuddle-else
+--declaration-comment-column33
+--declaration-indentation1
+--dont-format-comments
+--dont-format-first-column-comments
+--dont-star-comments
+--else-endif-column1
+--ignore-newlines
+--indent-label2
+--indent-level8
+--leave-preprocessor-space
+--line-comments-indentation0
+--line-length80
+--parameter-indentation0
+--pointer-align-right
+--procnames-start-lines
+--space-after-cast
+--space-after-for
+--no-space-after-function-call-names
+--space-after-if
+--no-space-after-parentheses
+--space-after-while
+--space-special-semicolon
+--tab-size8
+--use-tabs
+-T allocator
+-T ATOMIC_BASE_TYPE
+-T ATOMIC_TYPE
+-T bat
+-T BAT
+-T BATiter
+-T bit
+-T bte
+-T BUN
+-T BUN2type
+-T BUN4type
+-T BUN8type
+-T date
+-T daytime
+-T dbl
+-T FILE
+-T flt
+-T gdk_callback_func
+-T gdk_return
+-T Hash
+-T Heap
+-T hge
+-T __int128_t
+-T int16_t
+-T int32_t
+-T int64_t
+-T int8_t
+-T lng
+-T log_bid
+-T logger
+-T log_id
+-T Mapi
+-T MapiHdl
+-T MapiMsg
+-T msk
+-T MT_Cond
+-T MT_Id
+-T MT_Lock
+-T MT_Sema
+-T off_t
+-T oid
+-T old_logger
+-T PROPrec
+-T ptr
+-T QryCtx
+-T RTree
+-T sht
+-T str
+-T stream
+-T stridx_t
+-T Strimps
+-T timestamp
+-T time_t
+-T trans
+-T uint16_t
+-T uint32_t
+-T uint64_t
+-T uint8_t
+-T ulng
+-T url
+-T ValRecord
+-T var_t
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -4024,12 +4024,13 @@ joincost(BAT *r, bat lustr, BUN lcount,
BAT *b;
BUN nheads;
BUN cnt;
+ BATiter ri = bat_iterator(r);
(void) BATcheckhash(r);
MT_rwlock_rdlock(&r->thashlock);
rhash = r->thash != NULL && (!r->ustr || r->ustr == lustr);
nheads = rhash ? r->thash->nheads : 0;
- cnt = BATcount(r);
+ cnt = ri.count;
MT_rwlock_rdunlock(&r->thashlock);
if ((rci->tpe == cand_materialized || rci->tpe == cand_except) &&
@@ -4040,7 +4041,7 @@ joincost(BAT *r, bat lustr, BUN lcount,
rcost += log2((double) rci->nvals);
}
rcost *= lcount;
- if (BATtdense(r)) {
+ if (BATtdensebi(&ri)) {
/* no need for a hash, and lookup is free */
rhash = false; /* don't use it, even if it's there */
} else {
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]