Arrow: Set field-id with prefix - #227

Merged
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix
Jan 12, 2024
Merged

Arrow: Set field-id with prefix#227
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix

Conversation

@Fokko

Copy link
Copy Markdown
Contributor

While working on the write support, I started to understand the meaning of the Arrow metadata. The PARQUET: prefix means that it is specific to Parquet, and setting PARQUET:field_id will actually not be set as metadata, but as the field_id. I think we should remove the other option without the prefix.

I also did the same for the doc. I checked, in Java we don't check for the documentation, but I think it is a nice addition. However, I think we should only check for the key that's the same as the Iceberg field (doc).

While working on the write support, I started to understand the
meaning of the Arrow metadata. The `PARQUET:` prefix means that
it is specific to Parquet, and setting `PARQUET:field_id` will
actually not be set as metadata, but as the `field_id`. I think
we should remove the other option without the prefix.
I also did the same for the doc. I checked, in Java we don't check
for the documentation, but I think it is a nice addition. However,
I think we should only check for the key that's the same as the
Iceberg field (`doc`).

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Fokko for the fix and @jqin61 for flagging this! This really clears up my confusion about how Arrow manages its field metadata. I have some comments below.

Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadtests/io/test_pyarrow_visitor.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Just have one small comment

Comment threadtests/io/test_pyarrow_visitor.py Outdated
@HonahXHonahX mentioned this pull request Jan 6, 2024
@HonahX
HonahX merged commit 4593208 into apache:mainJan 12, 2024
@Fokko
Fokko deleted the fd-set-field-id-with-prefix branch January 12, 2024 22:44
sungwy pushed a commit to sungwy/iceberg-python that referenced this pull request Jan 13, 2024
'PARQUET:' prefix is specific to Parquet, with 'PARQUET:field_id' setting the 'field_id'. Removed the non-prefixed alternative for 'field_id'. Removed the prefixed alternative for 'doc'.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Fokko@sungwy@HonahX
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Arrow: Set field-id with prefix - #227

Merged
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix
Jan 12, 2024
Merged

Arrow: Set field-id with prefix#227
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix

Conversation

@Fokko

Copy link
Copy Markdown
Contributor

While working on the write support, I started to understand the meaning of the Arrow metadata. The PARQUET: prefix means that it is specific to Parquet, and setting PARQUET:field_id will actually not be set as metadata, but as the field_id. I think we should remove the other option without the prefix.

I also did the same for the doc. I checked, in Java we don't check for the documentation, but I think it is a nice addition. However, I think we should only check for the key that's the same as the Iceberg field (doc).

While working on the write support, I started to understand the
meaning of the Arrow metadata. The `PARQUET:` prefix means that
it is specific to Parquet, and setting `PARQUET:field_id` will
actually not be set as metadata, but as the `field_id`. I think
we should remove the other option without the prefix.
I also did the same for the doc. I checked, in Java we don't check
for the documentation, but I think it is a nice addition. However,
I think we should only check for the key that's the same as the
Iceberg field (`doc`).

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Fokko for the fix and @jqin61 for flagging this! This really clears up my confusion about how Arrow manages its field metadata. I have some comments below.

Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadtests/io/test_pyarrow_visitor.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Just have one small comment

Comment threadtests/io/test_pyarrow_visitor.py Outdated
@HonahXHonahX mentioned this pull request Jan 6, 2024
@HonahX
HonahX merged commit 4593208 into apache:mainJan 12, 2024
@Fokko
Fokko deleted the fd-set-field-id-with-prefix branch January 12, 2024 22:44
sungwy pushed a commit to sungwy/iceberg-python that referenced this pull request Jan 13, 2024
'PARQUET:' prefix is specific to Parquet, with 'PARQUET:field_id' setting the 'field_id'. Removed the non-prefixed alternative for 'field_id'. Removed the prefixed alternative for 'doc'.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Fokko@sungwy@HonahX
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Arrow: Set field-id with prefix - #227

Merged
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix
Jan 12, 2024
Merged

Arrow: Set field-id with prefix#227
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix

Conversation

@Fokko

Copy link
Copy Markdown
Contributor

While working on the write support, I started to understand the meaning of the Arrow metadata. The PARQUET: prefix means that it is specific to Parquet, and setting PARQUET:field_id will actually not be set as metadata, but as the field_id. I think we should remove the other option without the prefix.

I also did the same for the doc. I checked, in Java we don't check for the documentation, but I think it is a nice addition. However, I think we should only check for the key that's the same as the Iceberg field (doc).

While working on the write support, I started to understand the
meaning of the Arrow metadata. The `PARQUET:` prefix means that
it is specific to Parquet, and setting `PARQUET:field_id` will
actually not be set as metadata, but as the `field_id`. I think
we should remove the other option without the prefix.
I also did the same for the doc. I checked, in Java we don't check
for the documentation, but I think it is a nice addition. However,
I think we should only check for the key that's the same as the
Iceberg field (`doc`).

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Fokko for the fix and @jqin61 for flagging this! This really clears up my confusion about how Arrow manages its field metadata. I have some comments below.

Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadtests/io/test_pyarrow_visitor.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Just have one small comment

Comment threadtests/io/test_pyarrow_visitor.py Outdated
@HonahXHonahX mentioned this pull request Jan 6, 2024
@HonahX
HonahX merged commit 4593208 into apache:mainJan 12, 2024
@Fokko
Fokko deleted the fd-set-field-id-with-prefix branch January 12, 2024 22:44
sungwy pushed a commit to sungwy/iceberg-python that referenced this pull request Jan 13, 2024
'PARQUET:' prefix is specific to Parquet, with 'PARQUET:field_id' setting the 'field_id'. Removed the non-prefixed alternative for 'field_id'. Removed the prefixed alternative for 'doc'.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Fokko@sungwy@HonahX
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Arrow: Set field-id with prefix - #227

Merged
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix
Jan 12, 2024
Merged

Arrow: Set field-id with prefix#227
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix

Conversation

@Fokko

Copy link
Copy Markdown
Contributor

While working on the write support, I started to understand the meaning of the Arrow metadata. The PARQUET: prefix means that it is specific to Parquet, and setting PARQUET:field_id will actually not be set as metadata, but as the field_id. I think we should remove the other option without the prefix.

I also did the same for the doc. I checked, in Java we don't check for the documentation, but I think it is a nice addition. However, I think we should only check for the key that's the same as the Iceberg field (doc).

While working on the write support, I started to understand the
meaning of the Arrow metadata. The `PARQUET:` prefix means that
it is specific to Parquet, and setting `PARQUET:field_id` will
actually not be set as metadata, but as the `field_id`. I think
we should remove the other option without the prefix.
I also did the same for the doc. I checked, in Java we don't check
for the documentation, but I think it is a nice addition. However,
I think we should only check for the key that's the same as the
Iceberg field (`doc`).

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Fokko for the fix and @jqin61 for flagging this! This really clears up my confusion about how Arrow manages its field metadata. I have some comments below.

Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadtests/io/test_pyarrow_visitor.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Just have one small comment

Comment threadtests/io/test_pyarrow_visitor.py Outdated
@HonahXHonahX mentioned this pull request Jan 6, 2024
@HonahX
HonahX merged commit 4593208 into apache:mainJan 12, 2024
@Fokko
Fokko deleted the fd-set-field-id-with-prefix branch January 12, 2024 22:44
sungwy pushed a commit to sungwy/iceberg-python that referenced this pull request Jan 13, 2024
'PARQUET:' prefix is specific to Parquet, with 'PARQUET:field_id' setting the 'field_id'. Removed the non-prefixed alternative for 'field_id'. Removed the prefixed alternative for 'doc'.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Fokko@sungwy@HonahX
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Arrow: Set field-id with prefix - #227

Merged
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix
Jan 12, 2024
Merged

Arrow: Set field-id with prefix#227
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix

Conversation

@Fokko

Copy link
Copy Markdown
Contributor

While working on the write support, I started to understand the meaning of the Arrow metadata. The PARQUET: prefix means that it is specific to Parquet, and setting PARQUET:field_id will actually not be set as metadata, but as the field_id. I think we should remove the other option without the prefix.

I also did the same for the doc. I checked, in Java we don't check for the documentation, but I think it is a nice addition. However, I think we should only check for the key that's the same as the Iceberg field (doc).

While working on the write support, I started to understand the
meaning of the Arrow metadata. The `PARQUET:` prefix means that
it is specific to Parquet, and setting `PARQUET:field_id` will
actually not be set as metadata, but as the `field_id`. I think
we should remove the other option without the prefix.
I also did the same for the doc. I checked, in Java we don't check
for the documentation, but I think it is a nice addition. However,
I think we should only check for the key that's the same as the
Iceberg field (`doc`).

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Fokko for the fix and @jqin61 for flagging this! This really clears up my confusion about how Arrow manages its field metadata. I have some comments below.

Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadtests/io/test_pyarrow_visitor.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Just have one small comment

Comment threadtests/io/test_pyarrow_visitor.py Outdated
@HonahXHonahX mentioned this pull request Jan 6, 2024
@HonahX
HonahX merged commit 4593208 into apache:mainJan 12, 2024
@Fokko
Fokko deleted the fd-set-field-id-with-prefix branch January 12, 2024 22:44
sungwy pushed a commit to sungwy/iceberg-python that referenced this pull request Jan 13, 2024
'PARQUET:' prefix is specific to Parquet, with 'PARQUET:field_id' setting the 'field_id'. Removed the non-prefixed alternative for 'field_id'. Removed the prefixed alternative for 'doc'.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Fokko@sungwy@HonahX
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Arrow: Set field-id with prefix - #227

Merged
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix
Jan 12, 2024
Merged

Arrow: Set field-id with prefix#227
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix

Conversation

@Fokko

Copy link
Copy Markdown
Contributor

While working on the write support, I started to understand the meaning of the Arrow metadata. The PARQUET: prefix means that it is specific to Parquet, and setting PARQUET:field_id will actually not be set as metadata, but as the field_id. I think we should remove the other option without the prefix.

I also did the same for the doc. I checked, in Java we don't check for the documentation, but I think it is a nice addition. However, I think we should only check for the key that's the same as the Iceberg field (doc).

While working on the write support, I started to understand the
meaning of the Arrow metadata. The `PARQUET:` prefix means that
it is specific to Parquet, and setting `PARQUET:field_id` will
actually not be set as metadata, but as the `field_id`. I think
we should remove the other option without the prefix.
I also did the same for the doc. I checked, in Java we don't check
for the documentation, but I think it is a nice addition. However,
I think we should only check for the key that's the same as the
Iceberg field (`doc`).

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Fokko for the fix and @jqin61 for flagging this! This really clears up my confusion about how Arrow manages its field metadata. I have some comments below.

Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadtests/io/test_pyarrow_visitor.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Just have one small comment

Comment threadtests/io/test_pyarrow_visitor.py Outdated
@HonahXHonahX mentioned this pull request Jan 6, 2024
@HonahX
HonahX merged commit 4593208 into apache:mainJan 12, 2024
@Fokko
Fokko deleted the fd-set-field-id-with-prefix branch January 12, 2024 22:44
sungwy pushed a commit to sungwy/iceberg-python that referenced this pull request Jan 13, 2024
'PARQUET:' prefix is specific to Parquet, with 'PARQUET:field_id' setting the 'field_id'. Removed the non-prefixed alternative for 'field_id'. Removed the prefixed alternative for 'doc'.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Fokko@sungwy@HonahX
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Arrow: Set field-id with prefix - #227

Merged
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix
Jan 12, 2024
Merged

Arrow: Set field-id with prefix#227
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix

Conversation

@Fokko

Copy link
Copy Markdown
Contributor

While working on the write support, I started to understand the meaning of the Arrow metadata. The PARQUET: prefix means that it is specific to Parquet, and setting PARQUET:field_id will actually not be set as metadata, but as the field_id. I think we should remove the other option without the prefix.

I also did the same for the doc. I checked, in Java we don't check for the documentation, but I think it is a nice addition. However, I think we should only check for the key that's the same as the Iceberg field (doc).

While working on the write support, I started to understand the
meaning of the Arrow metadata. The `PARQUET:` prefix means that
it is specific to Parquet, and setting `PARQUET:field_id` will
actually not be set as metadata, but as the `field_id`. I think
we should remove the other option without the prefix.
I also did the same for the doc. I checked, in Java we don't check
for the documentation, but I think it is a nice addition. However,
I think we should only check for the key that's the same as the
Iceberg field (`doc`).

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Fokko for the fix and @jqin61 for flagging this! This really clears up my confusion about how Arrow manages its field metadata. I have some comments below.

Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadtests/io/test_pyarrow_visitor.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Just have one small comment

Comment threadtests/io/test_pyarrow_visitor.py Outdated
@HonahXHonahX mentioned this pull request Jan 6, 2024
@HonahX
HonahX merged commit 4593208 into apache:mainJan 12, 2024
@Fokko
Fokko deleted the fd-set-field-id-with-prefix branch January 12, 2024 22:44
sungwy pushed a commit to sungwy/iceberg-python that referenced this pull request Jan 13, 2024
'PARQUET:' prefix is specific to Parquet, with 'PARQUET:field_id' setting the 'field_id'. Removed the non-prefixed alternative for 'field_id'. Removed the prefixed alternative for 'doc'.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Fokko@sungwy@HonahX
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Arrow: Set field-id with prefix - #227

Merged
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix
Jan 12, 2024
Merged

Arrow: Set field-id with prefix#227
HonahX merged 8 commits into
apache:mainfrom
Fokko:fd-set-field-id-with-prefix

Conversation

@Fokko

Copy link
Copy Markdown
Contributor

While working on the write support, I started to understand the meaning of the Arrow metadata. The PARQUET: prefix means that it is specific to Parquet, and setting PARQUET:field_id will actually not be set as metadata, but as the field_id. I think we should remove the other option without the prefix.

I also did the same for the doc. I checked, in Java we don't check for the documentation, but I think it is a nice addition. However, I think we should only check for the key that's the same as the Iceberg field (doc).

While working on the write support, I started to understand the
meaning of the Arrow metadata. The `PARQUET:` prefix means that
it is specific to Parquet, and setting `PARQUET:field_id` will
actually not be set as metadata, but as the `field_id`. I think
we should remove the other option without the prefix.
I also did the same for the doc. I checked, in Java we don't check
for the documentation, but I think it is a nice addition. However,
I think we should only check for the key that's the same as the
Iceberg field (`doc`).

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Fokko for the fix and @jqin61 for flagging this! This really clears up my confusion about how Arrow manages its field metadata. I have some comments below.

Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadtests/io/test_pyarrow_visitor.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated
Comment threadpyiceberg/io/pyarrow.py Outdated

@HonahXHonahX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Just have one small comment

Comment threadtests/io/test_pyarrow_visitor.py Outdated
@HonahXHonahX mentioned this pull request Jan 6, 2024
@HonahX
HonahX merged commit 4593208 into apache:mainJan 12, 2024
@Fokko
Fokko deleted the fd-set-field-id-with-prefix branch January 12, 2024 22:44
sungwy pushed a commit to sungwy/iceberg-python that referenced this pull request Jan 13, 2024
'PARQUET:' prefix is specific to Parquet, with 'PARQUET:field_id' setting the 'field_id'. Removed the non-prefixed alternative for 'field_id'. Removed the prefixed alternative for 'doc'.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Fokko@sungwy@HonahX